All functions:
  Elements:
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/fuzz_xml.cpp:26,1
    - Dst: getpid
      Src: /src/fuzz_xml.cpp:26,1
    - Dst: fopen
      Src: /src/fuzz_xml.cpp:28,1
    - Dst: fwrite
      Src: /src/fuzz_xml.cpp:32,1
    - Dst: fclose
      Src: /src/fuzz_xml.cpp:33,1
    - Dst: ncclCalloc
      Src: /src/fuzz_xml.cpp:36,1
    - Dst: ncclTopoGetXmlFromFile
      Src: /src/fuzz_xml.cpp:37,1
    - Dst: free
      Src: /src/fuzz_xml.cpp:38,1
    - Dst: unlink
      Src: /src/fuzz_xml.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 43
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/fuzz_xml.cpp
    functionUses: 0
    functionsReached:
    - getpid
    - ncclCalloc
    - sprintf
    - ncclTopoGetXmlFromFile
    - unlink
    - free
    - fwrite
    - fopen
    - fclose
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamLsaTeamSize
      Src: /src/nccl/src/dev_runtime.cc:118,1
    - Dst: INFO
      Src: /src/nccl/src/dev_runtime.cc:123,1
    - Dst: gcd
      Src: /src/nccl/src/dev_runtime.cc:131,1
    - Dst: gcd
      Src: /src/nccl/src/dev_runtime.cc:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 139
    functionName: computeLsaSize
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclParamLsaTeamSize
    - INFO
    - gcd
    linkageType: ''
    returnType: int
    signature: int computeLsaSize(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: computeLsaSize
      Src: /src/nccl/src/dev_runtime.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: ncclDevrIsOneLsaTeam
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - computeLsaSize
    linkageType: ''
    returnType: bool
    signature: bool ncclDevrIsOneLsaTeam(struct ncclComm* comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: computeLsaSize
      Src: /src/nccl/src/dev_runtime.cc:153,1
    - Dst: malloc
      Src: /src/nccl/src/dev_runtime.cc:156,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:167,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/dev_runtime.cc:167,1
    - Dst: ncclParamWinStride
      Src: /src/nccl/src/dev_runtime.cc:169,1
    - Dst: std::max<size_t>
      Src: /src/nccl/src/dev_runtime.cc:173,1
    - Dst: alignUp
      Src: /src/nccl/src/dev_runtime.cc:176,1
    - Dst: INFO
      Src: /src/nccl/src/dev_runtime.cc:177,1
    - Dst: ncclSpaceConstruct
      Src: /src/nccl/src/dev_runtime.cc:179,1
    - Dst: ncclShadowPoolConstruct
      Src: /src/nccl/src/dev_runtime.cc:180,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 186
    functionName: ncclDevrInitOnce
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - INFO
    - cuMemGetAllocationGranularity
    - computeLsaSize
    - ncclShadowPoolConstruct
    - CUCHECKGOTO
    - free
    - ncclParamWinStride
    - alignUp
    - malloc
    - ncclSpaceConstruct
    - std::max<size_t>
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDevrInitOnce(struct ncclComm* comm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/dev_runtime.cc:196,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/dev_runtime.cc:197,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:198,1
    - Dst: CUDACHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:204,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/dev_runtime.cc:204,1
    - Dst: NCCLCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:207,1
    - Dst: symWindowDestroy
      Src: /src/nccl/src/dev_runtime.cc:207,1
    - Dst: CUDACHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:209,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/dev_runtime.cc:209,1
    - Dst: CUDACHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:210,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/dev_runtime.cc:210,1
    - Dst: symTeamDestroyAll
      Src: /src/nccl/src/dev_runtime.cc:212,1
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/dev_runtime.cc:215,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/dev_runtime.cc:215,1
    - Dst: ncclShadowPoolToHost
      Src: /src/nccl/src/dev_runtime.cc:219,1
    - Dst: ncclShadowPoolFree
      Src: /src/nccl/src/dev_runtime.cc:221,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/dev_runtime.cc:224,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/dev_runtime.cc:225,1
    - Dst: reinterpret_cast<CUdeviceptr>
      Src: /src/nccl/src/dev_runtime.cc:229,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:230,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/dev_runtime.cc:230,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:231,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/dev_runtime.cc:231,1
    - Dst: ncclShadowPoolDestruct
      Src: /src/nccl/src/dev_runtime.cc:233,1
    - Dst: ncclSpaceDestruct
      Src: /src/nccl/src/dev_runtime.cc:234,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:235,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 238
    functionName: ncclDevrFinalize
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclShadowPoolDestruct
    - ncclIntruQueueEmpty
    - cudaStreamSynchronize
    - CUDASUCCESS
    - cuMemUnmap
    - ncclSpaceDestruct
    - free
    - ncclIntruQueueDequeue
    - ncclShadowPoolFree
    - cuMemAddressFree
    - ncclShadowPoolToHost
    - cudaStreamDestroy
    - CUDACHECKIGNORE
    - CUCHECKIGNORE
    - symTeamDestroyAll
    - symWindowDestroy
    - cudaStreamCreateWithFlags
    - reinterpret_cast<CUdeviceptr>
    - NCCLCHECKIGNORE
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDevrFinalize(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/dev_runtime.cc:257,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/dev_runtime.cc:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - comm
    - message
    - addr
    argTypes:
    - struct ncclComm*
    - symLsaMessage*
    - CUdeviceptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: symMemorySetAccessForVASegment
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - CUCHECK
    - cuMemSetAccess
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t symMemorySetAccessForVASegment(struct ncclComm* comm,
      symLsaMessage* message, CUdeviceptr addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:267,1
    - Dst: cuMemGetAllocationPropertiesFromHandle
      Src: /src/nccl/src/dev_runtime.cc:267,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:273,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/dev_runtime.cc:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - comm
    - msg
    - memHandle
    - segmentSize
    argTypes:
    - struct ncclComm*
    - symLsaMessage*
    - CUmemGenericAllocationHandle
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 277
    functionName: symMemoryExportSegmentHandle
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - cuMemGetAllocationPropertiesFromHandle
    - cuMemExportToShareableHandle
    - CUCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t symMemoryExportSegmentHandle(\n    struct ncclComm* comm,
      symLsaMessage* msg,\n    CUmemGenericAllocationHandle memHandle, size_t segmentSize\n
      \ )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:291,1
    - Dst: ncclProxyClientGetFdBlocking
      Src: /src/nccl/src/dev_runtime.cc:291,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:292,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/dev_runtime.cc:292,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/dev_runtime.cc:292,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:293,1
    - Dst: close
      Src: /src/nccl/src/dev_runtime.cc:293,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:295,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/dev_runtime.cc:295,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:298,1
    - Dst: cuMemMap
      Src: /src/nccl/src/dev_runtime.cc:298,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:299,1
    - Dst: symMemorySetAccessForVASegment
      Src: /src/nccl/src/dev_runtime.cc:299,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:301,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/dev_runtime.cc:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 6
    argNames:
    - comm
    - r
    - addr
    - msg
    - memHandle
    - reuseLocal
    argTypes:
    - struct ncclComm*
    - int
    - CUdeviceptr
    - symLsaMessage*
    - CUmemGenericAllocationHandle
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 305
    functionName: symMemoryImportAndMapSegmentHandle
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - close
    - CUCHECKGOTO
    - symMemorySetAccessForVASegment
    - ncclProxyClientGetFdBlocking
    - cuMemMap
    - NCCLCHECKGOTO
    - reinterpret_cast<void*>
    - cuMemRelease
    - SYSCHECKGOTO
    - cuMemImportFromShareableHandle
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t symMemoryImportAndMapSegmentHandle(\n    struct ncclComm*
      comm, int r, CUdeviceptr addr, symLsaMessage* msg,\n    CUmemGenericAllocationHandle
      memHandle, bool reuseLocal\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/dev_runtime.cc:313,1
    - Dst: ncclParamSymReuseSysmemHandles
      Src: /src/nccl/src/dev_runtime.cc:317,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:319,1
    - Dst: symMemoryImportAndMapSegmentHandle
      Src: /src/nccl/src/dev_runtime.cc:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 7
    argNames:
    - comm
    - r
    - messages
    - maxSegments
    - numSegments
    - memHandles
    - bigOffset
    argTypes:
    - struct ncclComm*
    - int
    - symLsaMessage*
    - int
    - int
    - CUmemGenericAllocationHandle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 324
    functionName: symMemoryImportAndMapSegmentsForRank
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclParamSymReuseSysmemHandles
    - NCCLCHECKGOTO
    - symMemoryImportAndMapSegmentHandle
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t symMemoryImportAndMapSegmentsForRank(\n    struct ncclComm*
      comm, int r, symLsaMessage* messages, int maxSegments,\n    int numSegments,
      CUmemGenericAllocationHandle* memHandles, size_t bigOffset\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/dev_runtime.cc:336,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:339,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:339,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:343,1
    - Dst: symMemoryExportSegmentHandle
      Src: /src/nccl/src/dev_runtime.cc:343,1
    - Dst: INFO
      Src: /src/nccl/src/dev_runtime.cc:344,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:347,1
    - Dst: bootstrapIntraNodeAllGather
      Src: /src/nccl/src/dev_runtime.cc:347,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:351,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/dev_runtime.cc:351,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/dev_runtime.cc:352,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:356,1
    - Dst: symMemoryImportAndMapSegmentsForRank
      Src: /src/nccl/src/dev_runtime.cc:356,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:359,1
    - Dst: bootstrapIntraNodeBarrier
      Src: /src/nccl/src/dev_runtime.cc:359,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - comm
    - mem
    argTypes:
    - struct ncclComm*
    - struct ncclDevrMemory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 365
    functionName: symMemoryMapLsaTeam
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - symMemoryExportSegmentHandle
    - symMemoryImportAndMapSegmentsForRank
    - INFO
    - ncclCalloc
    - bootstrapIntraNodeBarrier
    - std::max
    - CUCHECKGOTO
    - free
    - NCCLCHECKGOTO
    - bootstrapIntraNodeAllGather
    - cuMemAddressReserve
    - reinterpret_cast<void*>
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t symMemoryMapLsaTeam(struct ncclComm* comm, struct ncclDevrMemory*
      mem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/dev_runtime.cc:374,1
    - Dst: INFO
      Src: /src/nccl/src/dev_runtime.cc:376,1
    - Dst: CUCHECK
      Src: /src/nccl/src/dev_runtime.cc:377,1
    - Dst: cuMulticastBindAddr
      Src: /src/nccl/src/dev_runtime.cc:377,1
    - Dst: reinterpret_cast<CUdeviceptr>
      Src: /src/nccl/src/dev_runtime.cc:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - comm
    - tm
    - mem
    argTypes:
    - struct ncclComm*
    - struct ncclDevrTeam*
    - struct ncclDevrMemory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 382
    functionName: symBindTeamMemory
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - cuMulticastBindAddr
    - reinterpret_cast<CUdeviceptr>
    - INFO
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t symBindTeamMemory(\n    struct ncclComm* comm, struct
      ncclDevrTeam* tm, struct ncclDevrMemory* mem\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/dev_runtime.cc:389,1
    - Dst: cuMulticastUnbind
      Src: /src/nccl/src/dev_runtime.cc:389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - comm
    - tm
    - mem
    argTypes:
    - struct ncclComm*
    - struct ncclDevrTeam*
    - struct ncclDevrMemory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 393
    functionName: symUnbindTeamMemory
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - CUCHECK
    - cuMulticastUnbind
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t symUnbindTeamMemory(\n    struct ncclComm* comm, struct
      ncclDevrTeam* tm, struct ncclDevrMemory* mem\n  )"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/src/dev_runtime.cc:407,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:429,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:444,1
    - Dst: ncclNvlsGroupCreate
      Src: /src/nccl/src/dev_runtime.cc:444,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:445,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/dev_runtime.cc:445,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:447,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/dev_runtime.cc:447,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:448,1
    - Dst: ncclNvlsGroupConnect
      Src: /src/nccl/src/dev_runtime.cc:448,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:451,1
    - Dst: cuMulticastAddDevice
      Src: /src/nccl/src/dev_runtime.cc:451,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:452,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/dev_runtime.cc:452,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:453,1
    - Dst: cuMemMap
      Src: /src/nccl/src/dev_runtime.cc:453,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:458,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/dev_runtime.cc:458,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/dev_runtime.cc:461,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:465,1
    - Dst: symBindTeamMemory
      Src: /src/nccl/src/dev_runtime.cc:465,1
    - Dst: symUnbindTeamMemory
      Src: /src/nccl/src/dev_runtime.cc:471,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:474,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/dev_runtime.cc:474,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:477,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/dev_runtime.cc:477,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:480,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/dev_runtime.cc:480,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:498,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 93
    argCount: 4
    argNames:
    - comm
    - team
    - multimem
    - outTeam
    argTypes:
    - struct ncclComm*
    - struct ncclTeam
    - bool
    - struct ncclDevrTeam**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 500
    functionName: symTeamObtain
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - cuMulticastAddDevice
    - NCCLCHECKGOTO
    - cuMemRelease
    - cuMemSetAccess
    - cuMemUnmap
    - WARN
    - CUCHECKGOTO
    - free
    - reinterpret_cast<void*>
    - ncclNvlsGroupConnect
    - cuMemAddressFree
    - ncclNvlsGroupCreate
    - cuMemAddressReserve
    - malloc
    - symBindTeamMemory
    - bootstrapIntraNodeBroadcast
    - CUCHECKIGNORE
    - cuMemMap
    - symUnbindTeamMemory
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t symTeamObtain(\n    struct ncclComm* comm, struct ncclTeam
      team, bool multimem,\n    struct ncclDevrTeam** outTeam\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: symUnbindTeamMemory
      Src: /src/nccl/src/dev_runtime.cc:509,1
    - Dst: reinterpret_cast<CUdeviceptr>
      Src: /src/nccl/src/dev_runtime.cc:511,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:512,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/dev_runtime.cc:512,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:513,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/dev_runtime.cc:513,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:514,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/dev_runtime.cc:514,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 518
    functionName: symTeamDestroyAll
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 1
    functionsReached:
    - cuMemAddressFree
    - CUCHECKIGNORE
    - free
    - reinterpret_cast<CUdeviceptr>
    - cuMemRelease
    - cuMemUnmap
    - symUnbindTeamMemory
    linkageType: ''
    returnType: void
    signature: void symTeamDestroyAll(struct ncclComm* comm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:528,1
    - Dst: ncclGinRegister
      Src: /src/nccl/src/dev_runtime.cc:528,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:530,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:530,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:540,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:545,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:545,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:548,1
    - Dst: cuMemGetAllocationPropertiesFromHandle
      Src: /src/nccl/src/dev_runtime.cc:548,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:553,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:553,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:554,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:554,1
    - Dst: memcpy
      Src: /src/nccl/src/dev_runtime.cc:556,1
    - Dst: memcpy
      Src: /src/nccl/src/dev_runtime.cc:557,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:560,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/dev_runtime.cc:560,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:566,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:575,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:575,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:581,1
    - Dst: ncclGinRegister
      Src: /src/nccl/src/dev_runtime.cc:581,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:593,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:594,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:595,1
    - Dst: ncclGinDeregister
      Src: /src/nccl/src/dev_runtime.cc:599,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:601,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 61
    argCount: 2
    argNames:
    - comm
    - mem
    argTypes:
    - struct ncclComm*
    - struct ncclDevrMemory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 604
    functionName: symMemoryRegisterGin
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - memcpy
    - CUCHECKGOTO
    - ncclGinRegister
    - bootstrapAllGather
    - free
    - NCCLCHECKGOTO
    - cuMemGetAllocationPropertiesFromHandle
    - ncclGinDeregister
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t symMemoryRegisterGin(struct ncclComm* comm, struct ncclDevrMemory*
      mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:607,1
    - Dst: ncclRmaProxyConnectOnce
      Src: /src/nccl/src/dev_runtime.cc:607,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:608,1
    - Dst: ncclRmaProxyRegister
      Src: /src/nccl/src/dev_runtime.cc:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - mem
    argTypes:
    - struct ncclComm*
    - struct ncclDevrMemory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 610
    functionName: symMemoryRegisterRma
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclRmaProxyConnectOnce
    - ncclRmaProxyRegister
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t symMemoryRegisterRma(struct ncclComm* comm, struct ncclDevrMemory*
      mem)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:639,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/dev_runtime.cc:639,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:648,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:648,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:649,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:649,1
    - Dst: memcpy
      Src: /src/nccl/src/dev_runtime.cc:650,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:657,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:657,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:658,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:658,1
    - Dst: reinterpret_cast<CUdeviceptr>
      Src: /src/nccl/src/dev_runtime.cc:664,1
    - Dst: reinterpret_cast<char*>
      Src: /src/nccl/src/dev_runtime.cc:664,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:665,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/dev_runtime.cc:665,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:676,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/dev_runtime.cc:676,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:685,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:685,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:691,1
    - Dst: ncclSpaceAlloc
      Src: /src/nccl/src/dev_runtime.cc:691,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:695,1
    - Dst: symMemoryMapLsaTeam
      Src: /src/nccl/src/dev_runtime.cc:695,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:704,1
    - Dst: symBindTeamMemory
      Src: /src/nccl/src/dev_runtime.cc:704,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:708,1
    - Dst: symMemoryRegisterGin
      Src: /src/nccl/src/dev_runtime.cc:708,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:719,1
    - Dst: symMemoryRegisterRma
      Src: /src/nccl/src/dev_runtime.cc:719,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:729,1
    - Dst: symUnbindTeamMemory
      Src: /src/nccl/src/dev_runtime.cc:734,1
    - Dst: ncclSpaceFree
      Src: /src/nccl/src/dev_runtime.cc:737,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:740,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:741,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:742,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:744,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:745,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 97
    argCount: 7
    argNames:
    - comm
    - memHandles
    - numSegments
    - memAddr
    - size
    - winFlags
    - outMem
    argTypes:
    - struct ncclComm*
    - CUmemGenericAllocationHandle*
    - int
    - void*
    - size_t
    - int
    - struct ncclDevrMemory**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 615
    functionDepth: 5
    functionLinenumber: 615
    functionLinenumberEnd: 748
    functionName: symMemoryObtain
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - symMemoryRegisterRma
    - CUCHECKIGNORE
    - memcpy
    - CUCHECKGOTO
    - symMemoryMapLsaTeam
    - ncclSpaceAlloc
    - cuMemGetAddressRange
    - bootstrapAllGather
    - reinterpret_cast<CUdeviceptr>
    - symMemoryRegisterGin
    - free
    - NCCLCHECKGOTO
    - ncclSpaceFree
    - cuMemRelease
    - reinterpret_cast<char*>
    - symBindTeamMemory
    - symUnbindTeamMemory
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t symMemoryObtain(\n    struct ncclComm* comm, CUmemGenericAllocationHandle*
      memHandles, int numSegments, void* memAddr, size_t size, int winFlags,\n    struct
      ncclDevrMemory** outMem, bool hasSysmemSegment = false\n  )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinDeregister
      Src: /src/nccl/src/dev_runtime.cc:758,1
    - Dst: ncclGinDeregister
      Src: /src/nccl/src/dev_runtime.cc:761,1
    - Dst: ncclRmaProxyDeregister
      Src: /src/nccl/src/dev_runtime.cc:765,1
    - Dst: symUnbindTeamMemory
      Src: /src/nccl/src/dev_runtime.cc:768,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/dev_runtime.cc:771,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:775,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/dev_runtime.cc:775,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:776,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/dev_runtime.cc:776,1
    - Dst: ncclSpaceFree
      Src: /src/nccl/src/dev_runtime.cc:781,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:783,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/dev_runtime.cc:783,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:790,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:791,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:792,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:793,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:794,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - comm
    - mem
    argTypes:
    - struct ncclComm*
    - struct ncclDevrMemory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 796
    functionName: symMemoryDropRef
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - CUCHECKIGNORE
    - reinterpret_cast<uintptr_t>
    - cuMemGetAddressRange
    - free
    - ncclRmaProxyDeregister
    - ncclSpaceFree
    - cuMemRelease
    - cuMemUnmap
    - ncclGinDeregister
    - symUnbindTeamMemory
    linkageType: ''
    returnType: void
    signature: "void symMemoryDropRef(\n    struct ncclComm* comm, struct ncclDevrMemory*
      mem\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:802,1
    - Dst: ncclShadowPoolAlloc
      Src: /src/nccl/src/dev_runtime.cc:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - comm
    - stream
    argTypes:
    - struct ncclComm*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 806
    functionName: symWindowTableInitOnce
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclShadowPoolAlloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t symWindowTableInitOnce(struct ncclComm* comm, cudaStream_t
      stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:818,1
    - Dst: ncclShadowPoolAlloc
      Src: /src/nccl/src/dev_runtime.cc:818,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:830,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/dev_runtime.cc:830,1
    - Dst: ncclShadowPoolFree
      Src: /src/nccl/src/dev_runtime.cc:842,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - devr
    - mem
    - stream
    - outSegmentWindowsDev
    - outSegmentWindowsHost
    argTypes:
    - struct ncclDevrState*
    - struct ncclDevrMemory*
    - cudaStream_t
    - struct ncclSegmentWindow**
    - struct ncclSegmentWindow**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 844
    functionName: allocAndPopulateSegmentWindows
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - cudaMemcpyAsync
    - ncclShadowPoolFree
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - ncclShadowPoolAlloc
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t allocAndPopulateSegmentWindows(\n    struct ncclDevrState*
      devr, struct ncclDevrMemory* mem,\n    cudaStream_t stream, struct ncclSegmentWindow**
      outSegmentWindowsDev,\n    struct ncclSegmentWindow** outSegmentWindowsHost)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/dev_runtime.cc:853,1
    - Dst: malloc
      Src: /src/nccl/src/dev_runtime.cc:857,1
    - Dst: memset
      Src: /src/nccl/src/dev_runtime.cc:858,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/dev_runtime.cc:867,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:874,1
    - Dst: ncclShadowPoolAlloc
      Src: /src/nccl/src/dev_runtime.cc:874,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:889,1
    - Dst: allocAndPopulateSegmentWindows
      Src: /src/nccl/src/dev_runtime.cc:889,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/dev_runtime.cc:891,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/dev_runtime.cc:891,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:893,1
    - Dst: symWindowTableInitOnce
      Src: /src/nccl/src/dev_runtime.cc:893,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:897,1
    - Dst: ncclShadowPoolToHost
      Src: /src/nccl/src/dev_runtime.cc:897,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/dev_runtime.cc:904,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/dev_runtime.cc:904,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:908,1
    - Dst: ncclShadowPoolAlloc
      Src: /src/nccl/src/dev_runtime.cc:908,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/dev_runtime.cc:909,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/dev_runtime.cc:909,1
    - Dst: listFindSortedLub
      Src: /src/nccl/src/dev_runtime.cc:915,1
    - Dst: listInsert
      Src: /src/nccl/src/dev_runtime.cc:920,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 10
    argNames:
    - comm
    - mem
    - memOffset
    - userPtr
    - userSize
    - winFlags
    - localReg
    - outWinDev
    - outWin
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclDevrMemory*
    - size_t
    - void*
    - size_t
    - int
    - void*
    - struct ncclWindow_vidmem**
    - struct ncclDevrWindow**
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 926
    functionName: symWindowCreate
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - cudaMemcpyAsync
    - listFindSortedLub
    - listInsert
    - reinterpret_cast<uintptr_t>
    - allocAndPopulateSegmentWindows
    - ncclShadowPoolToHost
    - memset
    - CUDACHECK
    - malloc
    - symWindowTableInitOnce
    - ncclShadowPoolAlloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t symWindowCreate(\n    struct ncclComm* comm, struct ncclDevrMemory*
      mem,\n    size_t memOffset, void* userPtr, size_t userSize, int winFlags, void*
      localReg,\n    struct ncclWindow_vidmem** outWinDev, struct ncclDevrWindow**
      outWin,\n    cudaStream_t stream\n  )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:934,1
    - Dst: ncclShadowPoolToHost
      Src: /src/nccl/src/dev_runtime.cc:934,1
    - Dst: symMemoryDropRef
      Src: /src/nccl/src/dev_runtime.cc:937,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:942,1
    - Dst: ncclShadowPoolToHost
      Src: /src/nccl/src/dev_runtime.cc:942,1
    - Dst: memset
      Src: /src/nccl/src/dev_runtime.cc:946,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:947,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/src/dev_runtime.cc:947,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:956,1
    - Dst: ncclShadowPoolFree
      Src: /src/nccl/src/dev_runtime.cc:956,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:959,1
    - Dst: ncclShadowPoolFree
      Src: /src/nccl/src/dev_runtime.cc:959,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:961,1
    - Dst: ncclCommDeregister
      Src: /src/nccl/src/dev_runtime.cc:961,1
    - Dst: listFindSortedLub
      Src: /src/nccl/src/dev_runtime.cc:964,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/dev_runtime.cc:964,1
    - Dst: listRemove
      Src: /src/nccl/src/dev_runtime.cc:966,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:971,1
    - Dst: ncclIntruAddressMapRemove
      Src: /src/nccl/src/dev_runtime.cc:971,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:974,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - comm
    - winDev
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclWindow_vidmem*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 928
    functionDepth: 3
    functionLinenumber: 928
    functionLinenumberEnd: 977
    functionName: symWindowDestroy
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 1
    functionsReached:
    - listFindSortedLub
    - listRemove
    - ncclShadowPoolFree
    - cudaMemsetAsync
    - ncclShadowPoolToHost
    - ncclCommDeregister
    - reinterpret_cast<uintptr_t>
    - ncclIntruAddressMapRemove
    - free
    - memset
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - symMemoryDropRef
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t symWindowDestroy(struct ncclComm* comm, struct ncclWindow_vidmem*
      winDev, cudaStream_t stream)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:996,1
    - Dst: ncclCommRegister
      Src: /src/nccl/src/dev_runtime.cc:996,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1000,1
    - Dst: ncclSymkInitOnce
      Src: /src/nccl/src/dev_runtime.cc:1000,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1004,1
    - Dst: ncclCuMemGetAddressRange
      Src: /src/nccl/src/dev_runtime.cc:1004,1
    - Dst: reinterpret_cast<CUdeviceptr>
      Src: /src/nccl/src/dev_runtime.cc:1004,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1005,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:1005,1
    - Dst: ncclParamElasticBufferRegister
      Src: /src/nccl/src/dev_runtime.cc:1008,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1009,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1016,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/dev_runtime.cc:1016,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1018,1
    - Dst: reinterpret_cast<CUdeviceptr>
      Src: /src/nccl/src/dev_runtime.cc:1026,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1028,1
    - Dst: CUCHECK
      Src: /src/nccl/src/dev_runtime.cc:1036,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/dev_runtime.cc:1036,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1037,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/dev_runtime.cc:1037,1
    - Dst: reinterpret_cast<char*>
      Src: /src/nccl/src/dev_runtime.cc:1037,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1039,1
    - Dst: cuMemGetAllocationPropertiesFromHandle
      Src: /src/nccl/src/dev_runtime.cc:1039,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1041,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1049,1
    - Dst: symMemoryObtain
      Src: /src/nccl/src/dev_runtime.cc:1049,1
    - Dst: memset
      Src: /src/nccl/src/dev_runtime.cc:1050,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1052,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/dev_runtime.cc:1052,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1054,1
    - Dst: symWindowCreate
      Src: /src/nccl/src/dev_runtime.cc:1054,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1059,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/dev_runtime.cc:1059,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1062,1
    - Dst: bootstrapBarrier
      Src: /src/nccl/src/dev_runtime.cc:1062,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1071,1
    - Dst: ncclIntruAddressMapInsert
      Src: /src/nccl/src/dev_runtime.cc:1071,1
    - Dst: INFO
      Src: /src/nccl/src/dev_runtime.cc:1072,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/dev_runtime.cc:1075,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:1076,1
    - Dst: symWindowDestroy
      Src: /src/nccl/src/dev_runtime.cc:1080,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/dev_runtime.cc:1082,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/dev_runtime.cc:1084,1
    - Dst: symMemoryDropRef
      Src: /src/nccl/src/dev_runtime.cc:1086,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:1089,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/dev_runtime.cc:1089,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:1091,1
    - Dst: ncclCommDeregister
      Src: /src/nccl/src/dev_runtime.cc:1093,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 83
    argCount: 5
    argNames:
    - comm
    - userPtr
    - userSize
    - winFlags
    - outWinDev
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - int
    - ncclWindow_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 979
    functionDepth: 6
    functionLinenumber: 979
    functionLinenumberEnd: 1097
    functionName: ncclDevrWindowRegisterInGroup
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - cudaStreamSynchronize
    - ncclParamElasticBufferRegister
    - ncclSymkInitOnce
    - cuDeviceGetAttribute
    - NCCLCHECKGOTO
    - cuMemRelease
    - bootstrapBarrier
    - WARN
    - ncclCalloc
    - cuMemRetainAllocationHandle
    - CUCHECKGOTO
    - free
    - ncclCommRegister
    - ncclIntruAddressMapInsert
    - reinterpret_cast<char*>
    - CUCHECK
    - symMemoryObtain
    - symWindowCreate
    - INFO
    - memset
    - CUDACHECKGOTO
    - cudaStreamDestroy
    - CUCHECKIGNORE
    - ncclCommDeregister
    - symWindowDestroy
    - cuMemGetAddressRange
    - cudaStreamCreateWithFlags
    - reinterpret_cast<CUdeviceptr>
    - cuMemGetAllocationPropertiesFromHandle
    - ncclCuMemGetAddressRange
    - symMemoryDropRef
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclDevrWindowRegisterInGroup(\n    struct ncclComm*
      comm,\n    void* userPtr, size_t userSize, int winFlags, ncclWindow_t* outWinDev\n
      \ )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1107,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:1107,1
    - Dst: memcpy
      Src: /src/nccl/src/dev_runtime.cc:1112,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1116,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:1116,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1125,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:1125,1
    - Dst: freeDevCommRequirements
      Src: /src/nccl/src/dev_runtime.cc:1135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct ncclDevCommRequirements*
    - struct ncclDevCommRequirements**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1138
    functionName: deepCopyDevCommRequirements
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - freeDevCommRequirements
    - memcpy
    - NCCLCHECKGOTO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t deepCopyDevCommRequirements(\n    struct ncclDevCommRequirements
      const* src,\n    struct ncclDevCommRequirements** dst\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:1146,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:1152,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:1156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - reqs
    argTypes:
    - struct ncclDevCommRequirements*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1158
    functionName: freeDevCommRequirements
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "void freeDevCommRequirements(\n    struct ncclDevCommRequirements*
      reqs\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - reqs
    argTypes:
    - struct ncclDevCommRequirements*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1172
    functionName: ncclGinResourcesRequested
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclGinResourcesRequested(struct ncclDevCommRequirements const*
      reqs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cudaMemcpy
      Src: /src/nccl/src/dev_runtime.cc:1178,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1179,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1180,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1185
    functionName: ncclDevCommGdakiDump
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - cudaMemcpy
    - printf
    linkageType: ''
    returnType: void
    signature: void ncclDevCommGdakiDump(void* handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cudaMemcpy
      Src: /src/nccl/src/dev_runtime.cc:1190,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1191,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1194
    functionName: ncclDevCommProxyDump
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - cudaMemcpy
    - printf
    linkageType: ''
    returnType: void
    signature: void ncclDevCommProxyDump(void* handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1198
    functionName: ncclDevCommGdakiDump
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void ncclDevCommGdakiDump(void* handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1201
    functionName: ncclDevCommProxyDump
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void ncclDevCommProxyDump(void* handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1205,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1206,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1207,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1208,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1209,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1210,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1211,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1213,1
    - Dst: ncclDevCommGdakiDump
      Src: /src/nccl/src/dev_runtime.cc:1214,1
    - Dst: ncclDevCommProxyDump
      Src: /src/nccl/src/dev_runtime.cc:1215,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1217,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1218,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1219,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1220,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1221,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1222,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1224,1
    - Dst: printf
      Src: /src/nccl/src/dev_runtime.cc:1225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - devComm
    argTypes:
    - struct ncclDevComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1226
    functionName: ncclDevCommDump
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclDevCommGdakiDump
    - printf
    - ncclDevCommProxyDump
    linkageType: ''
    returnType: void
    signature: void ncclDevCommDump(struct ncclDevComm* devComm)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamWorld
      Src: /src/nccl/src/dev_runtime.cc:1235,1
    - Dst: ncclTeamInnerFactor
      Src: /src/nccl/src/dev_runtime.cc:1236,1
    - Dst: INFO
      Src: /src/nccl/src/dev_runtime.cc:1263,1
    - Dst: INFO
      Src: /src/nccl/src/dev_runtime.cc:1265,1
    - Dst: ncclGinResourcesRequested
      Src: /src/nccl/src/dev_runtime.cc:1270,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1272,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1278,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1283,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1293,1
    - Dst: ncclGinConnectOnce
      Src: /src/nccl/src/dev_runtime.cc:1293,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1297,1
    - Dst: symMemoryRegisterGin
      Src: /src/nccl/src/dev_runtime.cc:1297,1
    - Dst: memset
      Src: /src/nccl/src/dev_runtime.cc:1308,1
    - Dst: idivRcp32
      Src: /src/nccl/src/dev_runtime.cc:1313,1
    - Dst: idivRcp32
      Src: /src/nccl/src/dev_runtime.cc:1316,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1320,1
    - Dst: symTeamObtain
      Src: /src/nccl/src/dev_runtime.cc:1320,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1327,1
    - Dst: symTeamObtain
      Src: /src/nccl/src/dev_runtime.cc:1327,1
    - Dst: ncclLsaBarrierCreateRequirement
      Src: /src/nccl/src/dev_runtime.cc:1337,1
    - Dst: ncclGinBarrierCreateRequirement
      Src: /src/nccl/src/dev_runtime.cc:1339,1
    - Dst: ncclTeamRail
      Src: /src/nccl/src/dev_runtime.cc:1339,1
    - Dst: ncclLsaBarrierCreateRequirement
      Src: /src/nccl/src/dev_runtime.cc:1343,1
    - Dst: ncclGinBarrierCreateRequirement
      Src: /src/nccl/src/dev_runtime.cc:1347,1
    - Dst: ncclTeamRail
      Src: /src/nccl/src/dev_runtime.cc:1347,1
    - Dst: ncclGinBarrierCreateRequirement
      Src: /src/nccl/src/dev_runtime.cc:1351,1
    - Dst: ncclTeamWorld
      Src: /src/nccl/src/dev_runtime.cc:1351,1
    - Dst: alignUp
      Src: /src/nccl/src/dev_runtime.cc:1360,1
    - Dst: std::max<size_t>
      Src: /src/nccl/src/dev_runtime.cc:1360,1
    - Dst: alignUp
      Src: /src/nccl/src/dev_runtime.cc:1369,1
    - Dst: alignUp
      Src: /src/nccl/src/dev_runtime.cc:1372,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1378,1
    - Dst: ncclGinDevCommSetup
      Src: /src/nccl/src/dev_runtime.cc:1378,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1381,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/dev_runtime.cc:1381,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1388,1
    - Dst: ncclShadowPoolToHost
      Src: /src/nccl/src/dev_runtime.cc:1388,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1401,1
    - Dst: ncclShadowPoolFree
      Src: /src/nccl/src/dev_runtime.cc:1401,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1402,1
    - Dst: allocAndPopulateSegmentWindows
      Src: /src/nccl/src/dev_runtime.cc:1402,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1406,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/dev_runtime.cc:1406,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1410,1
    - Dst: symWindowTableInitOnce
      Src: /src/nccl/src/dev_runtime.cc:1410,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1426,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/dev_runtime.cc:1426,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1428,1
    - Dst: symMemoryObtain
      Src: /src/nccl/src/dev_runtime.cc:1428,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1431,1
    - Dst: symWindowCreate
      Src: /src/nccl/src/dev_runtime.cc:1431,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1436,1
    - Dst: ncclShadowPoolToHost
      Src: /src/nccl/src/dev_runtime.cc:1436,1
    - Dst: add4G
      Src: /src/nccl/src/dev_runtime.cc:1440,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1442,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/src/dev_runtime.cc:1442,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1445,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/dev_runtime.cc:1445,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1447,1
    - Dst: bootstrapBarrier
      Src: /src/nccl/src/dev_runtime.cc:1447,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1448,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/dev_runtime.cc:1448,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1452,1
    - Dst: struct ncclDevCommCompat*::devCommCopyNewToOld
      Src: /src/nccl/src/dev_runtime.cc:1452,1
    - Dst: symWindowDestroy
      Src: /src/nccl/src/dev_runtime.cc:1457,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/dev_runtime.cc:1458,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/dev_runtime.cc:1460,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/dev_runtime.cc:1460,1
    - Dst: symMemoryDropRef
      Src: /src/nccl/src/dev_runtime.cc:1461,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/dev_runtime.cc:1463,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 161
    argCount: 5
    argNames:
    - comm
    - reqs
    - outDevComm
    - isInternal
    - devCompat
    argTypes:
    - struct ncclComm*
    - struct ncclDevCommRequirements*
    - struct ncclDevComm*
    - bool
    - struct ncclDevCommCompat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1228
    functionDepth: 6
    functionLinenumber: 1228
    functionLinenumberEnd: 1466
    functionName: ncclDevrCommCreateInternal
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - cudaMemcpyAsync
    - add4G
    - ncclTeamRail
    - cudaStreamSynchronize
    - cudaMemsetAsync
    - NCCLCHECKGOTO
    - alignUp
    - bootstrapBarrier
    - ncclGinBarrierCreateRequirement
    - cuMemRelease
    - WARN
    - std::max<size_t>
    - CUCHECKGOTO
    - ncclGinConnectOnce
    - ncclTeamInnerFactor
    - ncclShadowPoolFree
    - symWindowTableInitOnce
    - ncclLsaBarrierCreateRequirement
    - idivRcp32
    - ncclGinDevCommSetup
    - ncclGinResourcesRequested
    - symTeamObtain
    - symMemoryObtain
    - symWindowCreate
    - INFO
    - struct ncclDevCommCompat*::devCommCopyNewToOld
    - ncclShadowPoolToHost
    - symMemoryRegisterGin
    - memset
    - CUDACHECKGOTO
    - NCCLCHECK
    - cudaStreamDestroy
    - CUCHECKIGNORE
    - allocAndPopulateSegmentWindows
    - cuMemCreate
    - symWindowDestroy
    - cudaStreamCreateWithFlags
    - ncclTeamWorld
    - symMemoryDropRef
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclDevrCommCreateInternal(\n    struct ncclComm* comm,\n
      \   struct ncclDevCommRequirements* reqs, struct ncclDevComm* outDevComm, bool
      isInternal,\n    struct ncclDevCommCompat* devCompat\n  )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1472,1
    - Dst: CommCheck
      Src: /src/nccl/src/dev_runtime.cc:1472,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1473,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1473,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1476,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/dev_runtime.cc:1488,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/dev_runtime.cc:1488,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1489,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/dev_runtime.cc:1489,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1491,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/dev_runtime.cc:1491,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1492,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/dev_runtime.cc:1492,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1494,1
    - Dst: ncclDevrInitOnce
      Src: /src/nccl/src/dev_runtime.cc:1494,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1496,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:1496,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/dev_runtime.cc:1501,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/dev_runtime.cc:1502,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/dev_runtime.cc:1505,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1506,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/dev_runtime.cc:1506,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/dev_runtime.cc:1507,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 5
    argNames:
    - comm
    - buff
    - size
    - win
    - winFlags
    argTypes:
    - ncclComm_t
    - void*
    - size_t
    - ncclWindow_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1471
    functionDepth: 3
    functionLinenumber: 1471
    functionLinenumberEnd: 1511
    functionName: ncclCommWindowRegister
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - PtrCheck
    - ncclCalloc
    - cudaGetDevice
    - ncclDevrInitOnce
    - ncclGroupStartInternal
    - ncclGroupErrCheck
    - NCCLCHECKGOTO
    - cudaSetDevice
    - ncclCommEnsureReady
    - CUDACHECK
    - CUDACHECKGOTO
    - CommCheck
    - WARN
    - ncclGroupEndInternal
    - ncclGroupCommJoin
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommWindowRegister(ncclComm_t comm, void* buff, size_t
      size, ncclWindow_t* win, int winFlags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1515,1
    - Dst: CommCheck
      Src: /src/nccl/src/dev_runtime.cc:1515,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1522,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/dev_runtime.cc:1522,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1523,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/dev_runtime.cc:1523,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1524,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/dev_runtime.cc:1524,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1525,1
    - Dst: symWindowDestroy
      Src: /src/nccl/src/dev_runtime.cc:1525,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/dev_runtime.cc:1527,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/dev_runtime.cc:1528,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/dev_runtime.cc:1530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - comm
    - winDev
    argTypes:
    - struct ncclComm*
    - struct ncclWindow_vidmem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1514
    functionDepth: 4
    functionLinenumber: 1514
    functionLinenumberEnd: 1534
    functionName: ncclCommWindowDeregister
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - cudaStreamDestroy
    - cudaGetDevice
    - cudaStreamSynchronize
    - symWindowDestroy
    - cudaStreamCreateWithFlags
    - cudaSetDevice
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - CommCheck
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommWindowDeregister(struct ncclComm* comm, struct
      ncclWindow_vidmem* winDev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/dev_runtime.cc:1540,1
    - Dst: listFindSortedLub
      Src: /src/nccl/src/dev_runtime.cc:1541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - comm
    - userPtr
    - outWin
    argTypes:
    - struct ncclComm*
    - void*
    - struct ncclDevrWindow**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1548
    functionName: ncclDevrFindWindow
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - listFindSortedLub
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclDevrFindWindow(\n    struct ncclComm* comm, void
      const* userPtr, struct ncclDevrWindow** outWin\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - win
    argTypes:
    - struct ncclDevrWindow*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1550
    functionDepth: 0
    functionLinenumber: 1550
    functionLinenumberEnd: 1552
    functionName: ncclDevrWindowIsMultiSegment
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclDevrWindowIsMultiSegment(struct ncclDevrWindow* win)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - win
    argTypes:
    - struct ncclDevrWindow*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1554
    functionDepth: 0
    functionLinenumber: 1554
    functionLinenumberEnd: 1556
    functionName: ncclDevrWindowHasSysmemSegment
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclDevrWindowHasSysmemSegment(struct ncclDevrWindow* win)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamEnableVersionCheck
      Src: /src/nccl/src/dev_runtime.cc:1562,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1564,1
    - Dst: ncclVersionToString
      Src: /src/nccl/src/dev_runtime.cc:1565,1
    - Dst: ncclVersionToString
      Src: /src/nccl/src/dev_runtime.cc:1566,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1579,1
    - Dst: ncclVersionToString
      Src: /src/nccl/src/dev_runtime.cc:1580,1
    - Dst: ncclVersionToString
      Src: /src/nccl/src/dev_runtime.cc:1581,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - compiledVersion
    - devCompatPtr
    argTypes:
    - int
    - struct ncclDevCommCompat**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1559
    functionDepth: 1
    functionLinenumber: 1559
    functionLinenumberEnd: 1587
    functionName: getNcclVersionCompat
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclParamEnableVersionCheck
    - WARN
    - ncclVersionToString
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getNcclVersionCompat(int compiledVersion, struct ncclDevCommCompat**
      devCompatPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/dev_runtime.cc:1590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstRankPtr
    - srcRankPtr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1591
    functionName: ncclDevCommCopyLsaData
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ncclDevCommCopyLsaData(void* dstRankPtr, void const* srcRankPtr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1595,1
    - Dst: CommCheck
      Src: /src/nccl/src/dev_runtime.cc:1595,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1596,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1596,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1598,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/dev_runtime.cc:1598,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1601,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1606,1
    - Dst: getNcclVersionCompat
      Src: /src/nccl/src/dev_runtime.cc:1606,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/dev_runtime.cc:1616,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1618,1
    - Dst: getGlobalGinType
      Src: /src/nccl/src/dev_runtime.cc:1618,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1619,1
    - Dst: getGlobalRailedGinType
      Src: /src/nccl/src/dev_runtime.cc:1619,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1623,1
    - Dst: ncclDevrInitOnce
      Src: /src/nccl/src/dev_runtime.cc:1623,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1628,1
    - Dst: struct ncclDevCommCompat*::commPropertiesFilter
      Src: /src/nccl/src/dev_runtime.cc:1628,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - comm
    - props
    argTypes:
    - ncclComm_t
    - ncclCommProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1594
    functionDepth: 3
    functionLinenumber: 1594
    functionLinenumberEnd: 1631
    functionName: ncclCommQueryProperties
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - struct ncclDevCommCompat*::commPropertiesFilter
    - PtrCheck
    - ncclDevrInitOnce
    - getNcclVersionCompat
    - NCCL_VERSION
    - ncclCommEnsureReady
    - getGlobalRailedGinType
    - CommCheck
    - getGlobalGinType
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommQueryProperties(ncclComm_t comm, ncclCommProperties_t*
      props)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1638,1
    - Dst: CommCheck
      Src: /src/nccl/src/dev_runtime.cc:1638,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1639,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1639,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1641,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1646,1
    - Dst: getNcclVersionCompat
      Src: /src/nccl/src/dev_runtime.cc:1646,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/dev_runtime.cc:1652,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/dev_runtime.cc:1652,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1653,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/dev_runtime.cc:1653,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1656,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1661,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/dev_runtime.cc:1661,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1662,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/dev_runtime.cc:1662,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1664,1
    - Dst: ncclDevrInitOnce
      Src: /src/nccl/src/dev_runtime.cc:1664,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1666,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/dev_runtime.cc:1666,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1668,1
    - Dst: deepCopyDevCommRequirements
      Src: /src/nccl/src/dev_runtime.cc:1668,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1670,1
    - Dst: struct ncclDevCommCompat*::devCommRequirementsFilter
      Src: /src/nccl/src/dev_runtime.cc:1670,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/dev_runtime.cc:1674,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/dev_runtime.cc:1675,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/dev_runtime.cc:1678,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1679,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/dev_runtime.cc:1679,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/dev_runtime.cc:1680,1
    - Dst: free
      Src: /src/nccl/src/dev_runtime.cc:1683,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 3
    argNames:
    - comm
    - reqs
    - outDevComm
    argTypes:
    - ncclComm_t
    - struct ncclDevCommRequirements*
    - struct ncclDevComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1634
    functionDepth: 3
    functionLinenumber: 1634
    functionLinenumberEnd: 1685
    functionName: ncclDevCommCreate
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclDevrInitOnce
    - ncclGroupStartInternal
    - NCCLCHECKGOTO
    - CUDACHECK
    - CommCheck
    - WARN
    - ncclGroupEndInternal
    - ncclIntruQueueEnqueue
    - ncclCalloc
    - free
    - ncclCommEnsureReady
    - PtrCheck
    - deepCopyDevCommRequirements
    - getNcclVersionCompat
    - CUDACHECKGOTO
    - ncclGroupCommJoin
    - NCCLCHECK
    - cudaGetDevice
    - struct ncclDevCommCompat*::devCommRequirementsFilter
    - ncclGroupErrCheck
    - cudaSetDevice
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclDevCommCreate(\n    ncclComm_t comm, struct ncclDevCommRequirements
      const* reqs,\n    struct ncclDevComm* outDevComm\n  )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1691,1
    - Dst: CommCheck
      Src: /src/nccl/src/dev_runtime.cc:1691,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1692,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1692,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1699,1
    - Dst: getNcclVersionCompat
      Src: /src/nccl/src/dev_runtime.cc:1699,1
    - Dst: memset
      Src: /src/nccl/src/dev_runtime.cc:1705,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1708,1
    - Dst: struct ncclDevCommCompat*::devCommCopyOldToNew
      Src: /src/nccl/src/dev_runtime.cc:1708,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/dev_runtime.cc:1712,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/dev_runtime.cc:1712,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/dev_runtime.cc:1713,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/dev_runtime.cc:1713,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1716,1
    - Dst: ncclCommWindowDeregister
      Src: /src/nccl/src/dev_runtime.cc:1716,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/dev_runtime.cc:1719,1
    - Dst: ncclGinDevCommFree
      Src: /src/nccl/src/dev_runtime.cc:1719,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/dev_runtime.cc:1723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - comm
    - devComm
    argTypes:
    - struct ncclComm*
    - struct ncclDevComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1688
    functionDepth: 5
    functionLinenumber: 1688
    functionLinenumberEnd: 1725
    functionName: ncclDevCommDestroy
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - PtrCheck
    - cudaGetDevice
    - getNcclVersionCompat
    - ncclGinDevCommFree
    - struct ncclDevCommCompat*::devCommCopyOldToNew
    - memset
    - cudaSetDevice
    - NCCLCHECKGOTO
    - ncclCommWindowDeregister
    - CUDACHECK
    - CommCheck
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclDevCommDestroy(\n    struct ncclComm* comm, struct
      ncclDevComm const* devComm\n  )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1729,1
    - Dst: CommCheck
      Src: /src/nccl/src/dev_runtime.cc:1729,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1730,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1730,1
    - Dst: INFO
      Src: /src/nccl/src/dev_runtime.cc:1733,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1738,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1738,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1742,1
    - Dst: ncclShadowPoolToHost
      Src: /src/nccl/src/dev_runtime.cc:1742,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - comm
    - win
    - outUserPtr
    argTypes:
    - struct ncclComm*
    - struct ncclWindow_vidmem*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1728
    functionDepth: 1
    functionLinenumber: 1728
    functionLinenumberEnd: 1752
    functionName: ncclWinGetUserPtr
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - PtrCheck
    - INFO
    - ncclShadowPoolToHost
    - CommCheck
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclWinGetUserPtr(struct ncclComm* comm, struct ncclWindow_vidmem*
      win, void** outUserPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamWorld
      Src: /src/nccl/src/dev_runtime.cc:1755,1
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/dev_runtime.cc:1756,1
    - Dst: ncclTeamRankIsMember
      Src: /src/nccl/src/dev_runtime.cc:1757,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1758,1
    - Dst: ncclTeamRankToTeam
      Src: /src/nccl/src/dev_runtime.cc:1761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - comm
    - peerWorldRank
    - peerLsaRank
    argTypes:
    - struct ncclComm*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1763
    functionName: ncclDevrWorldToLsaRank
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - ncclTeamWorld
    - ncclTeamRankToTeam
    - ncclTeamLsa
    - WARN
    - ncclTeamRankIsMember
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDevrWorldToLsaRank(struct ncclComm* comm, int peerWorldRank,
      int* peerLsaRank)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1767,1
    - Dst: CommCheck
      Src: /src/nccl/src/dev_runtime.cc:1767,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1768,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - comm
    - winHost
    - offset
    - lsaRank
    - outPtr
    argTypes:
    - struct ncclComm*
    - struct ncclDevrWindow*
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1766
    functionDepth: 1
    functionLinenumber: 1766
    functionLinenumberEnd: 1785
    functionName: ncclDevrGetLsaRankPtr
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - CommCheck
    - PtrCheck
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDevrGetLsaRankPtr(struct ncclComm* comm, struct ncclDevrWindow*
      winHost, size_t offset, int lsaRank, void** outPtr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - winHost
    - ctx
    argTypes:
    - struct ncclDevrWindow*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1788
    functionDepth: 0
    functionLinenumber: 1788
    functionLinenumberEnd: 1796
    functionName: ncclDevrGetRmaDevWin
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclGinWindow_t
    signature: ncclGinWindow_t ncclDevrGetRmaDevWin(struct ncclDevrWindow* winHost,
      int ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1803,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1809,1
    - Dst: symTeamObtain
      Src: /src/nccl/src/dev_runtime.cc:1809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - comm
    - winHost
    - offset
    - lsaTeam
    - outPtr
    argTypes:
    - struct ncclComm*
    - struct ncclDevrWindow*
    - size_t
    - struct ncclTeam
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1799
    functionDepth: 3
    functionLinenumber: 1799
    functionLinenumberEnd: 1814
    functionName: ncclDevrGetLsaTeamPtrMC
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - symTeamObtain
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDevrGetLsaTeamPtrMC(struct ncclComm* comm, struct
      ncclDevrWindow* winHost, size_t offset, struct ncclTeam lsaTeam, void** outPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1819,1
    - Dst: ncclIntruAddressMapFind
      Src: /src/nccl/src/dev_runtime.cc:1819,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - devWindow
    - foundComm
    - hostWindow
    argTypes:
    - ncclWindow_t
    - ncclComm_t*
    - ncclDevrWindow**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1816
    functionDepth: 1
    functionLinenumber: 1816
    functionLinenumberEnd: 1830
    functionName: findCommAndHostWindowFromDeviceWindow
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclIntruAddressMapFind
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t findCommAndHostWindowFromDeviceWindow(ncclWindow_t devWindow,
      ncclComm_t* foundComm, ncclDevrWindow** hostWindow)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1834,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1834,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1835,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1835,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1837,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1844,1
    - Dst: findCommAndHostWindowFromDeviceWindow
      Src: /src/nccl/src/dev_runtime.cc:1844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - window
    - offset
    - multimem
    - outPtr
    argTypes:
    - ncclWindow_t
    - size_t
    - ncclMultimemHandle
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1833
    functionDepth: 2
    functionLinenumber: 1833
    functionLinenumberEnd: 1852
    functionName: ncclGetMultimemDevicePointer
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - PtrCheck
    - WARN
    - findCommAndHostWindowFromDeviceWindow
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetMultimemDevicePointer (ncclWindow_t window, size_t
      offset, ncclMultimemHandle multimem, void** outPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1857,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1857,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1858,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1858,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1863,1
    - Dst: findCommAndHostWindowFromDeviceWindow
      Src: /src/nccl/src/dev_runtime.cc:1863,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1870,1
    - Dst: ncclDevrGetLsaTeamPtrMC
      Src: /src/nccl/src/dev_runtime.cc:1870,1
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/dev_runtime.cc:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - window
    - offset
    - outPtr
    argTypes:
    - ncclWindow_t
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1856
    functionDepth: 4
    functionLinenumber: 1856
    functionLinenumberEnd: 1872
    functionName: ncclGetLsaMultimemDevicePointer
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - PtrCheck
    - ncclTeamLsa
    - findCommAndHostWindowFromDeviceWindow
    - ncclDevrGetLsaTeamPtrMC
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetLsaMultimemDevicePointer(ncclWindow_t window, size_t
      offset, void** outPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1876,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1876,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1877,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1877,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1884,1
    - Dst: findCommAndHostWindowFromDeviceWindow
      Src: /src/nccl/src/dev_runtime.cc:1884,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1888,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1893,1
    - Dst: ncclDevrGetLsaRankPtr
      Src: /src/nccl/src/dev_runtime.cc:1893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - window
    - offset
    - lsaRank
    - outPtr
    argTypes:
    - ncclWindow_t
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1875
    functionDepth: 2
    functionLinenumber: 1875
    functionLinenumberEnd: 1896
    functionName: ncclGetLsaDevicePointer
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - PtrCheck
    - ncclDevrGetLsaRankPtr
    - findCommAndHostWindowFromDeviceWindow
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetLsaDevicePointer(ncclWindow_t window, size_t offset,
      int lsaRank, void** outPtr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1900,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1900,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1901,1
    - Dst: PtrCheck
      Src: /src/nccl/src/dev_runtime.cc:1901,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1911,1
    - Dst: findCommAndHostWindowFromDeviceWindow
      Src: /src/nccl/src/dev_runtime.cc:1911,1
    - Dst: WARN
      Src: /src/nccl/src/dev_runtime.cc:1914,1
    - Dst: ncclTeamWorld
      Src: /src/nccl/src/dev_runtime.cc:1919,1
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/dev_runtime.cc:1920,1
    - Dst: ncclTeamRankToTeam
      Src: /src/nccl/src/dev_runtime.cc:1923,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/dev_runtime.cc:1932,1
    - Dst: ncclDevrGetLsaRankPtr
      Src: /src/nccl/src/dev_runtime.cc:1932,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - window
    - offset
    - peer
    - outPtr
    argTypes:
    - ncclWindow_t
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1899
    functionDepth: 2
    functionLinenumber: 1899
    functionLinenumberEnd: 1935
    functionName: ncclGetPeerDevicePointer
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 0
    functionsReached:
    - PtrCheck
    - ncclDevrGetLsaRankPtr
    - ncclTeamRankToTeam
    - ncclTeamLsa
    - findCommAndHostWindowFromDeviceWindow
    - WARN
    - ncclTeamWorld
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetPeerDevicePointer(ncclWindow_t window, size_t offset,
      int peer, void** outPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - Obj::*key
    - sorted
    - count
    - arg
    argTypes:
    - Key
    - Obj*
    - int
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1940
    functionDepth: 0
    functionLinenumber: 1940
    functionLinenumberEnd: 1950
    functionName: listFindSortedLub
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int listFindSortedLub(Key Obj::*key, Obj* sorted, int count, Key arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/nccl/src/dev_runtime.cc:1957,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - list
    - capacity
    - count
    - index
    - val
    argTypes:
    - Obj**
    - int*
    - int*
    - int
    - Obj
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1953
    functionDepth: 0
    functionLinenumber: 1953
    functionLinenumberEnd: 1964
    functionName: listInsert
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 1
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void listInsert(Obj** list, int* capacity, int* count, int index, Obj
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - list
    - count
    - index
    argTypes:
    - Obj*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1967
    functionDepth: 0
    functionLinenumber: 1967
    functionLinenumberEnd: 1972
    functionName: listRemove
    functionSourceFile: /src/nccl/src/dev_runtime.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void listRemove(Obj* list, int* count, 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: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    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: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: STR
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctaPolicy
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: ctaPolicyIsValid
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ctaPolicyIsValid(int ctaPolicy)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:81,1
    - Dst: isdigit
      Src: /src/nccl/src/init.cc:85,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:97,1
    - Dst: strdup
      Src: /src/nccl/src/init.cc:101,1
    - Dst: strtok
      Src: /src/nccl/src/init.cc:102,1
    - Dst: strcasecmp
      Src: /src/nccl/src/init.cc:105,1
    - Dst: strcasecmp
      Src: /src/nccl/src/init.cc:106,1
    - Dst: strcasecmp
      Src: /src/nccl/src/init.cc:107,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:108,1
    - Dst: strtok
      Src: /src/nccl/src/init.cc:113,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:116,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:118,1
    - Dst: free
      Src: /src/nccl/src/init.cc:120,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 122
    functionName: getEnvCtaPolicyOnce
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - INFO
    - strdup
    - strtok
    - free
    - isdigit
    - strcasecmp
    linkageType: ''
    returnType: void
    signature: void getEnvCtaPolicyOnce()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamGdrCopyEnable
      Src: /src/nccl/src/init.cc:135,1
    - Dst: ncclGdrInit
      Src: /src/nccl/src/init.cc:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: initGdrCopy
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclParamGdrCopyEnable
    - ncclGdrInit
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t initGdrCopy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:146,1
    - Dst: ncclOsInitialize
      Src: /src/nccl/src/init.cc:146,1
    - Dst: initGdrCopy
      Src: /src/nccl/src/init.cc:147,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:149,1
    - Dst: bootstrapNetInit
      Src: /src/nccl/src/init.cc:149,1
    - Dst: initNvtxRegisteredEnums
      Src: /src/nccl/src/init.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: initOnceFunc
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - bootstrapNetInit
    - initNvtxRegisteredEnums
    - NCCLCHECKGOTO
    - ncclOsInitialize
    - initGdrCopy
    linkageType: ''
    returnType: void
    signature: void initOnceFunc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/init.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: ncclInit
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - std::call_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:164,1
    - Dst: ncclEnvPluginInit
      Src: /src/nccl/src/init.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: envInitOnceFunc
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclEnvPluginInit
    - NCCLCHECKGOTO
    linkageType: ''
    returnType: void
    signature: void envInitOnceFunc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/init.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: ncclInitEnv
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - std::call_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclInitEnv()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - version
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    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:182,1
    - Dst: ncclInitEnv
      Src: /src/nccl/src/init.cc:182,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:183,1
    - Dst: ncclInit
      Src: /src/nccl/src/init.cc:183,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:184,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:184,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:186,1
    - Dst: bootstrapGetUniqueId
      Src: /src/nccl/src/init.cc:186,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:189,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:191,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/init.cc:192,1
    - Dst: getHash
      Src: /src/nccl/src/init.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - ncclUniqueId*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 194
    functionName: ncclGetUniqueId
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - PtrCheck
    - bootstrapGetUniqueId
    - ncclInitEnv
    - memcpy
    - getHash
    - TRACE_CALL
    - memset
    - ncclInit
    - NCCLCHECK
    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: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    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:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dtor
    argTypes:
    - struct ncclDestructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    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:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - comm
    - obj
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 225
    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:228,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/init.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dtor
    argTypes:
    - struct ncclDestructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: ncclDestructorFnCudaFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCudaFree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDestructorFnCudaFree(struct ncclDestructor* dtor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/init.cc:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - comm
    - obj
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 238
    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:241,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/init.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dtor
    argTypes:
    - struct ncclDestructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 243
    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:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - comm
    - obj
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 251
    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:254,1
    - Dst: ncclGdrCudaFree
      Src: /src/nccl/src/init.cc:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dtor
    argTypes:
    - struct ncclDestructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 256
    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:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - comm
    - handle
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 264
    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:272,1
    - Dst: ncclCeFinalize
      Src: /src/nccl/src/init.cc:272,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:273,1
    - Dst: ncclRmaCeFinalize
      Src: /src/nccl/src/init.cc:273,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:276,1
    - Dst: ncclSymkFinalize
      Src: /src/nccl/src/init.cc:276,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:277,1
    - Dst: ncclDevrFinalize
      Src: /src/nccl/src/init.cc:277,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:279,1
    - Dst: ncclRasCommFini
      Src: /src/nccl/src/init.cc:279,1
    - Dst: ncclComm_t::proxyState::thread::joinable
      Src: /src/nccl/src/init.cc:284,1
    - Dst: ncclComm_t::proxyState::thread::join
      Src: /src/nccl/src/init.cc:285,1
    - Dst: ncclComm_t::proxyState::threadUDS::joinable
      Src: /src/nccl/src/init.cc:286,1
    - Dst: ncclComm_t::proxyState::threadUDS::join
      Src: /src/nccl/src/init.cc:288,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/init.cc:293,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/init.cc:294,1
    - Dst: free
      Src: /src/nccl/src/init.cc:295,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/init.cc:297,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/init.cc:298,1
    - Dst: free
      Src: /src/nccl/src/init.cc:299,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:302,1
    - Dst: ncclMemManagerDestroy
      Src: /src/nccl/src/init.cc:302,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:304,1
    - Dst: cudaMemPoolDestroy
      Src: /src/nccl/src/init.cc:304,1
    - Dst: free
      Src: /src/nccl/src/init.cc:308,1
    - Dst: free
      Src: /src/nccl/src/init.cc:309,1
    - Dst: free
      Src: /src/nccl/src/init.cc:311,1
    - Dst: ncclTopoFree
      Src: /src/nccl/src/init.cc:313,1
    - Dst: free
      Src: /src/nccl/src/init.cc:315,1
    - Dst: free
      Src: /src/nccl/src/init.cc:316,1
    - Dst: free
      Src: /src/nccl/src/init.cc:318,1
    - Dst: free
      Src: /src/nccl/src/init.cc:319,1
    - Dst: free
      Src: /src/nccl/src/init.cc:320,1
    - Dst: free
      Src: /src/nccl/src/init.cc:321,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:324,1
    - Dst: bootstrapClose
      Src: /src/nccl/src/init.cc:324,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:327,1
    - Dst: freeChannel
      Src: /src/nccl/src/init.cc:327,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:330,1
    - Dst: ncclGinHostFinalize
      Src: /src/nccl/src/init.cc:330,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:331,1
    - Dst: ncclRmaProxyFinalize
      Src: /src/nccl/src/init.cc:331,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/init.cc:335,1
    - Dst: free
      Src: /src/nccl/src/init.cc:338,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/init.cc:339,1
    - Dst: free
      Src: /src/nccl/src/init.cc:341,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:342,1
    - Dst: ncclStrongStreamDestruct
      Src: /src/nccl/src/init.cc:342,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:343,1
    - Dst: ncclStrongStreamDestruct
      Src: /src/nccl/src/init.cc:343,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:344,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/init.cc:344,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:345,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/init.cc:345,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:346,1
    - Dst: ncclProxyDestroy
      Src: /src/nccl/src/init.cc:346,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:351,1
    - Dst: ncclNvlsFree
      Src: /src/nccl/src/init.cc:351,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:355,1
    - Dst: struct ncclDestructor*::fn
      Src: /src/nccl/src/init.cc:355,1
    - Dst: ncclMemoryStackDestruct
      Src: /src/nccl/src/init.cc:359,1
    - Dst: ncclMemoryStackDestruct
      Src: /src/nccl/src/init.cc:360,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/init.cc:363,1
    - Dst: free
      Src: /src/nccl/src/init.cc:364,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:365,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/init.cc:365,1
    - Dst: free
      Src: /src/nccl/src/init.cc:366,1
    - Dst: free
      Src: /src/nccl/src/init.cc:368,1
    - Dst: free
      Src: /src/nccl/src/init.cc:370,1
    - Dst: free
      Src: /src/nccl/src/init.cc:371,1
    - Dst: free
      Src: /src/nccl/src/init.cc:372,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:374,1
    - Dst: ncclRegCleanup
      Src: /src/nccl/src/init.cc:374,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:376,1
    - Dst: commPoison
      Src: /src/nccl/src/init.cc:378,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:379,1
    - Dst: ncclProfilerPluginFinalize
      Src: /src/nccl/src/init.cc:379,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:381,1
    - Dst: ncclNetFinalize
      Src: /src/nccl/src/init.cc:381,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:382,1
    - Dst: ncclGinFinalize
      Src: /src/nccl/src/init.cc:382,1
    - Dst: ncclCudaContextDrop
      Src: /src/nccl/src/init.cc:384,1
    - Dst: free
      Src: /src/nccl/src/init.cc:385,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 93
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 388
    functionName: commFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - bootstrapClose
    - ncclIntruQueueEmpty
    - ncclDevrFinalize
    - ncclMemoryStackDestruct
    - struct ncclDestructor*::fn
    - ncclProfilerPluginFinalize
    - ncclComm_t::proxyState::thread::join
    - ncclCudaFree
    - ncclCudaContextDrop
    - ncclComm_t::proxyState::threadUDS::joinable
    - ncclGinHostFinalize
    - CUDACHECK
    - ncclProxyDestroy
    - ncclNvlsFree
    - ncclCeFinalize
    - ncclNetFinalize
    - ncclComm_t::proxyState::threadUDS::join
    - ncclRmaCeFinalize
    - ncclRmaProxyFinalize
    - ncclAtomicRefCountDecrement
    - ncclTopoFree
    - free
    - ncclMemManagerDestroy
    - ncclComm_t::proxyState::thread::joinable
    - ncclIntruQueueDequeue
    - commPoison
    - ncclStrongStreamDestruct
    - cudaEventDestroy
    - INFO
    - ncclSymkFinalize
    - ncclRegCleanup
    - ncclGinFinalize
    - cudaMemPoolDestroy
    - ncclRasCommFini
    - NCCLCHECK
    - ncclCudaHostFree
    - freeChannel
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t commFree(ncclComm_t comm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamDmaBufEnable
      Src: /src/nccl/src/init.cc:402,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/init.cc:402,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:407,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/init.cc:407,1
    - Dst: CUPFN
      Src: /src/nccl/src/init.cc:408,1
    - Dst: CUCHECK
      Src: /src/nccl/src/init.cc:409,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/init.cc:409,1
    - Dst: CUPFN
      Src: /src/nccl/src/init.cc:411,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/init.cc:411,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:413,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 417
    functionName: dmaBufSupported
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - cudaDriverGetVersion
    - CUPFN
    - INFO
    - ncclCudaLibraryInit
    - cuDeviceGetAttribute
    - cuDeviceGet
    - ncclParamDmaBufEnable
    - CUDACHECK
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t dmaBufSupported(struct ncclComm* comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/init.cc:422,1
    - Dst: ncclGroupJobAbort
      Src: /src/nccl/src/init.cc:423,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:425,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/init.cc:425,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 436
    functionName: ncclCommEnsureReady
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 3
    functionsReached:
    - COMPILER_ATOMIC_LOAD
    - ncclCommGetAsyncError
    - WARN
    - ncclGroupJobAbort
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommEnsureReady(ncclComm_t comm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/init.cc:440,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:444,1
    - Dst: ncclMemoryStackConstruct
      Src: /src/nccl/src/init.cc:448,1
    - Dst: ncclMemoryStackConstruct
      Src: /src/nccl/src/init.cc:449,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:456,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:456,1
    - Dst: ncclCudaCompCap
      Src: /src/nccl/src/init.cc:457,1
    - Dst: NEW_NOTHROW
      Src: /src/nccl/src/init.cc:461,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:465,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:465,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:466,1
    - Dst: ncclStrongStreamConstruct
      Src: /src/nccl/src/init.cc:466,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:467,1
    - Dst: ncclStrongStreamConstruct
      Src: /src/nccl/src/init.cc:467,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:468,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/init.cc:468,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:469,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/init.cc:469,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:472,1
    - Dst: ncclNetInit
      Src: /src/nccl/src/init.cc:472,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:473,1
    - Dst: ncclGinInit
      Src: /src/nccl/src/init.cc:473,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/init.cc:476,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:477,1
    - Dst: ncclNetInitFromParent
      Src: /src/nccl/src/init.cc:477,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:478,1
    - Dst: ncclGinInitFromParent
      Src: /src/nccl/src/init.cc:478,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:481,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:485,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/init.cc:494,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:495,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:499,1
    - Dst: ncclMemManagerInit
      Src: /src/nccl/src/init.cc:499,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:502,1
    - Dst: ncclCudaContextTrack
      Src: /src/nccl/src/init.cc:502,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:504,1
    - Dst: getBusId
      Src: /src/nccl/src/init.cc:504,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:507,1
    - Dst: int64ToBusId
      Src: /src/nccl/src/init.cc:507,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:508,1
    - Dst: ncclNvmlDeviceGetHandleByPciBusId
      Src: /src/nccl/src/init.cc:508,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:509,1
    - Dst: ncclNvmlDeviceGetIndex
      Src: /src/nccl/src/init.cc:509,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:511,1
    - Dst: dmaBufSupported
      Src: /src/nccl/src/init.cc:513,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:515,1
    - Dst: ncclMemoryPoolConstruct
      Src: /src/nccl/src/init.cc:517,1
    - Dst: ncclMemoryPoolConstruct
      Src: /src/nccl/src/init.cc:518,1
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/init.cc:521,1
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/init.cc:523,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:527,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:527,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:528,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:528,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/init.cc:533,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:538,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:538,1
    - Dst: ncclIntruQueueMpscConstruct
      Src: /src/nccl/src/init.cc:543,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/init.cc:544,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/init.cc:545,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/init.cc:546,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/init.cc:547,1
    - Dst: ncclOsGetPageSize
      Src: /src/nccl/src/init.cc:549,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:557,1
    - Dst: cudaMemPoolCreate
      Src: /src/nccl/src/init.cc:557,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:559,1
    - Dst: cudaMemPoolSetAttribute
      Src: /src/nccl/src/init.cc:559,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/init.cc:562,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 91
    argCount: 4
    argNames:
    - comm
    - parent
    - ndev
    - rank
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 565
    functionName: commAlloc
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclGinInit
    - NEW_NOTHROW
    - ncclStrongStreamConstruct
    - ncclMemoryPoolConstruct
    - ncclNvmlDeviceGetIndex
    - ncclNetInitFromParent
    - cudaEventCreateWithFlags
    - CUDACHECK
    - ncclMemoryStackAlloc
    - WARN
    - ncclGinInitFromParent
    - TRACE
    - ncclCalloc
    - ncclNvmlDeviceGetHandleByPciBusId
    - ncclIntruQueueMpscConstruct
    - ncclMemoryStackConstruct
    - reinterpret_cast<struct ncclComm*>
    - ncclIntruQueueConstruct
    - ncclCudaContextTrack
    - INFO
    - ncclCudaCompCap
    - ncclNetInit
    - ncclAtomicRefCountIncrement
    - int64ToBusId
    - memset
    - getBusId
    - NCCLCHECK
    - ncclOsGetPageSize
    - cudaGetDevice
    - cudaMemPoolCreate
    - cudaMemPoolSetAttribute
    - dmaBufSupported
    - ncclMemManagerInit
    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:576,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:577,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/init.cc:577,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/init.cc:577,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:578,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/init.cc:578,1
    - Dst: ncclCommPushCudaFree
      Src: /src/nccl/src/init.cc:579,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:580,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/init.cc:580,1
    - Dst: ncclCommPushCudaFree
      Src: /src/nccl/src/init.cc:581,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:582,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/init.cc:582,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/init.cc:597,1
    - Dst: ncclParamWorkArgsBytes
      Src: /src/nccl/src/init.cc:597,1
    - Dst: ncclMaxKernelArgsSize
      Src: /src/nccl/src/init.cc:597,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:599,1
    - Dst: ncclNvmlGetCCStatus
      Src: /src/nccl/src/init.cc:600,1
    - Dst: ncclParamWorkFifoBytes
      Src: /src/nccl/src/init.cc:605,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:607,1
    - Dst: min
      Src: /src/nccl/src/init.cc:610,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:614,1
    - Dst: ncclParamGdrCopyFifoEnable
      Src: /src/nccl/src/init.cc:617,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:619,1
    - Dst: ncclGdrCudaCalloc
      Src: /src/nccl/src/init.cc:619,1
    - Dst: ncclCommPushCudaGdrFree
      Src: /src/nccl/src/init.cc:620,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:624,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/init.cc:624,1
    - Dst: ncclCommPushCudaHostFree
      Src: /src/nccl/src/init.cc:625,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:634,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/init.cc:634,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:635,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/init.cc:635,1
    - Dst: ncclCommPushCudaHostFree
      Src: /src/nccl/src/init.cc:638,1
    - Dst: ncclCommPushCudaHostFree
      Src: /src/nccl/src/init.cc:639,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:642,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/init.cc:642,1
    - Dst: ncclCommPushCudaFree
      Src: /src/nccl/src/init.cc:643,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:644,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/init.cc:644,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:657,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/init.cc:657,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:661,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/init.cc:661,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:663,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/init.cc:663,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/init.cc:663,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:664,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/init.cc:664,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 83
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 668
    functionName: devCommSetup
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCudaGraphNone
    - ncclStrongStreamAcquire
    - ncclCommPushCudaGdrFree
    - ncclNvmlGetCCStatus
    - NCCLCHECKGOTO
    - WARN
    - ncclParamWorkFifoBytes
    - ncclStrongStreamRelease
    - ncclCudaHostCalloc
    - std::min<size_t>
    - INFO
    - min
    - ncclMaxKernelArgsSize
    - memset
    - ncclParamGdrCopyFifoEnable
    - ncclParamWorkArgsBytes
    - NCCLCHECK
    - ncclStrongStreamSynchronize
    - ncclCommPushCudaFree
    - ncclCommPushCudaHostFree
    - ncclCudaCallocAsync
    - ncclGdrCudaCalloc
    - ncclCudaMemcpyAsync
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t devCommSetup(ncclComm_t comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VERSION
      Src: /src/nccl/src/init.cc:675,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:677,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:679,1
    - Dst: ncclGetGitVersion
      Src: /src/nccl/src/init.cc:679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 680
    functionName: showVersion
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - VERSION
    - INFO
    - ncclGetGitVersion
    linkageType: ''
    returnType: void
    signature: void showVersion()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getHostHash
      Src: /src/nccl/src/init.cc:692,1
    - Dst: getPidHash
      Src: /src/nccl/src/init.cc:693,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/init.cc:694,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:695,1
    - Dst: cudaGetDeviceProperties
      Src: /src/nccl/src/init.cc:695,1
    - Dst: ROUNDUP
      Src: /src/nccl/src/init.cc:696,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/init.cc:707,1
    - Dst: stat
      Src: /src/nccl/src/init.cc:707,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:712,1
    - Dst: ncclGpuGdrSupport
      Src: /src/nccl/src/init.cc:712,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:721,1
    - Dst: int64ToBusId
      Src: /src/nccl/src/init.cc:721,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:722,1
    - Dst: ncclNvmlDeviceGetHandleByPciBusId
      Src: /src/nccl/src/init.cc:722,1
    - Dst: ncclNvmlDeviceGetGpuFabricInfoV
      Src: /src/nccl/src/init.cc:724,1
    - Dst: ncclParamMNNVLUUID
      Src: /src/nccl/src/init.cc:728,1
    - Dst: ncclParamMNNVLUUID
      Src: /src/nccl/src/init.cc:729,1
    - Dst: ncclParamMNNVLUUID
      Src: /src/nccl/src/init.cc:730,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:731,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:732,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:734,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:735,1
    - Dst: ncclParamMNNVLCliqueId
      Src: /src/nccl/src/init.cc:736,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:738,1
    - Dst: ncclNvmlDeviceGetPlatformInfo
      Src: /src/nccl/src/init.cc:738,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:739,1
    - Dst: getHash
      Src: /src/nccl/src/init.cc:743,1
    - Dst: ncclParamMNNVLCliqueId
      Src: /src/nccl/src/init.cc:744,1
    - Dst: ncclParamMNNVLCliqueId
      Src: /src/nccl/src/init.cc:744,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:745,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:752,1
    - Dst: ncclTopoCheckCrossNicSupport
      Src: /src/nccl/src/init.cc:752,1
    - Dst: CUCHECK
      Src: /src/nccl/src/init.cc:754,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/init.cc:754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 3
    argNames:
    - comm
    - info
    - commHash
    argTypes:
    - struct ncclComm*
    - struct ncclPeerInfo*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 760
    functionName: fillInfo
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - stat
    - getHash
    - cuDeviceGetAttribute
    - CUDACHECK
    - ncclParamMNNVLUUID
    - ncclNvmlDeviceGetHandleByPciBusId
    - ncclParamMNNVLCliqueId
    - ncclCuMemEnable
    - getPidHash
    - SYSCHECK
    - CUCHECK
    - INFO
    - cudaGetDeviceProperties
    - ncclNvmlDeviceGetPlatformInfo
    - ROUNDUP
    - int64ToBusId
    - NCCLCHECK
    - ncclTopoCheckCrossNicSupport
    - ncclGpuGdrSupport
    - getHostHash
    - ncclNvmlDeviceGetGpuFabricInfoV
    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:763,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:764,1
    - Dst: initChannel
      Src: /src/nccl/src/init.cc:764,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - comm
    - channelId
    - rank
    - nranks
    - ringRanks
    argTypes:
    - struct ncclComm*
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 779
    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:793,1
    - Dst: ncclParamLl128BuffSize
      Src: /src/nccl/src/init.cc:793,1
    - Dst: ncclParamBuffSize
      Src: /src/nccl/src/init.cc:793,1
    - Dst: ncclParamP2pNetChunkSize
      Src: /src/nccl/src/init.cc:804,1
    - Dst: ncclParamP2pNvlChunkSize
      Src: /src/nccl/src/init.cc:806,1
    - Dst: ncclParamP2pPciChunkSize
      Src: /src/nccl/src/init.cc:808,1
    - Dst: min
      Src: /src/nccl/src/init.cc:816,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 823
    functionName: computeBuffSizes
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclParamLl128BuffSize
    - ncclParamP2pNetChunkSize
    - INFO
    - ncclParamP2pNvlChunkSize
    - ncclParamBuffSize
    - min
    - ncclParamP2pPciChunkSize
    - ncclParamLlBuffSize
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t computeBuffSizes(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 855
    functionName: initNvlDomainInfo
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - TRACE
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t initNvlDomainInfo(struct ncclComm* comm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamGroupSize
      Src: /src/nccl/src/init.cc:862,1
    - Dst: gcd
      Src: /src/nccl/src/init.cc:865,1
    - Dst: pow2Up
      Src: /src/nccl/src/init.cc:872,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:875,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:875,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:876,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:876,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:880,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:892,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:895,1
    - Dst: free
      Src: /src/nccl/src/init.cc:921,1
    - Dst: free
      Src: /src/nccl/src/init.cc:922,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:925,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 929
    functionName: ncclP2pSchedule
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - pow2Up
    - ncclCalloc
    - INFO
    - free
    - gcd
    - ncclParamGroupSize
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclP2pSchedule(struct ncclComm* comm)
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:997,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:999,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:999,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1000,1
    - Dst: fillInfo
      Src: /src/nccl/src/init.cc:1000,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1001,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/init.cc:1001,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/init.cc:1002,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1007,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1020,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1023,1
    - Dst: ncclGetUserP2pLevel
      Src: /src/nccl/src/init.cc:1023,1
    - Dst: ncclParamMNNVLEnable
      Src: /src/nccl/src/init.cc:1024,1
    - Dst: ncclParamMNNVLEnable
      Src: /src/nccl/src/init.cc:1024,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1025,1
    - Dst: ncclMnnvlCheck
      Src: /src/nccl/src/init.cc:1025,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1034,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1035,1
    - Dst: ncclParamSingleProcMemRegEnable
      Src: /src/nccl/src/init.cc:1061,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:1063,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1066,1
    - Dst: assert
      Src: /src/nccl/src/init.cc:1073,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1082,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:1086,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1088,1
    - Dst: ncclTopoGetSystem
      Src: /src/nccl/src/init.cc:1088,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1092,1
    - Dst: ncclTopoGetSystem
      Src: /src/nccl/src/init.cc:1092,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1094,1
    - Dst: ncclTopoComputePaths
      Src: /src/nccl/src/init.cc:1094,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1096,1
    - Dst: ncclTopoTrimSystem
      Src: /src/nccl/src/init.cc:1096,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1098,1
    - Dst: ncclTopoComputePaths
      Src: /src/nccl/src/init.cc:1098,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1100,1
    - Dst: ncclTopoSearchInit
      Src: /src/nccl/src/init.cc:1100,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1102,1
    - Dst: ncclTopoComputeCommCPU
      Src: /src/nccl/src/init.cc:1102,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1104,1
    - Dst: ncclTopoPrint
      Src: /src/nccl/src/init.cc:1104,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1105,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1109,1
    - Dst: ncclTopoGetCpuAffinity
      Src: /src/nccl/src/init.cc:1109,1
    - Dst: ncclOsCpuCount
      Src: /src/nccl/src/init.cc:1110,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1111,1
    - Dst: ncclOsGetAffinity
      Src: /src/nccl/src/init.cc:1111,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1112,1
    - Dst: ncclOsSetAffinity
      Src: /src/nccl/src/init.cc:1112,1
    - Dst: collNetSupport
      Src: /src/nccl/src/init.cc:1116,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1120,1
    - Dst: ncclCheckMultiRank
      Src: /src/nccl/src/init.cc:1120,1
    - Dst: ncclParamNvlsEnable
      Src: /src/nccl/src/init.cc:1122,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1123,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1130,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1135,1
    - Dst: ncclNvlsInit
      Src: /src/nccl/src/init.cc:1135,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1138,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:1140,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1145,1
    - Dst: ncclTopoCompute
      Src: /src/nccl/src/init.cc:1145,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1146,1
    - Dst: ncclTopoPrintGraph
      Src: /src/nccl/src/init.cc:1146,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:1148,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1153,1
    - Dst: ncclTopoCompute
      Src: /src/nccl/src/init.cc:1153,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1154,1
    - Dst: ncclTopoPrintGraph
      Src: /src/nccl/src/init.cc:1154,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:1156,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:1163,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1170,1
    - Dst: ncclTopoCompute
      Src: /src/nccl/src/init.cc:1170,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1171,1
    - Dst: ncclTopoPrintGraph
      Src: /src/nccl/src/init.cc:1171,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1172,1
    - Dst: ncclTopoCompute
      Src: /src/nccl/src/init.cc:1172,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1173,1
    - Dst: ncclTopoPrintGraph
      Src: /src/nccl/src/init.cc:1173,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:1176,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1182,1
    - Dst: ncclTopoCompute
      Src: /src/nccl/src/init.cc:1182,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1183,1
    - Dst: ncclTopoPrintGraph
      Src: /src/nccl/src/init.cc:1183,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1185,1
    - Dst: ncclParamAllocP2pNetLLBuffers
      Src: /src/nccl/src/init.cc:1188,1
    - Dst: ncclParamGraphDumpFileRank
      Src: /src/nccl/src/init.cc:1190,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1192,1
    - Dst: ncclTopoDumpGraphs
      Src: /src/nccl/src/init.cc:1192,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1197,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1201,1
    - Dst: ncclTopoComputeP2pChannelsPerPeer
      Src: /src/nccl/src/init.cc:1201,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1205,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1207,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1207,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1210,1
    - Dst: struct ncclComm*::ncclNet::devices
      Src: /src/nccl/src/init.cc:1210,1
    - Dst: collNetSupport
      Src: /src/nccl/src/init.cc:1212,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1213,1
    - Dst: collNetDevices
      Src: /src/nccl/src/init.cc:1213,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1215,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1216,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1234,1
    - Dst: ncclTopoCheckNicFused
      Src: /src/nccl/src/init.cc:1234,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1238,1
    - Dst: ncclTopoGetMinNetBw
      Src: /src/nccl/src/init.cc:1238,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1240,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1241,1
    - Dst: ncclTopoPreset
      Src: /src/nccl/src/init.cc:1241,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1243,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/init.cc:1243,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1246,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1246,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1247,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1247,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1248,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1248,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1272,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1273,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1274,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1275,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1281,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1282,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1289,1
    - Dst: ncclParamIgnoreNetMismatch
      Src: /src/nccl/src/init.cc:1293,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1294,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1297,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1308,1
    - Dst: ncclParamIgnoreCollNetMismatch
      Src: /src/nccl/src/init.cc:1312,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1313,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1316,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1330,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1333,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1338,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1338,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1339,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1339,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1348,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1348,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1349,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1350,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1363,1
    - Dst: initNvlDomainInfo
      Src: /src/nccl/src/init.cc:1363,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:1365,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1368,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1375,1
    - Dst: ncclParamMNNVLCrossClique
      Src: /src/nccl/src/init.cc:1380,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1383,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1389,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1389,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1394,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1395,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1396,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1397,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1398,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1399,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1400,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1402,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1403,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1404,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1405,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1411,1
    - Dst: ncclNvlsTuning
      Src: /src/nccl/src/init.cc:1411,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1414,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:1418,1
    - Dst: ncclParamCollNetNodeThreshold
      Src: /src/nccl/src/init.cc:1423,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1425,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1429,1
    - Dst: ncclTopoPathAllNVLink
      Src: /src/nccl/src/init.cc:1429,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1432,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1432,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1433,1
    - Dst: ncclTopoPostset
      Src: /src/nccl/src/init.cc:1433,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1435,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:1437,1
    - Dst: snprintf
      Src: /src/nccl/src/init.cc:1443,1
    - Dst: strlen
      Src: /src/nccl/src/init.cc:1443,1
    - Dst: strlen
      Src: /src/nccl/src/init.cc:1443,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1445,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1448,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1450,1
    - Dst: computeBuffSizes
      Src: /src/nccl/src/init.cc:1450,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1451,1
    - Dst: ncclTopoComputeP2pChannels
      Src: /src/nccl/src/init.cc:1451,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:1461,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1463,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1463,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1471,1
    - Dst: ncclProfilerPluginInit
      Src: /src/nccl/src/init.cc:1471,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1473,1
    - Dst: ncclTransportCheckP2pType
      Src: /src/nccl/src/init.cc:1473,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/init.cc:1477,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1479,1
    - Dst: ncclProxyCreate
      Src: /src/nccl/src/init.cc:1479,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1481,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1481,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1483,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/init.cc:1485,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/init.cc:1486,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1487,1
    - Dst: ncclP2pSchedule
      Src: /src/nccl/src/init.cc:1487,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/init.cc:1493,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/init.cc:1495,1
    - Dst: ncclParamRuntimeConnect
      Src: /src/nccl/src/init.cc:1501,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1504,1
    - Dst: setupChannel
      Src: /src/nccl/src/init.cc:1504,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1507,1
    - Dst: ncclNvlsSetup
      Src: /src/nccl/src/init.cc:1507,1
    - Dst: ncclCollNetSetup
      Src: /src/nccl/src/init.cc:1509,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1512,1
    - Dst: setupChannel
      Src: /src/nccl/src/init.cc:1512,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1514,1
    - Dst: ncclTransportRingConnect
      Src: /src/nccl/src/init.cc:1514,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1517,1
    - Dst: ncclTransportTreeConnect
      Src: /src/nccl/src/init.cc:1517,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1520,1
    - Dst: ncclTransportPatConnect
      Src: /src/nccl/src/init.cc:1520,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1523,1
    - Dst: ncclNvlsSetup
      Src: /src/nccl/src/init.cc:1523,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1524,1
    - Dst: ncclNvlsBufferSetup
      Src: /src/nccl/src/init.cc:1524,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1527,1
    - Dst: ncclNvlsTreeConnect
      Src: /src/nccl/src/init.cc:1527,1
    - Dst: ncclCollNetSetup
      Src: /src/nccl/src/init.cc:1531,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1532,1
    - Dst: ncclCollNetChainBufferSetup
      Src: /src/nccl/src/init.cc:1532,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1534,1
    - Dst: ncclCollNetDirectBufferSetup
      Src: /src/nccl/src/init.cc:1534,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1539,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/init.cc:1539,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1540,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/init.cc:1540,1
    - Dst: ncclPxnDisable
      Src: /src/nccl/src/init.cc:1543,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1545,1
    - Dst: ncclTopoGetPxnRanks
      Src: /src/nccl/src/init.cc:1545,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1547,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/init.cc:1547,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1548,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/init.cc:1548,1
    - Dst: ncclParamNvbPreconnect
      Src: /src/nccl/src/init.cc:1552,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1555,1
    - Dst: ncclTopoGetNvbGpus
      Src: /src/nccl/src/init.cc:1555,1
    - Dst: ncclP2pChannelBaseForRound
      Src: /src/nccl/src/init.cc:1561,1
    - Dst: ncclP2pChannelBaseForRound
      Src: /src/nccl/src/init.cc:1562,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/init.cc:1565,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/init.cc:1569,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1576,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/init.cc:1576,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:1580,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1583,1
    - Dst: ncclTopoInitTunerConstants
      Src: /src/nccl/src/init.cc:1583,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1584,1
    - Dst: ncclTunerPluginLoad
      Src: /src/nccl/src/init.cc:1584,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1586,1
    - Dst: struct ncclComm*::tuner::init
      Src: /src/nccl/src/init.cc:1586,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1588,1
    - Dst: ncclTopoTuneModel
      Src: /src/nccl/src/init.cc:1588,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1590,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:1593,1
    - Dst: strcasecmp
      Src: /src/nccl/src/init.cc:1595,1
    - Dst: COMPILER_ATOMIC_EXCHANGE
      Src: /src/nccl/src/init.cc:1602,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1604,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1608,1
    - Dst: ncclTopoPathAllDirectNVLink
      Src: /src/nccl/src/init.cc:1608,1
    - Dst: ncclDevrIsOneLsaTeam
      Src: /src/nccl/src/init.cc:1614,1
    - Dst: ncclParamWinEnable
      Src: /src/nccl/src/init.cc:1615,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/init.cc:1615,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1618,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/init.cc:1619,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1627,1
    - Dst: devCommSetup
      Src: /src/nccl/src/init.cc:1627,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1629,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1631,1
    - Dst: bootstrapIntraNodeBarrier
      Src: /src/nccl/src/init.cc:1631,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:1635,1
    - Dst: ncclOsCpuCount
      Src: /src/nccl/src/init.cc:1638,1
    - Dst: ncclOsSetAffinity
      Src: /src/nccl/src/init.cc:1638,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/init.cc:1642,1
    - Dst: ncclProxyShmUnlink
      Src: /src/nccl/src/init.cc:1642,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1643,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1644,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1645,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1646,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1647,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1648,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1649,1
    CyclomaticComplexity: 136
    EdgeCount: 136
    ICount: 492
    argCount: 3
    argNames:
    - comm
    - parent
    - timers
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    - uint64_t[]
    assertStmts:
    - condition: '(intraProcRank==0 ? comm==comm0 : true)'
      pos:
        line_end: 1072
        line_start: 1072
        source_file: /src/nccl/src/init.cc
    constantsTouched: []
    func_position:
      end: 1653
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 1653
    functionName: initTransportsRank
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclTopoComputeCommCPU
    - ncclTopoDumpGraphs
    - ncclTopoSearchInit
    - ncclTransportPatConnect
    - ncclCalloc
    - collNetDevices
    - bootstrapIntraNodeBarrier
    - ncclOsSetAffinity
    - ncclTopoCheckNicFused
    - INFO
    - clockNano
    - ncclTopoComputeP2pChannels
    - min
    - ncclParamGraphDumpFileRank
    - ncclAtomicRefCountIncrement
    - initNvlDomainInfo
    - ncclProxyCallBlocking
    - ncclTopoPrint
    - ncclParamIgnoreNetMismatch
    - snprintf
    - ncclMnnvlCheck
    - struct ncclComm*::ncclNet::devices
    - ncclParamCollNetNodeThreshold
    - ncclNvlsBufferSetup
    - memcpy
    - ncclTransportP2pSetup
    - assert
    - ncclNvlsTuning
    - ncclNvlsSetup
    - NCCLCHECKGOTO
    - TRACE
    - setupChannel
    - ncclPxnDisable
    - ncclTopoPostset
    - ncclTopoComputeP2pChannelsPerPeer
    - ncclCollNetChainBufferSetup
    - ncclTopoPathAllNVLink
    - ncclNvlsTreeConnect
    - ncclParamIgnoreCollNetMismatch
    - ncclCollNetSetup
    - ncclCheckMultiRank
    - ncclP2pSchedule
    - computeBuffSizes
    - ncclTransportTreeConnect
    - devCommSetup
    - ncclGetUserP2pLevel
    - ncclP2pChannelBaseForRound
    - ncclProfilerPluginInit
    - ncclTopoInitTunerConstants
    - fillInfo
    - ncclParamMNNVLCrossClique
    - ncclTransportCheckP2pType
    - ncclCuMemEnable
    - ncclParamRuntimeConnect
    - ncclParamAllocP2pNetLLBuffers
    - free
    - ncclParamNvbPreconnect
    - ncclP2pChannelForPart
    - ncclIntruQueueConstruct
    - ncclTransportRingConnect
    - ncclTopoGetSystem
    - ncclTopoTuneModel
    - NCCLCHECK
    - struct ncclComm*::tuner::init
    - ncclTopoCompute
    - ncclTopoGetPxnRanks
    - ncclParamNvlsEnable
    - ncclProxyConnect
    - ncclParamWinEnable
    - ncclOsGetAffinity
    - ncclNvlsInit
    - ncclTopoGetCpuAffinity
    - strcasecmp
    - ncclTunerPluginLoad
    - ncclMemoryStackAlloc
    - WARN
    - ncclTopoPathAllDirectNVLink
    - ncclGetEnv
    - ncclProxyShmUnlink
    - strlen
    - ncclTopoComputePaths
    - ncclTopoTrimSystem
    - ncclDevrIsOneLsaTeam
    - ncclTopoPreset
    - std::max
    - COMPILER_ATOMIC_EXCHANGE
    - memset
    - ncclTopoGetNvbGpus
    - ncclOsCpuCount
    - ncclParamMNNVLEnable
    - ncclTopoGetMinNetBw
    - ncclTopoPrintGraph
    - COMPILER_ATOMIC_STORE
    - ncclProxyCreate
    - ncclCollNetDirectBufferSetup
    - bootstrapAllGather
    - collNetSupport
    - ncclParamSingleProcMemRegEnable
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t initTransportsRank(struct ncclComm* comm, struct ncclComm*
      parent, uint64_t timers[TIMERS_INIT_COUNT])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _job
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1696
    functionName: ncclCommFinalizeAsyncJobFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclCommFinalizeAsyncJobFree(void* _job)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1710,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1710,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1715,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/init.cc:1715,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:1720,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1741,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: 1745
      start: 1705
    functionDepth: 1
    functionLinenumber: 1705
    functionLinenumberEnd: 1745
    functionName: commGetSplitInfo
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - bootstrapAllGather
    - free
    - memset
    - NCCLCHECKGOTO
    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: 1760
      start: 1747
    functionDepth: 0
    functionLinenumber: 1747
    functionLinenumberEnd: 1760
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1776,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:1777,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:1777,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:1778,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/init.cc:1778,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:1779,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/init.cc:1779,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:1780,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/init.cc:1780,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1783,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1784,1
    - Dst: ncclInitKernelsForDevice
      Src: /src/nccl/src/init.cc:1784,1
    - Dst: ncclParamSetStackSize
      Src: /src/nccl/src/init.cc:1787,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:1788,1
    - Dst: CUDACHECKIGNORE
      Src: /src/nccl/src/init.cc:1789,1
    - Dst: cudaDeviceSetLimit
      Src: /src/nccl/src/init.cc:1789,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1791,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1795,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1795,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1797,1
    - Dst: getParentRanks
      Src: /src/nccl/src/init.cc:1797,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1799,1
    - Dst: commGetSplitInfo
      Src: /src/nccl/src/init.cc:1799,1
    - Dst: eatHash
      Src: /src/nccl/src/init.cc:1805,1
    - Dst: eatHash
      Src: /src/nccl/src/init.cc:1806,1
    - Dst: eatHash
      Src: /src/nccl/src/init.cc:1807,1
    - Dst: digestHash
      Src: /src/nccl/src/init.cc:1808,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1809,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1810,1
    - Dst: commAlloc
      Src: /src/nccl/src/init.cc:1810,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1811,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1813,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1815,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1816,1
    - Dst: bootstrapSplit
      Src: /src/nccl/src/init.cc:1816,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1817,1
    - Dst: hashCombine
      Src: /src/nccl/src/init.cc:1824,1
    - Dst: hashCombine
      Src: /src/nccl/src/init.cc:1825,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1826,1
    - Dst: getHash
      Src: /src/nccl/src/init.cc:1830,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1832,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1833,1
    - Dst: commAlloc
      Src: /src/nccl/src/init.cc:1833,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1834,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1837,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1839,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1840,1
    - Dst: bootstrapInit
      Src: /src/nccl/src/init.cc:1840,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1841,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1845,1
    - Dst: initTransportsRank
      Src: /src/nccl/src/init.cc:1845,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1849,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/init.cc:1854,1
    - Dst: static_cast<uint32_t*>
      Src: /src/nccl/src/init.cc:1854,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/init.cc:1856,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/init.cc:1858,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1860,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/init.cc:1864,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1865,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1871,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/init.cc:1881,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1883,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 86
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1762
    functionDepth: 4
    functionLinenumber: 1762
    functionLinenumberEnd: 1888
    functionName: ncclCommInitRankFunc
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - eatHash
    - getHash
    - commGetSplitInfo
    - bootstrapInit
    - NCCLCHECKGOTO
    - TRACE
    - ncclCalloc
    - TRACE_CALL
    - digestHash
    - free
    - ncclInitKernelsForDevice
    - getParentRanks
    - commAlloc
    - hashCombine
    - INFO
    - clockNano
    - bootstrapSplit
    - CUDACHECKGOTO
    - static_cast<uint32_t*>
    - ncclParamSetStackSize
    - NCCLCHECK
    - CUDACHECKIGNORE
    - COMPILER_ATOMIC_STORE
    - cudaDeviceGetAttribute
    - cudaSetDevice
    - initTransportsRank
    - cudaDeviceSetLimit
    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: 1896
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1896
    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: 51
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamCommBlocking
      Src: /src/nccl/src/init.cc:1917,1
    - Dst: ncclParamCGAClusterSize
      Src: /src/nccl/src/init.cc:1921,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1924,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1927,1
    - Dst: ncclParamMinCTAs
      Src: /src/nccl/src/init.cc:1931,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1934,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1937,1
    - Dst: ncclParamMaxCTAs
      Src: /src/nccl/src/init.cc:1942,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1945,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1948,1
    - Dst: ncclParamNChannelsPerNetPeer
      Src: /src/nccl/src/init.cc:1954,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1957,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1960,1
    - Dst: ncclParamNvlinkUtilCentricSchedEnable
      Src: /src/nccl/src/init.cc:1965,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1968,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1971,1
    - Dst: ncclParamGraphMixingSupport
      Src: /src/nccl/src/init.cc:1976,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1979,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1982,1
    - Dst: ncclParamNumRmaCtx
      Src: /src/nccl/src/init.cc:1988,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1991,1
    - Dst: ncclParamMaxP2pPeers
      Src: /src/nccl/src/init.cc:1996,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1999,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2002,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:2007,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2012,1
    - Dst: strlen
      Src: /src/nccl/src/init.cc:2013,1
    - Dst: malloc
      Src: /src/nccl/src/init.cc:2014,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:2015,1
    - Dst: ncclParamCommSplitShareResources
      Src: /src/nccl/src/init.cc:2020,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2023,1
    - Dst: ncclParamCommShrinkShareResources
      Src: /src/nccl/src/init.cc:2026,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2029,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:2035,1
    - Dst: strtol
      Src: /src/nccl/src/init.cc:2037,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2040,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2042,1
    - Dst: std::call_once
      Src: /src/nccl/src/init.cc:2047,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2050,1
    - Dst: ncclParamNvlsChannels
      Src: /src/nccl/src/init.cc:2054,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2057,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2063,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2068,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2073,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2078,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2083,1
    - Dst: ctaPolicyIsValid
      Src: /src/nccl/src/init.cc:2087,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2088,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2093,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2100,1
    - Dst: ncclParamCheckPointers
      Src: /src/nccl/src/init.cc:2107,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:2111,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2113,1
    - Dst: strcasecmp
      Src: /src/nccl/src/init.cc:2114,1
    - Dst: strcasecmp
      Src: /src/nccl/src/init.cc:2116,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 167
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 1897
    functionDepth: 1
    functionLinenumber: 1897
    functionLinenumberEnd: 2121
    functionName: envConfigOverride
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclParamMaxCTAs
    - ctaPolicyIsValid
    - memcpy
    - ncclParamNvlinkUtilCentricSchedEnable
    - ncclParamGraphMixingSupport
    - strcasecmp
    - ncclParamCommShrinkShareResources
    - WARN
    - strtol
    - ncclGetEnv
    - ncclParamMaxP2pPeers
    - ncclParamCheckPointers
    - strlen
    - ncclParamCommSplitShareResources
    - std::call_once
    - INFO
    - ncclParamNChannelsPerNetPeer
    - ncclParamCGAClusterSize
    - malloc
    - ncclParamNumRmaCtx
    - ncclParamCommBlocking
    - ncclParamMinCTAs
    - ncclParamNvlsChannels
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t envConfigOverride(ncclComm_t comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:2124,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2125,1
    - Dst: envConfigOverride
      Src: /src/nccl/src/init.cc:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - childComm
    - parnet
    argTypes:
    - ncclComm_t
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2123
    functionDepth: 2
    functionLinenumber: 2123
    functionLinenumberEnd: 2127
    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: 24
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:2140,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:2142,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2144,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/init.cc:2150,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/init.cc:2154,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/init.cc:2161,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/init.cc:2165,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/init.cc:2171,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/init.cc:2176,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/init.cc:2181,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2188,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2194,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2204,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2210,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2216,1
    - Dst: ctaPolicyIsValid
      Src: /src/nccl/src/init.cc:2222,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2223,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2230,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2236,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2242,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2248,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2254,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2260,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2266,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2272,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2273,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2274,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2275,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2276,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2277,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2278,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2279,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2280,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2281,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2282,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2283,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2284,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2286,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2287,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2288,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:2289,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2309,1
    - Dst: envConfigOverride
      Src: /src/nccl/src/init.cc:2309,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 165
    argCount: 2
    argNames:
    - comm
    - config
    argTypes:
    - ncclComm_t
    - ncclConfig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2129
    functionDepth: 2
    functionLinenumber: 2129
    functionLinenumberEnd: 2315
    functionName: parseCommConfig
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ctaPolicyIsValid
    - NCCL_CONFIG_DEFAULT
    - memcpy
    - NCCL_VERSION
    - NCCLCHECKGOTO
    - envConfigOverride
    - WARN
    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:2319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _job
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2317
    functionDepth: 0
    functionLinenumber: 2317
    functionLinenumberEnd: 2321
    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:2325,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2334,1
    - Dst: ncclInit
      Src: /src/nccl/src/init.cc:2334,1
    - Dst: std::call_once
      Src: /src/nccl/src/init.cc:2338,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:2341,1
    - Dst: cudaFree
      Src: /src/nccl/src/init.cc:2341,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2343,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2343,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2344,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2344,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2346,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2351,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2351,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2352,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2352,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2353,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/init.cc:2353,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2354,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2354,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2357,1
    - Dst: parseCommConfig
      Src: /src/nccl/src/init.cc:2357,1
    - Dst: NEW_NOTHROW_GOTO
      Src: /src/nccl/src/init.cc:2362,1
    - Dst: snprintf
      Src: /src/nccl/src/init.cc:2368,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2373,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2373,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:2374,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:2376,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2378,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2380,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2384,1
    - Dst: bootstrapCreateRoot
      Src: /src/nccl/src/init.cc:2384,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2387,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:2387,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2390,1
    - Dst: ncclCommInitJobFree
      Src: /src/nccl/src/init.cc:2392,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2394,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/init.cc:2395,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2396,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2397,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: 2401
      start: 2323
    functionDepth: 3
    functionLinenumber: 2323
    functionLinenumberEnd: 2401
    functionName: ncclCommInitRankDev
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - NEW_NOTHROW_GOTO
    - memcpy
    - NCCLCHECKGOTO
    - WARN
    - ncclGetEnv
    - ncclCalloc
    - free
    - std::call_once
    - ncclCudaHostCalloc
    - PtrCheck
    - INFO
    - ncclInit
    - CUDACHECKGOTO
    - parseCommConfig
    - cudaFree
    - ncclCommInitJobFree
    - ncclCudaHostFree
    - bootstrapCreateRoot
    - ncclGroupErrCheck
    - ncclAsyncLaunch
    - 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: NCCLCHECK
      Src: /src/nccl/src/init.cc:2405,1
    - Dst: ncclInitEnv
      Src: /src/nccl/src/init.cc:2405,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/init.cc:2408,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:2412,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:2412,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2414,1
    - Dst: ncclCommInitRankDev
      Src: /src/nccl/src/init.cc:2414,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2416,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - newcomm
    - nranks
    - commId
    - myrank
    argTypes:
    - ncclComm_t*
    - int
    - ncclUniqueId
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2404
    functionDepth: 4
    functionLinenumber: 2404
    functionLinenumberEnd: 2420
    functionName: ncclCommInitRank
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - cudaGetDevice
    - ncclInitEnv
    - ncclCudaLibraryInit
    - ncclCommInitRankDev
    - NVTX3_RANGE_ADD_PAYLOAD
    - NVTX3_PAYLOAD
    - CUDACHECK
    - NCCLCHECK
    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:2430,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/init.cc:2433,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:2435,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:2435,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2436,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2436,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2438,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:2443,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/src/init.cc:2443,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2445,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2445,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2449,1
    - Dst: ncclParamMultiRankGpuEnable
      Src: /src/nccl/src/init.cc:2455,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2462,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2467,1
    - Dst: ncclGetUniqueId
      Src: /src/nccl/src/init.cc:2467,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2468,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2468,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:2472,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:2472,1
    - Dst: ncclCommInitRankDev
      Src: /src/nccl/src/init.cc:2473,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2475,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2475,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2477,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2478,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:2481,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2482,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 3
    argNames:
    - comms
    - ndev
    - devlist
    argTypes:
    - ncclComm_t*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2423
    functionDepth: 4
    functionLinenumber: 2423
    functionLinenumberEnd: 2486
    functionName: ncclCommInitAll
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclParamMultiRankGpuEnable
    - ncclGroupStartInternal
    - NCCLCHECKGOTO
    - CUDACHECK
    - WARN
    - ncclGroupEndInternal
    - ncclCalloc
    - free
    - NVTX3_RANGE
    - PtrCheck
    - ncclCudaLibraryInit
    - ncclGetUniqueId
    - NVTX3_PAYLOAD
    - NVTX3_RANGE_ADD_PAYLOAD
    - CUDACHECKGOTO
    - cudaGetDeviceCount
    - cudaGetDevice
    - ncclCommInitRankDev
    - cudaSetDevice
    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:2490,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/init.cc:2494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - nextState
    argTypes:
    - ncclComm_t
    - ncclResult_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2488
    functionDepth: 1
    functionLinenumber: 2488
    functionLinenumberEnd: 2496
    functionName: ncclCommSetAsyncError
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_STORE
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommSetAsyncError(ncclComm_t comm, ncclResult_t nextState)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2505,1
    - Dst: ncclInitEnv
      Src: /src/nccl/src/init.cc:2505,1
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:2506,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2508,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2508,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/init.cc:2510,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:2511,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:2511,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2517,1
    - Dst: ncclCommInitRankDev
      Src: /src/nccl/src/init.cc:2517,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2520,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2521,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2521,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/init.cc:2524,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2526,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2527,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/init.cc:2531,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - newcomm
    - nranks
    - commId
    - myrank
    - config
    argTypes:
    - ncclComm_t*
    - int
    - ncclUniqueId
    - int
    - ncclConfig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2499
    functionDepth: 4
    functionLinenumber: 2499
    functionLinenumberEnd: 2533
    functionName: ncclCommInitRankConfig
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCommSetAsyncError
    - cudaGetDevice
    - ncclInitEnv
    - ncclCommGetAsyncError
    - ncclCudaLibraryInit
    - ncclCommInitRankDev
    - ncclGroupStartInternal
    - NVTX3_RANGE
    - NVTX3_RANGE_ADD_PAYLOAD
    - ncclGroupErrCheck
    - NCCLCHECKGOTO
    - NVTX3_PAYLOAD
    - CUDACHECK
    - ncclGroupEndInternal
    - NCCLCHECK
    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: NCCLCHECK
      Src: /src/nccl/src/init.cc:2537,1
    - Dst: ncclInitEnv
      Src: /src/nccl/src/init.cc:2537,1
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:2538,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2544,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2544,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/init.cc:2546,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:2547,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:2547,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2553,1
    - Dst: ncclCommInitRankDev
      Src: /src/nccl/src/init.cc:2553,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2556,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2557,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2557,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/init.cc:2560,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2562,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2563,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/init.cc:2567,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - newcomm
    - nranks
    - myrank
    - nId
    - commId
    - config
    argTypes:
    - ncclComm_t*
    - int
    - int
    - int
    - ncclUniqueId*
    - ncclConfig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2536
    functionDepth: 4
    functionLinenumber: 2536
    functionLinenumberEnd: 2569
    functionName: ncclCommInitRankScalable
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCommSetAsyncError
    - cudaGetDevice
    - ncclInitEnv
    - ncclCommGetAsyncError
    - ncclCudaLibraryInit
    - ncclCommInitRankDev
    - ncclGroupStartInternal
    - NVTX3_RANGE
    - NVTX3_RANGE_ADD_PAYLOAD
    - ncclGroupErrCheck
    - NCCLCHECKGOTO
    - NVTX3_PAYLOAD
    - CUDACHECK
    - ncclGroupEndInternal
    - NCCLCHECK
    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:2576,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:2576,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:2578,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/init.cc:2581,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2582,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/init.cc:2584,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2585,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2588,1
    - Dst: ncclCommPollEventCallbacks
      Src: /src/nccl/src/init.cc:2588,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2589,1
    - Dst: ncclCommPollCallbacks
      Src: /src/nccl/src/init.cc:2589,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2592,1
    - Dst: ncclCommPollCallbacks
      Src: /src/nccl/src/init.cc:2592,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/init.cc:2594,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/init.cc:2595,1
    - Dst: struct ncclCommCallback*::fn
      Src: /src/nccl/src/init.cc:2596,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2597,1
    - Dst: ncclProxyStop
      Src: /src/nccl/src/init.cc:2602,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2603,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2571
    functionDepth: 1
    functionLinenumber: 2571
    functionLinenumberEnd: 2610
    functionName: commDestroySync
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclStrongStreamSynchronize
    - ncclCommPollEventCallbacks
    - ncclCommPollCallbacks
    - ncclIntruQueueEmpty
    - cudaSetDevice
    - NCCLCHECKGOTO
    - ncclIntruQueueDequeue
    - CUDACHECKGOTO
    - WARN
    - ncclProxyStop
    - 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:2613,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:2613,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2615,1
    - Dst: ncclComm_t::tuner::finalize
      Src: /src/nccl/src/init.cc:2615,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2616,1
    - Dst: ncclTunerPluginUnload
      Src: /src/nccl/src/init.cc:2616,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2618,1
    - Dst: commFree
      Src: /src/nccl/src/init.cc:2618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2612
    functionDepth: 3
    functionLinenumber: 2612
    functionLinenumberEnd: 2620
    functionName: commCleanup
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclTunerPluginUnload
    - commFree
    - cudaSetDevice
    - CUDACHECK
    - ncclComm_t::tuner::finalize
    - 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:2624,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2629,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2629,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2633,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2633,1
    - Dst: NEW_NOTHROW_GOTO
      Src: /src/nccl/src/init.cc:2643,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2645,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:2645,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2648,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2649,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2649,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2652,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/init.cc:2652,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2654,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2655,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/init.cc:2659,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2623
    functionDepth: 2
    functionLinenumber: 2623
    functionLinenumberEnd: 2661
    functionName: ncclCommFinalize
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCommSetAsyncError
    - NEW_NOTHROW_GOTO
    - ncclGroupStartInternal
    - NVTX3_RANGE
    - NVTX3_RANGE_ADD_PAYLOAD
    - ncclGroupErrCheck
    - NCCLCHECKGOTO
    - ncclCommEnsureReady
    - NVTX3_PAYLOAD
    - ncclCommGetAsyncError
    - ncclAsyncLaunch
    - ncclGroupEndInternal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommFinalize(ncclComm_t comm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/init.cc:2675,1
    - Dst: COMPILER_ATOMIC_ADD_FETCH
      Src: /src/nccl/src/init.cc:2676,1
    - Dst: commDestroySync
      Src: /src/nccl/src/init.cc:2692,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2693,1
    - Dst: commCleanup
      Src: /src/nccl/src/init.cc:2704,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2707,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts:
    - condition: (intracomm0 != NULL && finalizeRankCnt != NULL)
      pos:
        line_end: 2674
        line_start: 2674
        source_file: /src/nccl/src/init.cc
    constantsTouched: []
    func_position:
      end: 2714
      start: 2663
    functionDepth: 4
    functionLinenumber: 2663
    functionLinenumberEnd: 2714
    functionName: commReclaim
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - assert
    - COMPILER_ATOMIC_ADD_FETCH
    - commDestroySync
    - commCleanup
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t commReclaim(struct ncclAsyncJob* job_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/init.cc:2727,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2728,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:2730,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2731,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2731,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2734,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2740,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2740,1
    - Dst: NEW_NOTHROW_GOTO
      Src: /src/nccl/src/init.cc:2741,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2743,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:2743,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2746,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2747,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2747,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2751
      start: 2717
    functionDepth: 2
    functionLinenumber: 2717
    functionLinenumberEnd: 2751
    functionName: ncclCommDestroy
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - TRACE
    - NEW_NOTHROW_GOTO
    - ncclGroupStartInternal
    - ncclGroupErrCheck
    - NCCLCHECKGOTO
    - NVTX3_PAYLOAD
    - ncclCommEnsureReady
    - ncclAsyncLaunch
    - WARN
    - ncclGroupEndInternal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommDestroy(ncclComm_t comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/nccl/src/init.cc:2755,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/init.cc:2757,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/init.cc:2758,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/init.cc:2760,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/init.cc:2761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - comm
    - value
    argTypes:
    - ncclComm_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2753
    functionDepth: 0
    functionLinenumber: 2753
    functionLinenumberEnd: 2763
    functionName: setCommAbortFlags
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - COMPILER_ATOMIC_STORE
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t setCommAbortFlags(ncclComm_t comm, int value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2775,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2775,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2776,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:2778,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:2778,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2779,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/init.cc:2779,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2780,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/init.cc:2780,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2781,1
    - Dst: ncclCommPollEventCallbacks
      Src: /src/nccl/src/init.cc:2781,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2782,1
    - Dst: ncclCommPollCallbacks
      Src: /src/nccl/src/init.cc:2782,1
    - Dst: ncclProxyStop
      Src: /src/nccl/src/init.cc:2785,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2786,1
    - Dst: ncclComm_t::proxyState::thread::joinable
      Src: /src/nccl/src/init.cc:2788,1
    - Dst: ncclComm_t::proxyState::thread::join
      Src: /src/nccl/src/init.cc:2789,1
    - Dst: ncclComm_t::proxyState::threadUDS::joinable
      Src: /src/nccl/src/init.cc:2790,1
    - Dst: ncclComm_t::proxyState::threadUDS::join
      Src: /src/nccl/src/init.cc:2792,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2796,1
    - Dst: setCommAbortFlags
      Src: /src/nccl/src/init.cc:2796,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/init.cc:2798,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2799,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2771
    functionDepth: 2
    functionLinenumber: 2771
    functionLinenumberEnd: 2801
    functionName: commRevokeAsync
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCommSetAsyncError
    - ncclStrongStreamSynchronize
    - PtrCheck
    - INFO
    - ncclCommPollEventCallbacks
    - ncclCommPollCallbacks
    - ncclComm_t::proxyState::threadUDS::join
    - setCommAbortFlags
    - ncclComm_t::proxyState::thread::join
    - ncclComm_t::proxyState::threadUDS::joinable
    - cudaSetDevice
    - NCCLCHECKGOTO
    - ncclComm_t::proxyState::thread::joinable
    - CUDACHECKGOTO
    - WARN
    - ncclProxyStop
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t commRevokeAsync(struct ncclAsyncJob* job_)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:2804,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2821,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2824,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2824,1
    - Dst: setCommAbortFlags
      Src: /src/nccl/src/init.cc:2825,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2827,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2834,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2835,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:2836,1
    - Dst: NEW_NOTHROW_GOTO
      Src: /src/nccl/src/init.cc:2838,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2840,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:2840,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2843,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2844,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2844,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2847,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/init.cc:2847,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2849,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2850,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2852,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/init.cc:2855,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - comm
    - revokeFlags
    argTypes:
    - ncclComm_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2803
    functionDepth: 2
    functionLinenumber: 2803
    functionLinenumberEnd: 2857
    functionName: ncclCommRevoke
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCommSetAsyncError
    - TRACE
    - INFO
    - ncclCommGetAsyncError
    - setCommAbortFlags
    - NEW_NOTHROW_GOTO
    - ncclGroupStartInternal
    - NVTX3_RANGE
    - ncclGroupErrCheck
    - NCCLCHECKGOTO
    - ncclCommEnsureReady
    - NVTX3_PAYLOAD
    - NVTX3_RANGE_ADD_PAYLOAD
    - ncclAsyncLaunch
    - ncclGroupEndInternal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommRevoke(ncclComm_t comm, int revokeFlags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:2861,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2867,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2870,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2870,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2872,1
    - Dst: setCommAbortFlags
      Src: /src/nccl/src/init.cc:2872,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2876,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2883,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2884,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:2886,1
    - Dst: NEW_NOTHROW_GOTO
      Src: /src/nccl/src/init.cc:2888,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2890,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:2890,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2893,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2894,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2860
    functionDepth: 2
    functionLinenumber: 2860
    functionLinenumberEnd: 2898
    functionName: ncclCommAbort
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - INFO
    - setCommAbortFlags
    - NEW_NOTHROW_GOTO
    - ncclGroupStartInternal
    - NVTX3_RANGE
    - ncclGroupErrCheck
    - NCCLCHECKGOTO
    - ncclCommEnsureReady
    - NVTX3_PAYLOAD
    - NVTX3_RANGE_ADD_PAYLOAD
    - ncclAsyncLaunch
    - ncclGroupEndInternal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommAbort(ncclComm_t comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/init.cc:2902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - job
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2900
    functionDepth: 0
    functionLinenumber: 2900
    functionLinenumberEnd: 2904
    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:2914,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:2914,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2915,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:2915,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2916,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2916,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2918,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2918,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2919,1
    - Dst: qsort
      Src: /src/nccl/src/init.cc:2921,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2923,1
    - Dst: bsearch
      Src: /src/nccl/src/init.cc:2923,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2925,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2925,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:2926,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:2926,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2931,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2933,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2933,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/init.cc:2945,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2947,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2947,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2948,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/init.cc:2948,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2949,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2949,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2956,1
    - Dst: copyCommConfig
      Src: /src/nccl/src/init.cc:2956,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2958,1
    - Dst: parseCommConfig
      Src: /src/nccl/src/init.cc:2958,1
    - Dst: NEW_NOTHROW_GOTO
      Src: /src/nccl/src/init.cc:2965,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2974,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2974,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:2975,1
    - Dst: snprintf
      Src: /src/nccl/src/init.cc:2982,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2983,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:2983,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:2986,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2991,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/init.cc:2992,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2993,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2995,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    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: 2999
      start: 2907
    functionDepth: 3
    functionLinenumber: 2907
    functionLinenumberEnd: 2999
    functionName: ncclCommInitChildComm
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - copyCommConfig
    - NEW_NOTHROW_GOTO
    - memcpy
    - NCCLCHECKGOTO
    - CUDACHECK
    - CommCheck
    - ncclCalloc
    - free
    - ncclCommEnsureReady
    - ncclCudaHostCalloc
    - PtrCheck
    - qsort
    - INFO
    - ncclAtomicRefCountIncrement
    - bsearch
    - CUDACHECKGOTO
    - parseCommConfig
    - cudaGetDevice
    - ncclCudaHostFree
    - cudaSetDevice
    - ncclAsyncLaunch
    - 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:3003,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3005,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:3005,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3008,1
    - Dst: setCommAbortFlags
      Src: /src/nccl/src/init.cc:3008,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3009,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/init.cc:3009,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3010,1
    - Dst: setCommAbortFlags
      Src: /src/nccl/src/init.cc:3010,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3012,1
    - Dst: ncclCommInitChildComm
      Src: /src/nccl/src/init.cc:3012,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:3015,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3016,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:3016,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:3018,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:3018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    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: 3021
      start: 3002
    functionDepth: 4
    functionLinenumber: 3002
    functionLinenumberEnd: 3021
    functionName: ncclCommShrink
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclStrongStreamSynchronize
    - setCommAbortFlags
    - ncclGroupStartInternal
    - NVTX3_RANGE
    - NVTX3_RANGE_ADD_PAYLOAD
    - ncclGroupErrCheck
    - NCCLCHECKGOTO
    - NVTX3_PAYLOAD
    - ncclCommInitChildComm
    - ncclGroupEndInternal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommShrink(ncclComm_t comm, int* excludeRanksList,
      int excludeRanksCount, ncclComm_t *newcomm, ncclConfig_t* config, int shrinkFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3025,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:3025,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3026,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:3026,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3027,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:3027,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3030,1
    - Dst: bootstrapGetUniqueId
      Src: /src/nccl/src/init.cc:3030,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3033,1
    - Dst: bcastGrowHandle
      Src: /src/nccl/src/init.cc:3033,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:3035,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:3036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - comm
    - uniqueId
    argTypes:
    - ncclComm_t
    - ncclUniqueId*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3024
    functionDepth: 2
    functionLinenumber: 3024
    functionLinenumberEnd: 3038
    functionName: ncclCommGetUniqueId
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - bcastGrowHandle
    - PtrCheck
    - bootstrapGetUniqueId
    - memcpy
    - memset
    - ncclCommEnsureReady
    - CommCheck
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommGetUniqueId(ncclComm_t comm, ncclUniqueId* uniqueId)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:3042,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:3046,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:3050,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3062,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:3062,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3065,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:3065,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3066,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:3066,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:3068,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3078,1
    - Dst: bcastGrowHandle
      Src: /src/nccl/src/init.cc:3078,1
    - Dst: hashCombine
      Src: /src/nccl/src/init.cc:3080,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:3081,1
    - Dst: hashCombine
      Src: /src/nccl/src/init.cc:3082,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:3091,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:3096,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:3101,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3107,1
    - Dst: ncclInitEnv
      Src: /src/nccl/src/init.cc:3107,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/init.cc:3108,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3109,1
    - Dst: ncclInit
      Src: /src/nccl/src/init.cc:3109,1
    - Dst: std::call_once
      Src: /src/nccl/src/init.cc:3112,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:3114,1
    - Dst: cudaFree
      Src: /src/nccl/src/init.cc:3114,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:3117,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3121,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:3121,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3125,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:3125,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3126,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/init.cc:3126,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3127,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:3127,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3132,1
    - Dst: copyCommConfig
      Src: /src/nccl/src/init.cc:3132,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3134,1
    - Dst: parseCommConfig
      Src: /src/nccl/src/init.cc:3134,1
    - Dst: NEW_NOTHROW_GOTO
      Src: /src/nccl/src/init.cc:3140,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3143,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:3143,1
    - Dst: snprintf
      Src: /src/nccl/src/init.cc:3145,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:3155,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:3155,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:3164,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3170,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:3170,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:3175,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:3176,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:3178,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3179,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:3179,1
    - Dst: free
      Src: /src/nccl/src/init.cc:3185,1
    - Dst: free
      Src: /src/nccl/src/init.cc:3194,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/init.cc:3195,1
    - Dst: free
      Src: /src/nccl/src/init.cc:3196,1
    - Dst: free
      Src: /src/nccl/src/init.cc:3198,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 130
    argCount: 6
    argNames:
    - comm
    - nRanks
    - uniqueId
    - rank
    - newcomm
    - config
    argTypes:
    - ncclComm_t
    - int
    - ncclUniqueId*
    - int
    - ncclComm_t*
    - ncclConfig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3202
      start: 3041
    functionDepth: 3
    functionLinenumber: 3041
    functionLinenumberEnd: 3202
    functionName: ncclCommGrow
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - copyCommConfig
    - NEW_NOTHROW_GOTO
    - memcpy
    - ncclGroupStartInternal
    - NCCLCHECKGOTO
    - CUDACHECK
    - CommCheck
    - WARN
    - ncclGroupEndInternal
    - bcastGrowHandle
    - ncclCalloc
    - free
    - NVTX3_RANGE
    - ncclCommEnsureReady
    - std::call_once
    - ncclCudaHostCalloc
    - hashCombine
    - INFO
    - ncclCudaLibraryInit
    - ncclInit
    - NVTX3_PAYLOAD
    - NVTX3_RANGE_ADD_PAYLOAD
    - CUDACHECKGOTO
    - cudaFree
    - parseCommConfig
    - NCCLCHECK
    - cudaGetDevice
    - ncclInitEnv
    - ncclCudaHostFree
    - ncclGroupErrCheck
    - ncclAsyncLaunch
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommGrow(ncclComm_t comm, int nRanks, const ncclUniqueId*
      uniqueId, int rank, ncclComm_t* newcomm, ncclConfig_t* config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:3206,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3209,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:3209,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:3210,1
    - Dst: ncclCommInitChildComm
      Src: /src/nccl/src/init.cc:3210,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:3213,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3214,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:3214,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:3217,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:3217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - comm
    - color
    - key
    - newcomm
    - config
    argTypes:
    - ncclComm_t
    - int
    - int
    - ncclComm_t*
    - ncclConfig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3220
      start: 3205
    functionDepth: 4
    functionLinenumber: 3205
    functionLinenumberEnd: 3220
    functionName: ncclCommSplit
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclGroupStartInternal
    - NVTX3_RANGE
    - NVTX3_RANGE_ADD_PAYLOAD
    - ncclGroupErrCheck
    - NCCLCHECKGOTO
    - NVTX3_PAYLOAD
    - ncclCommInitChildComm
    - ncclGroupEndInternal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommSplit(ncclComm_t comm, int color, int key, ncclComm_t
      *newcomm, ncclConfig_t *config)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - code
    argTypes:
    - ncclResult_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3236
      start: 3223
    functionDepth: 0
    functionLinenumber: 3223
    functionLinenumberEnd: 3236
    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: 3244
      start: 3242
    functionDepth: 0
    functionLinenumber: 3242
    functionLinenumberEnd: 3244
    functionName: ncclGetLastError
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclGetLastError(ncclComm_t comm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3248,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:3248,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3249,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:3249,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/init.cc:3251,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/init.cc:3252,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/init.cc:3258,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3262,1
    - Dst: ncclGinQueryLastError
      Src: /src/nccl/src/init.cc:3262,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:3264,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3272,1
    - Dst: ncclGroupJobComplete
      Src: /src/nccl/src/init.cc:3272,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - comm
    - asyncError
    argTypes:
    - ncclComm_t
    - ncclResult_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3276
      start: 3247
    functionDepth: 1
    functionLinenumber: 3247
    functionLinenumberEnd: 3276
    functionName: ncclCommGetAsyncError
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 5
    functionsReached:
    - PtrCheck
    - ncclGroupJobComplete
    - ncclGinQueryLastError
    - COMPILER_ATOMIC_LOAD
    - CommCheck
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommGetAsyncError(ncclComm_t comm, ncclResult_t *asyncError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3282,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:3282,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3283,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:3283,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3286,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:3286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - count
    argTypes:
    - ncclComm_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3290
      start: 3279
    functionDepth: 2
    functionLinenumber: 3279
    functionLinenumberEnd: 3290
    functionName: ncclCommCount
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - CommCheck
    - PtrCheck
    - ncclCommEnsureReady
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommCount(const ncclComm_t comm, int* count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3296,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:3296,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3297,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:3297,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3299,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:3299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - devid
    argTypes:
    - ncclComm_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3303
      start: 3293
    functionDepth: 2
    functionLinenumber: 3293
    functionLinenumberEnd: 3303
    functionName: ncclCommCuDevice
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - CommCheck
    - PtrCheck
    - ncclCommEnsureReady
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommCuDevice(const ncclComm_t comm, int* devid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3309,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:3309,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3310,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:3310,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:3312,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:3312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - rank
    argTypes:
    - ncclComm_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3306
    functionDepth: 2
    functionLinenumber: 3306
    functionLinenumberEnd: 3316
    functionName: ncclCommUserRank
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - CommCheck
    - PtrCheck
    - ncclCommEnsureReady
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommUserRank(const ncclComm_t comm, int* rank)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamMemManagerDisable
      Src: /src/nccl/src/mem_manager.cc:32,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:36,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/mem_manager.cc:36,1
    - Dst: std::mutex::mutex
      Src: /src/nccl/src/mem_manager.cc:38,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/mem_manager.cc:53,1
    - Dst: INFO
      Src: /src/nccl/src/mem_manager.cc:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 59
    functionName: ncclMemManagerInit
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 1
    functionsReached:
    - ncclParamMemManagerDisable
    - ncclCalloc
    - INFO
    - COMPILER_ATOMIC_STORE
    - std::mutex::mutex
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclMemManagerInit(struct ncclComm* comm)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamMemManagerDisable
      Src: /src/nccl/src/mem_manager.cc:63,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/mem_manager.cc:69,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/mem_manager.cc:75,1
    - Dst: INFO
      Src: /src/nccl/src/mem_manager.cc:79,1
    - Dst: INFO
      Src: /src/nccl/src/mem_manager.cc:85,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/mem_manager.cc:86,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/mem_manager.cc:94,1
    - Dst: close
      Src: /src/nccl/src/mem_manager.cc:102,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:109,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:113,1
    - Dst: ncclMemManager*::lock::~mutex
      Src: /src/nccl/src/mem_manager.cc:121,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:123,1
    - Dst: INFO
      Src: /src/nccl/src/mem_manager.cc:126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 128
    functionName: ncclMemManagerDestroy
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 1
    functionsReached:
    - ncclParamMemManagerDisable
    - INFO
    - ncclCudaHostFree
    - close
    - COMPILER_ATOMIC_STORE
    - ncclAtomicRefCountDecrement
    - free
    - COMPILER_ATOMIC_LOAD
    - ncclMemManager*::lock::~mutex
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclMemManagerDestroy(struct ncclComm* comm)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamMemManagerDisable
      Src: /src/nccl/src/mem_manager.cc:143,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/mem_manager.cc:145,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:146,1
    - Dst: COMPILER_ATOMIC_ADD_FETCH
      Src: /src/nccl/src/mem_manager.cc:153,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:154,1
    - Dst: COMPILER_ATOMIC_ADD_FETCH
      Src: /src/nccl/src/mem_manager.cc:157,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:158,1
    - Dst: malloc
      Src: /src/nccl/src/mem_manager.cc:165,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:167,1
    - Dst: memset
      Src: /src/nccl/src/mem_manager.cc:172,1
    - Dst: COMPILER_ATOMIC_ADD_FETCH
      Src: /src/nccl/src/mem_manager.cc:209,1
    - Dst: COMPILER_ATOMIC_ADD_FETCH
      Src: /src/nccl/src/mem_manager.cc:211,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:213,1
    - Dst: COMPILER_ATOMIC_ADD_FETCH
      Src: /src/nccl/src/mem_manager.cc:217,1
    - Dst: COMPILER_ATOMIC_ADD_FETCH
      Src: /src/nccl/src/mem_manager.cc:219,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:221,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 68
    argCount: 10
    argNames:
    - manager
    - ptr
    - size
    - handle
    - handleType
    - memType
    - isImportedFromPeer
    - ownerRank
    - ownerDev
    - ownerPtr
    argTypes:
    - struct ncclMemManager*
    - void*
    - size_t
    - CUmemGenericAllocationHandle
    - CUmemAllocationHandleType
    - ncclMemType_t
    - bool
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 226
    functionName: ncclMemTrackInternal
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclParamMemManagerDisable
    - COMPILER_ATOMIC_LOAD
    - COMPILER_ATOMIC_ADD_FETCH
    - memset
    - malloc
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclMemTrackInternal(\n  struct ncclMemManager* manager,\n
      \ void* ptr,\n  size_t size,\n  CUmemGenericAllocationHandle handle,\n  CUmemAllocationHandleType
      handleType,\n  ncclMemType_t memType,\n  bool isImportedFromPeer,\n  int ownerRank,\n
      \ int ownerDev,\n  void* ownerPtr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemTrackInternal
      Src: /src/nccl/src/mem_manager.cc:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - manager
    - ptr
    - size
    - handle
    - handleType
    - memType
    argTypes:
    - struct ncclMemManager*
    - void*
    - size_t
    - CUmemGenericAllocationHandle
    - CUmemAllocationHandleType
    - ncclMemType_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: ncclMemTrack
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 0
    functionsReached:
    - ncclMemTrackInternal
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclMemTrack(\n  struct ncclMemManager* manager,\n  void*
      ptr,\n  size_t size,\n  CUmemGenericAllocationHandle handle,\n  CUmemAllocationHandleType
      handleType,\n  ncclMemType_t memType\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemTrackInternal
      Src: /src/nccl/src/mem_manager.cc:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - manager
    - ptr
    - size
    - handle
    - handleType
    - memType
    - ownerRank
    - ownerDev
    - ownerPtr
    argTypes:
    - struct ncclMemManager*
    - void*
    - size_t
    - CUmemGenericAllocationHandle
    - CUmemAllocationHandleType
    - ncclMemType_t
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 255
    functionName: ncclMemTrackImportFromPeer
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 0
    functionsReached:
    - ncclMemTrackInternal
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclMemTrackImportFromPeer(\n  struct ncclMemManager*
      manager,\n  void* ptr,\n  size_t size,\n  CUmemGenericAllocationHandle handle,\n
      \ CUmemAllocationHandleType handleType,\n  ncclMemType_t memType,\n  int ownerRank,\n
      \ int ownerDev,\n  void* ownerPtr\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamMemManagerDisable
      Src: /src/nccl/src/mem_manager.cc:259,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/mem_manager.cc:263,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:264,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/mem_manager.cc:293,1
    - Dst: close
      Src: /src/nccl/src/mem_manager.cc:301,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:308,1
    - Dst: INFO
      Src: /src/nccl/src/mem_manager.cc:319,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:322,1
    - Dst: COMPILER_ATOMIC_SUB_FETCH
      Src: /src/nccl/src/mem_manager.cc:335,1
    - Dst: COMPILER_ATOMIC_SUB_FETCH
      Src: /src/nccl/src/mem_manager.cc:337,1
    - Dst: COMPILER_ATOMIC_SUB_FETCH
      Src: /src/nccl/src/mem_manager.cc:341,1
    - Dst: COMPILER_ATOMIC_SUB_FETCH
      Src: /src/nccl/src/mem_manager.cc:343,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:347,1
    - Dst: COMPILER_ATOMIC_SUB_FETCH
      Src: /src/nccl/src/mem_manager.cc:351,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:352,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 3
    argNames:
    - manager
    - ptr
    - size
    argTypes:
    - struct ncclMemManager*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 356
    functionName: ncclMemUntrack
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclParamMemManagerDisable
    - INFO
    - close
    - ncclCudaHostFree
    - free
    - COMPILER_ATOMIC_LOAD
    - COMPILER_ATOMIC_SUB_FETCH
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclMemUntrack(struct ncclMemManager* manager, void* ptr,
      size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamMemManagerDisable
      Src: /src/nccl/src/mem_manager.cc:363,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/mem_manager.cc:365,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:366,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:378,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:385,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:392,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/mem_manager.cc:400,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:404,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:413,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - manager
    - ptr
    - peerRank
    argTypes:
    - struct ncclMemManager*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 416
    functionName: ncclDynMemMarkExportToPeer
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclParamMemManagerDisable
    - COMPILER_ATOMIC_LOAD
    - ncclRealloc
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDynMemMarkExportToPeer(struct ncclMemManager* manager,
      void* ptr, int peerRank)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamMemManagerDisable
      Src: /src/nccl/src/mem_manager.cc:426,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:428,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:436,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/mem_manager.cc:448,1
    - Dst: cudaDeviceSynchronize
      Src: /src/nccl/src/mem_manager.cc:448,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/mem_manager.cc:449,1
    - Dst: bootstrapBarrier
      Src: /src/nccl/src/mem_manager.cc:449,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:455,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/mem_manager.cc:459,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/mem_manager.cc:459,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/mem_manager.cc:464,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/mem_manager.cc:464,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/mem_manager.cc:492,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/mem_manager.cc:492,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:494,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/mem_manager.cc:500,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/mem_manager.cc:502,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:504,1
    - Dst: cudaGetErrorString
      Src: /src/nccl/src/mem_manager.cc:504,1
    - Dst: close
      Src: /src/nccl/src/mem_manager.cc:519,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/mem_manager.cc:525,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/mem_manager.cc:525,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/mem_manager.cc:528,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/mem_manager.cc:528,1
    - Dst: INFO
      Src: /src/nccl/src/mem_manager.cc:539,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 546
    functionName: ncclCommMemSuspend
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclParamMemManagerDisable
    - INFO
    - ncclCudaHostFree
    - close
    - CUCHECKIGNORE
    - cudaMemcpy
    - cuMemUnmap
    - cudaGetErrorString
    - NCCLCHECKGOTO
    - cuMemRelease
    - CUDACHECK
    - bootstrapBarrier
    - WARN
    - ncclCudaHostCalloc
    - cudaDeviceSynchronize
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommMemSuspend(struct ncclComm* comm)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamMemManagerDisable
      Src: /src/nccl/src/mem_manager.cc:557,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:559,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:567,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/mem_manager.cc:606,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/mem_manager.cc:606,1
    - Dst: ncclCuMemMapAndSetAccess
      Src: /src/nccl/src/mem_manager.cc:609,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/mem_manager.cc:611,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/mem_manager.cc:611,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/mem_manager.cc:627,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/mem_manager.cc:627,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:628,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/mem_manager.cc:639,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:641,1
    - Dst: cudaGetErrorString
      Src: /src/nccl/src/mem_manager.cc:641,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/mem_manager.cc:646,1
    - Dst: CUPFN
      Src: /src/nccl/src/mem_manager.cc:653,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/mem_manager.cc:653,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:656,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/mem_manager.cc:657,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/mem_manager.cc:657,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/mem_manager.cc:658,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/mem_manager.cc:658,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:670,1
    - Dst: INFO
      Src: /src/nccl/src/mem_manager.cc:678,1
    - Dst: bootstrapBarrier
      Src: /src/nccl/src/mem_manager.cc:680,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:682,1
    - Dst: malloc
      Src: /src/nccl/src/mem_manager.cc:707,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:709,1
    - Dst: memset
      Src: /src/nccl/src/mem_manager.cc:712,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/mem_manager.cc:716,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:718,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:719,1
    - Dst: malloc
      Src: /src/nccl/src/mem_manager.cc:724,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:726,1
    - Dst: malloc
      Src: /src/nccl/src/mem_manager.cc:739,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:741,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:742,1
    - Dst: memcpy
      Src: /src/nccl/src/mem_manager.cc:759,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:761,1
    - Dst: memcpy
      Src: /src/nccl/src/mem_manager.cc:765,1
    - Dst: malloc
      Src: /src/nccl/src/mem_manager.cc:774,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:776,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:777,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:778,1
    - Dst: memcpy
      Src: /src/nccl/src/mem_manager.cc:784,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/mem_manager.cc:791,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:795,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:796,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:797,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:798,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:799,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/mem_manager.cc:807,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:811,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:812,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:813,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:814,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:815,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:822,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:847,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:853,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:863,1
    - Dst: ncclProxyClientGetFdBlocking
      Src: /src/nccl/src/mem_manager.cc:874,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:877,1
    - Dst: CUPFN
      Src: /src/nccl/src/mem_manager.cc:883,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/mem_manager.cc:883,1
    - Dst: close
      Src: /src/nccl/src/mem_manager.cc:885,1
    - Dst: CUPFN
      Src: /src/nccl/src/mem_manager.cc:888,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/mem_manager.cc:888,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:891,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:897,1
    - Dst: ncclCuMemMapAndSetAccess
      Src: /src/nccl/src/mem_manager.cc:904,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/mem_manager.cc:906,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/mem_manager.cc:906,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:908,1
    - Dst: TRACE
      Src: /src/nccl/src/mem_manager.cc:918,1
    - Dst: INFO
      Src: /src/nccl/src/mem_manager.cc:928,1
    - Dst: bootstrapBarrier
      Src: /src/nccl/src/mem_manager.cc:930,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:933,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:934,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:935,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:936,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:942,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:943,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:944,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:949,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:950,1
    - Dst: free
      Src: /src/nccl/src/mem_manager.cc:951,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 272
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 953
    functionName: ncclCommMemResume
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 0
    functionsReached:
    - CUPFN
    - ncclParamMemManagerDisable
    - memcpy
    - cuMemSetAccess
    - cuMemRelease
    - cuMemUnmap
    - bootstrapBarrier
    - WARN
    - TRACE
    - CUCHECKGOTO
    - free
    - cudaGetErrorString
    - cuMemExportToShareableHandle
    - ncclCuMemMapAndSetAccess
    - INFO
    - close
    - cudaMemcpy
    - bootstrapRecv
    - memset
    - malloc
    - cuMemImportFromShareableHandle
    - ncclCudaHostFree
    - CUCHECKIGNORE
    - cuMemCreate
    - bootstrapSend
    - ncclProxyClientGetFdBlocking
    - bootstrapAllGather
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommMemResume(struct ncclComm* comm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:963,1
    - Dst: CommCheck
      Src: /src/nccl/src/mem_manager.cc:963,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:964,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/mem_manager.cc:964,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/mem_manager.cc:968,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/mem_manager.cc:968,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:969,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/mem_manager.cc:969,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/mem_manager.cc:970,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/mem_manager.cc:970,1
    - Dst: ncclParamMemManagerDisable
      Src: /src/nccl/src/mem_manager.cc:973,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:975,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:981,1
    - Dst: INFO
      Src: /src/nccl/src/mem_manager.cc:986,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/mem_manager.cc:988,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/mem_manager.cc:988,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/mem_manager.cc:990,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/mem_manager.cc:991,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/mem_manager.cc:995,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:996,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/mem_manager.cc:996,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:997,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/mem_manager.cc:997,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/mem_manager.cc:998,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/mem_manager.cc:998,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - comm
    - flags
    argTypes:
    - ncclComm_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 960
    functionDepth: 2
    functionLinenumber: 960
    functionLinenumberEnd: 1002
    functionName: ncclCommSuspend
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclParamMemManagerDisable
    - INFO
    - cudaGetDevice
    - ncclCalloc
    - ncclCommGetAsyncError
    - ncclGroupStartInternal
    - ncclGroupErrCheck
    - cudaSetDevice
    - NCCLCHECKGOTO
    - ncclCommEnsureReady
    - CUDACHECK
    - CUDACHECKGOTO
    - CommCheck
    - WARN
    - ncclGroupEndInternal
    - ncclGroupCommJoin
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommSuspend(ncclComm_t comm, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:1008,1
    - Dst: CommCheck
      Src: /src/nccl/src/mem_manager.cc:1008,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:1009,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/mem_manager.cc:1009,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/mem_manager.cc:1013,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/mem_manager.cc:1013,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:1014,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/mem_manager.cc:1014,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/mem_manager.cc:1015,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/mem_manager.cc:1015,1
    - Dst: ncclParamMemManagerDisable
      Src: /src/nccl/src/mem_manager.cc:1017,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:1019,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:1025,1
    - Dst: INFO
      Src: /src/nccl/src/mem_manager.cc:1030,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/mem_manager.cc:1032,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/mem_manager.cc:1032,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/mem_manager.cc:1034,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/mem_manager.cc:1035,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/mem_manager.cc:1038,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:1039,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/mem_manager.cc:1039,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:1040,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/mem_manager.cc:1040,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/mem_manager.cc:1041,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/mem_manager.cc:1041,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1045
    functionName: ncclCommResume
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclParamMemManagerDisable
    - INFO
    - cudaGetDevice
    - ncclCalloc
    - ncclCommGetAsyncError
    - ncclGroupStartInternal
    - ncclGroupErrCheck
    - cudaSetDevice
    - NCCLCHECKGOTO
    - ncclCommEnsureReady
    - CUDACHECK
    - CUDACHECKGOTO
    - CommCheck
    - WARN
    - ncclGroupEndInternal
    - ncclGroupCommJoin
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommResume(ncclComm_t comm)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:1051,1
    - Dst: CommCheck
      Src: /src/nccl/src/mem_manager.cc:1051,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mem_manager.cc:1052,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/mem_manager.cc:1052,1
    - Dst: ncclParamMemManagerDisable
      Src: /src/nccl/src/mem_manager.cc:1055,1
    - Dst: WARN
      Src: /src/nccl/src/mem_manager.cc:1056,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/mem_manager.cc:1068,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/mem_manager.cc:1069,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/mem_manager.cc:1070,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/mem_manager.cc:1073,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/mem_manager.cc:1076,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/mem_manager.cc:1077,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 3
    argNames:
    - comm
    - stat
    - value
    argTypes:
    - ncclComm_t
    - ncclCommMemStat_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1086
    functionName: ncclCommMemStats
    functionSourceFile: /src/nccl/src/mem_manager.cc
    functionUses: 0
    functionsReached:
    - ncclParamMemManagerDisable
    - COMPILER_ATOMIC_LOAD
    - ncclCommEnsureReady
    - CommCheck
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommMemStats(ncclComm_t comm, ncclCommMemStat_t stat,
      uint64_t* value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/nccl/src/group.cc:45,1
    - Dst: undo
      Src: /src/nccl/src/group.cc:46,1
    - Dst: destructor
      Src: /src/nccl/src/group.cc:47,1
    - Dst: WARN
      Src: /src/nccl/src/group.cc:65,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/group.cc:69,1
    - Dst: destructor
      Src: /src/nccl/src/group.cc:72,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - job
    - comm
    argTypes:
    - struct ncclAsyncJob*
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 77
    functionName: ncclAsyncLaunch
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 7
    functionsReached:
    - destructor
    - ncclIntruQueueEnqueue
    - func
    - WARN
    - 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:81,1
    - Dst: INFO
      Src: /src/nccl/src/group.cc:83,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/group.cc:85,1
    - Dst: static_cast<ncclGroupJobState_t>
      Src: /src/nccl/src/group.cc:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: ncclAsyncJobMain
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_STORE
    - INFO
    - struct ncclAsyncJob*::func
    - static_cast<ncclGroupJobState_t>
    linkageType: ''
    returnType: void
    signature: void * ncclAsyncJobMain(void* arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:91,1
    - Dst: ncclThreadJoin
      Src: /src/nccl/src/group.cc:91,1
    - Dst: WARN
      Src: /src/nccl/src/group.cc:93,1
    - Dst: struct ncclAsyncJob*::destructor
      Src: /src/nccl/src/group.cc:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: ncclAsyncJobComplete
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - struct ncclAsyncJob*::destructor
    - ncclThreadJoin
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclAsyncJobComplete(struct ncclAsyncJob* job)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:105,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/group.cc:105,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/group.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: ncclGroupStart
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclGroupStartInternal
    - TRACE_CALL
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupStart()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - 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: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: ncclGroupEnd
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - ncclGroupEndInternal
    - TRACE_CALL
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupEnd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:124,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/group.cc:124,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/group.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - simInfo
    argTypes:
    - ncclSimInfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: ncclGroupSimulateEnd
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - ncclGroupEndInternal
    - TRACE_CALL
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupSimulateEnd(ncclSimInfo_t* simInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/group.cc:145,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:145,1
    - Dst: ncclOsCpuCount
      Src: /src/nccl/src/group.cc:146,1
    - Dst: ncclOsSetAffinity
      Src: /src/nccl/src/group.cc:146,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:147,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/group.cc:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: ncclP2PPreconnectFunc
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclTransportP2pSetup
    - cudaSetDevice
    - CUDACHECK
    - ncclOsSetAffinity
    - ncclOsCpuCount
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclP2PPreconnectFunc(struct ncclAsyncJob* job_)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:156,1
    - Dst: ncclTransportRingConnect
      Src: /src/nccl/src/group.cc:156,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:160,1
    - Dst: ncclTransportTreeConnect
      Src: /src/nccl/src/group.cc:160,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:166,1
    - Dst: ncclNvlsBufferSetup
      Src: /src/nccl/src/group.cc:166,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:170,1
    - Dst: ncclNvlsTreeConnect
      Src: /src/nccl/src/group.cc:170,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:174,1
    - Dst: ncclCollNetChainBufferSetup
      Src: /src/nccl/src/group.cc:174,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:178,1
    - Dst: ncclCollNetDirectBufferSetup
      Src: /src/nccl/src/group.cc:178,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:182,1
    - Dst: ncclTransportPatConnect
      Src: /src/nccl/src/group.cc:182,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:188,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - comm
    - algoNeedConnect
    argTypes:
    - struct ncclComm*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 194
    functionName: ncclCollPreconnect
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclTransportTreeConnect
    - NCCLCHECK
    - ncclNvlsBufferSetup
    - ncclCollNetChainBufferSetup
    - ncclCollNetDirectBufferSetup
    - ncclTransportRingConnect
    - ncclTransportPatConnect
    - ncclNvlsTreeConnect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollPreconnect(struct ncclComm* comm, bool* algoNeedConnect)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/group.cc:201,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/group.cc:202,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:202,1
    - Dst: ncclOsCpuCount
      Src: /src/nccl/src/group.cc:203,1
    - Dst: ncclOsSetAffinity
      Src: /src/nccl/src/group.cc:203,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:204,1
    - Dst: ncclPrepareTasks
      Src: /src/nccl/src/group.cc:204,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:205,1
    - Dst: ncclCollPreconnect
      Src: /src/nccl/src/group.cc:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 207
    functionName: ncclPrepareTasksAndCollPreconnectFunc
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclCollPreconnect
    - ncclPrepareTasks
    - cudaSetDevice
    - memset
    - CUDACHECK
    - ncclOsSetAffinity
    - ncclOsCpuCount
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclPrepareTasksAndCollPreconnectFunc(struct ncclAsyncJob*
      job_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/group.cc:214,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:214,1
    - Dst: ncclOsCpuCount
      Src: /src/nccl/src/group.cc:215,1
    - Dst: ncclOsSetAffinity
      Src: /src/nccl/src/group.cc:215,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:216,1
    - Dst: ncclCollPreconnect
      Src: /src/nccl/src/group.cc:216,1
    - Dst: free
      Src: /src/nccl/src/group.cc:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 223
    functionName: ncclCollPreconnectFunc
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclCollPreconnect
    - free
    - NCCLCHECKGOTO
    - cudaSetDevice
    - CUDACHECK
    - ncclOsSetAffinity
    - ncclOsCpuCount
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollPreconnectFunc(struct ncclAsyncJob* job_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:239,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:240,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:241,1
    - Dst: ncclArgsGlobalCheck
      Src: /src/nccl/src/group.cc:241,1
    - Dst: free
      Src: /src/nccl/src/group.cc:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 249
    functionName: ncclCommGroupArgsGlobalCheck
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEmpty
    - free
    - NCCLCHECKGOTO
    - ncclIntruQueueDequeue
    - ncclArgsGlobalCheck
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommGroupArgsGlobalCheck(struct ncclAsyncJob* job_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:256,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:256,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:258,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:259,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:260,1
    - Dst: ncclDevrWindowRegisterInGroup
      Src: /src/nccl/src/group.cc:260,1
    - Dst: free
      Src: /src/nccl/src/group.cc:263,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:266,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:267,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:268,1
    - Dst: ncclDevrCommCreateInternal
      Src: /src/nccl/src/group.cc:268,1
    - Dst: freeDevCommRequirements
      Src: /src/nccl/src/group.cc:271,1
    - Dst: free
      Src: /src/nccl/src/group.cc:272,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:275,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:276,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:277,1
    - Dst: ncclCeInit
      Src: /src/nccl/src/group.cc:277,1
    - Dst: free
      Src: /src/nccl/src/group.cc:278,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:281,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:282,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:283,1
    - Dst: ncclRmaCeInit
      Src: /src/nccl/src/group.cc:283,1
    - Dst: free
      Src: /src/nccl/src/group.cc:284,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:287,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:288,1
    - Dst: free
      Src: /src/nccl/src/group.cc:290,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:291,1
    - Dst: ncclCommMemSuspend
      Src: /src/nccl/src/group.cc:291,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:294,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:295,1
    - Dst: free
      Src: /src/nccl/src/group.cc:297,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:298,1
    - Dst: ncclCommMemResume
      Src: /src/nccl/src/group.cc:298,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 251
    functionDepth: 7
    functionLinenumber: 251
    functionLinenumberEnd: 305
    functionName: ncclCommGroupRegisterSymmetric
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEmpty
    - freeDevCommRequirements
    - ncclRmaCeInit
    - ncclDevrCommCreateInternal
    - free
    - ncclCeInit
    - cudaSetDevice
    - NCCLCHECKGOTO
    - ncclIntruQueueDequeue
    - ncclDevrWindowRegisterInGroup
    - CUDACHECKGOTO
    - ncclCommMemResume
    - ncclCommMemSuspend
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommGroupRegisterSymmetric(struct ncclAsyncJob* job_)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/group.cc:319,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:320,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:320,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:321,1
    - Dst: ncclLaunchPrepare
      Src: /src/nccl/src/group.cc:321,1
    - Dst: ncclCommIntraBarrierIn
      Src: /src/nccl/src/group.cc:322,1
    - Dst: WARN
      Src: /src/nccl/src/group.cc:331,1
    - Dst: ncclCommIntraBarrierOut
      Src: /src/nccl/src/group.cc:343,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:352,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:352,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:353,1
    - Dst: ncclLaunchKernelBefore_NoUncapturedCuda
      Src: /src/nccl/src/group.cc:353,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:355,1
    - Dst: ncclLaunchCeColl
      Src: /src/nccl/src/group.cc:355,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:357,1
    - Dst: ncclLaunchRma
      Src: /src/nccl/src/group.cc:357,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:359,1
    - Dst: ncclLaunchKernel
      Src: /src/nccl/src/group.cc:359,1
    - Dst: ncclCommIntraBarrierIn
      Src: /src/nccl/src/group.cc:363,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:365,1
    - Dst: ncclLaunchKernelAfter_NoCuda
      Src: /src/nccl/src/group.cc:365,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:368,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:368,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:369,1
    - Dst: ncclLaunchFinish
      Src: /src/nccl/src/group.cc:369,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 379
    functionName: doLaunches
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclLaunchKernel
    - ncclLaunchFinish
    - ncclLaunchKernelBefore_NoUncapturedCuda
    - ncclLaunchKernelAfter_NoCuda
    - ncclLaunchCeColl
    - cudaSetDevice
    - ncclCudaGraphValid
    - NCCLCHECKGOTO
    - ncclCommIntraBarrierIn
    - ncclCommIntraBarrierOut
    - CUDACHECKGOTO
    - ncclLaunchRma
    - WARN
    - ncclLaunchPrepare
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t doLaunches(struct ncclComm* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/group.cc:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 388
    functionName: groupLocalResetJobState
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueConstruct
    linkageType: ''
    returnType: void
    signature: void groupLocalResetJobState()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclGroupCommLeave
      Src: /src/nccl/src/group.cc:398,1
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/group.cc:403,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:410,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:411,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:415,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:416,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/group.cc:417,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/group.cc:419,1
    - Dst: memset
      Src: /src/nccl/src/group.cc:428,1
    - Dst: memset
      Src: /src/nccl/src/group.cc:431,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/group.cc:438,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:445,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:451,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:452,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:454,1
    - Dst: struct ncclAsyncJob*::undo
      Src: /src/nccl/src/group.cc:455,1
    - Dst: struct ncclAsyncJob*::destructor
      Src: /src/nccl/src/group.cc:456,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 3
    argNames:
    - groupCommHeadPtr
    - asyncJobsPtr
    - error
    argTypes:
    - struct ncclComm**
    - struct ncclIntruQueue<struct ncclAsyncJob, &ncclAsyncJob::next>*
    - ncclResult_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 460
    functionName: groupCleanup
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclCommSetAsyncError
    - ncclIntruQueueEmpty
    - ncclGroupCommLeave
    - struct ncclAsyncJob*::destructor
    - reinterpret_cast<struct ncclComm*>
    - ncclMemoryPoolFree
    - memset
    - ncclIntruQueueDequeue
    - ncclIntruQueueConstruct
    - struct ncclAsyncJob*::undo
    linkageType: ''
    returnType: void
    signature: void groupCleanup(struct ncclComm** groupCommHeadPtr, struct ncclIntruQueue<struct
      ncclAsyncJob, &ncclAsyncJob::next>* asyncJobsPtr, ncclResult_t error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:467,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/group.cc:468,1
    - Dst: ncclAsyncJobMain
      Src: /src/nccl/src/group.cc:471,1
    - Dst: STDTHREADCREATE
      Src: /src/nccl/src/group.cc:476,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/group.cc:482,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/group.cc:484,1
    - Dst: ncclThreadJoin
      Src: /src/nccl/src/group.cc:489,1
    - Dst: WARN
      Src: /src/nccl/src/group.cc:490,1
    - Dst: assert
      Src: /src/nccl/src/group.cc:500,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/group.cc:503,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/group.cc:504,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/group.cc:505,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/group.cc:507,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/group.cc:508,1
    - Dst: std::this_thread::sleep_for
      Src: /src/nccl/src/group.cc:515,1
    - Dst: std::chrono::microseconds
      Src: /src/nccl/src/group.cc:515,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - asyncJobsMain
    - groupAbortFlag
    argTypes:
    - struct ncclIntruQueue<struct ncclAsyncJob, &ncclAsyncJob::next>*
    - bool*
    assertStmts:
    - condition: (state == ncclGroupJobJoined)
      pos:
        line_end: 499
        line_start: 499
        source_file: /src/nccl/src/group.cc
    constantsTouched: []
    func_position:
      end: 525
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 525
    functionName: asyncJobLaunch
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclThreadJoin
    - ncclIntruQueueEmpty
    - std::this_thread::sleep_for
    - COMPILER_ATOMIC_STORE
    - std::chrono::microseconds
    - assert
    - ncclAsyncJobMain
    - COMPILER_ATOMIC_LOAD
    - ncclIntruQueueHead
    - WARN
    - STDTHREADCREATE
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t asyncJobLaunch(struct ncclIntruQueue<struct ncclAsyncJob,
      &ncclAsyncJob::next> *asyncJobsMain, volatile bool *groupAbortFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _job
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: ncclPrepareTasksAndCollPreconnectJobFree
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclPrepareTasksAndCollPreconnectJobFree(void* _job)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _job
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: ncclPreconnectJobFree
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclPreconnectJobFree(void* _job)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _job
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: ncclGroupSymmetricJobFree
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclGroupSymmetricJobFree(void* _job)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamSingleProcMemRegEnable
      Src: /src/nccl/src/group.cc:545,1
    - Dst: NEW_NOTHROW
      Src: /src/nccl/src/group.cc:547,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/group.cc:556,1
    - Dst: memset
      Src: /src/nccl/src/group.cc:560,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/group.cc:562,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:562,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:563,1
    - Dst: ncclPrepareTasks
      Src: /src/nccl/src/group.cc:563,1
    - Dst: NEW_NOTHROW
      Src: /src/nccl/src/group.cc:568,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/group.cc:576,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:578,1
    - Dst: memcpy
      Src: /src/nccl/src/group.cc:580,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/group.cc:581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - comm
    - simInfo
    - asyncCollJobs
    argTypes:
    - struct ncclComm*
    - ncclSimInfo_t*
    - struct ncclIntruQueue<struct ncclAsyncJob, &ncclAsyncJob::next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 585
    functionName: ncclPrepareTasksAndCollPreconnect
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclCalloc
    - NEW_NOTHROW
    - memcpy
    - ncclPrepareTasks
    - memset
    - cudaSetDevice
    - CUDACHECK
    - ncclParamSingleProcMemRegEnable
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclPrepareTasksAndCollPreconnect(struct ncclComm* comm,
      ncclSimInfo_t* simInfo, struct ncclIntruQueue<struct ncclAsyncJob, &ncclAsyncJob::next>*
      asyncCollJobs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: NEW_NOTHROW_GOTO
      Src: /src/nccl/src/group.cc:599,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/group.cc:607,1
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/group.cc:610,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:615,1
    - Dst: asyncJobLaunch
      Src: /src/nccl/src/group.cc:615,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/group.cc:623,1
    - Dst: NEW_NOTHROW_GOTO
      Src: /src/nccl/src/group.cc:628,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/group.cc:636,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:639,1
    - Dst: asyncJobLaunch
      Src: /src/nccl/src/group.cc:639,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:640,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:641,1
    - Dst: struct ncclAsyncJob*::destructor
      Src: /src/nccl/src/group.cc:642,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/group.cc:655,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/group.cc:656,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:663,1
    - Dst: ncclPrepareTasksAndCollPreconnect
      Src: /src/nccl/src/group.cc:663,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:667,1
    - Dst: asyncJobLaunch
      Src: /src/nccl/src/group.cc:667,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:668,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:669,1
    - Dst: struct ncclAsyncJob*::destructor
      Src: /src/nccl/src/group.cc:670,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:678,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:678,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:679,1
    - Dst: ncclTasksRegAndEnqueue
      Src: /src/nccl/src/group.cc:679,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:690,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/group.cc:690,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/group.cc:698,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:702,1
    - Dst: asyncJobLaunch
      Src: /src/nccl/src/group.cc:702,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:703,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:704,1
    - Dst: struct ncclAsyncJob*::destructor
      Src: /src/nccl/src/group.cc:705,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:712,1
    - Dst: doLaunches
      Src: /src/nccl/src/group.cc:712,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:715,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:716,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:718,1
    - Dst: struct ncclAsyncJob*::destructor
      Src: /src/nccl/src/group.cc:719,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:729,1
    - Dst: ncclCommPollCallbacks
      Src: /src/nccl/src/group.cc:729,1
    - Dst: ncclGroupCommLeave
      Src: /src/nccl/src/group.cc:734,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:736,1
    - Dst: groupCleanup
      Src: /src/nccl/src/group.cc:745,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 122
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 587
    functionDepth: 3
    functionLinenumber: 587
    functionLinenumberEnd: 747
    functionName: groupLaunch
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEmpty
    - NEW_NOTHROW_GOTO
    - NCCLCHECKGOTO
    - ncclIntruQueueEnqueue
    - ncclCommSetAsyncError
    - ncclCalloc
    - struct ncclAsyncJob*::destructor
    - reinterpret_cast<struct ncclComm*>
    - ncclIntruQueueDequeue
    - ncclIntruQueueConstruct
    - doLaunches
    - ncclCommPollCallbacks
    - asyncJobLaunch
    - groupCleanup
    - CUDACHECKGOTO
    - ncclPrepareTasksAndCollPreconnect
    - ncclTasksRegAndEnqueue
    - NCCLCHECK
    - ncclGroupCommLeave
    - cudaSetDevice
    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:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 749
    functionDepth: 4
    functionLinenumber: 749
    functionLinenumberEnd: 751
    functionName: groupLaunchNonBlocking
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - groupLaunch
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t groupLaunchNonBlocking(struct ncclAsyncJob *job_)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/group.cc:763,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:772,1
    - Dst: ncclProfilerRecordGroupApiEventState
      Src: /src/nccl/src/group.cc:772,1
    - Dst: memcpy
      Src: /src/nccl/src/group.cc:780,1
    - Dst: memcpy
      Src: /src/nccl/src/group.cc:782,1
    - Dst: WARN
      Src: /src/nccl/src/group.cc:784,1
    - Dst: NEW_NOTHROW_GOTO
      Src: /src/nccl/src/group.cc:798,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/group.cc:799,1
    - Dst: memcpy
      Src: /src/nccl/src/group.cc:802,1
    - Dst: ncclIntruQueueTransfer
      Src: /src/nccl/src/group.cc:807,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:809,1
    - Dst: assert
      Src: /src/nccl/src/group.cc:811,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:814,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/group.cc:815,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:817,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:817,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:830,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:830,1
    - Dst: STDTHREADCREATE_GOTO
      Src: /src/nccl/src/group.cc:842,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:848,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/group.cc:848,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:849,1
    - Dst: groupLaunch
      Src: /src/nccl/src/group.cc:849,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:850,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:850,1
    - Dst: memcpy
      Src: /src/nccl/src/group.cc:851,1
    - Dst: groupLocalResetJobState
      Src: /src/nccl/src/group.cc:859,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:863,1
    - Dst: ncclProfilerStopGroupApiEvent
      Src: /src/nccl/src/group.cc:863,1
    - Dst: groupCleanup
      Src: /src/nccl/src/group.cc:867,1
    - Dst: groupCleanup
      Src: /src/nccl/src/group.cc:870,1
    - Dst: groupLocalResetJobState
      Src: /src/nccl/src/group.cc:872,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 104
    argCount: 1
    argNames:
    - simInfo
    argTypes:
    - ncclSimInfo_t*
    assertStmts:
    - condition: (ncclGroupBlocking == 0 || ncclGroupBlocking == 1)
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/nccl/src/group.cc
    constantsTouched: []
    func_position:
      end: 874
      start: 753
    functionDepth: 4
    functionLinenumber: 753
    functionLinenumberEnd: 874
    functionName: ncclGroupEndInternal
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 16
    functionsReached:
    - ncclIntruQueueEmpty
    - NEW_NOTHROW_GOTO
    - memcpy
    - assert
    - ncclProfilerRecordGroupApiEventState
    - NCCLCHECKGOTO
    - WARN
    - ncclCommSetAsyncError
    - groupLaunch
    - ncclIntruQueueHead
    - ncclIntruQueueConstruct
    - ncclProfilerStopGroupApiEvent
    - groupCleanup
    - CUDACHECKGOTO
    - ncclIntruQueueTransfer
    - groupLocalResetJobState
    - NCCLCHECK
    - cudaGetDevice
    - STDTHREADCREATE_GOTO
    - cudaSetDevice
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupEndInternal(ncclSimInfo_t* simInfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_EXCHANGE
      Src: /src/nccl/src/group.cc:879,1
    - Dst: ncclAsyncJobComplete
      Src: /src/nccl/src/group.cc:880,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/group.cc:882,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - groupJob
    argTypes:
    - struct ncclGroupJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 887
    functionName: ncclGroupJobComplete
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 1
    functionsReached:
    - ncclAsyncJobComplete
    - COMPILER_ATOMIC_EXCHANGE
    - ncclAtomicRefCountDecrement
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupJobComplete(struct ncclGroupJob* groupJob)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_EXCHANGE
      Src: /src/nccl/src/group.cc:891,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/group.cc:892,1
    - Dst: ncclAsyncJobComplete
      Src: /src/nccl/src/group.cc:893,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/group.cc:895,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - groupJob
    argTypes:
    - struct ncclGroupJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 889
    functionDepth: 2
    functionLinenumber: 889
    functionLinenumberEnd: 900
    functionName: ncclGroupJobAbort
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 1
    functionsReached:
    - ncclAsyncJobComplete
    - COMPILER_ATOMIC_STORE
    - COMPILER_ATOMIC_EXCHANGE
    - ncclAtomicRefCountDecrement
    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: 45
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 45
    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:60,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    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:70,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:75,1
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:80,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:81,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:90,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: 92
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 92
    functionName: expectedProxyResponseStore
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - free
    - memcpy
    - WARN
    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:96,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:96,1
    - Dst: malloc
      Src: /src/nccl/src/proxy.cc:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - state
    - opId
    - respSize
    argTypes:
    - struct ncclProxyState*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 114
    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:127,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:129,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:130,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: 138
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 138
    functionName: expectedProxyResponseDequeue
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - free
    - memcpy
    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:150,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:151,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - state
    - opId
    argTypes:
    - struct ncclProxyState*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 159
    functionName: expectedProxyResponseRemove
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - free
    - WARN
    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: 170
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 170
    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:184,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:187,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:189,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:197,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - peer
    - op
    argTypes:
    - struct ncclProxyLocalPeer*
    - ncclProxyAsyncOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 202
    functionName: asyncProxyOpDequeue
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - free
    - WARN
    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:210,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - state
    - argsptr
    argTypes:
    - struct ncclProxyProgressState*
    - struct ncclProxyArgs**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 228
    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: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    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:253,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: 255
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 255
    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:258,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:276,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:278,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:281,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - op
    - poolIndex
    - opIndex
    argTypes:
    - struct ncclProxyArgs*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 283
    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:287,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:289,1
    - Dst: getOpIndex
      Src: /src/nccl/src/proxy.cc:289,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:291,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:293,1
    - Dst: printProxyOp
      Src: /src/nccl/src/proxy.cc:293,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:295,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:298,1
    - Dst: getOpIndex
      Src: /src/nccl/src/proxy.cc:298,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:300,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:302,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:303,1
    - Dst: printProxyOp
      Src: /src/nccl/src/proxy.cc:303,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:305,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:307,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:311,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:313,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:315,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:318,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:321,1
    - Dst: getOpIndex
      Src: /src/nccl/src/proxy.cc:321,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:323,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:325,1
    - Dst: printProxyOp
      Src: /src/nccl/src/proxy.cc:325,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:327,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:330,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:334,1
    - Dst: getOpIndex
      Src: /src/nccl/src/proxy.cc:334,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:336,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:349,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:350,1
    - Dst: printProxyOp
      Src: /src/nccl/src/proxy.cc:350,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:351,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct ncclProxyProgressState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 360
    functionName: dumpProxyState
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - printProxyOp
    - getOpIndex
    - printf
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t dumpProxyState(struct ncclProxyProgressState* state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:365,1
    - Dst: min
      Src: /src/nccl/src/proxy.cc:393,1
    - Dst: min
      Src: /src/nccl/src/proxy.cc:394,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:401,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:405,1
    - Dst: ncclProfilerStartProxyOpEvent
      Src: /src/nccl/src/proxy.cc:430,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 3
    argNames:
    - op
    - args
    - subIndex
    argTypes:
    - struct ncclProxyOp*
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 432
    functionName: ncclProxyOpToArgs
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclProfilerStartProxyOpEvent
    - WARN
    - min
    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:441,1
    - Dst: ncclProxyOpToArgs
      Src: /src/nccl/src/proxy.cc:441,1
    - Dst: DEBUG_PROXY_PRINT
      Src: /src/nccl/src/proxy.cc:442,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:442,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:445,1
    - Dst: allocateArgs
      Src: /src/nccl/src/proxy.cc:445,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:446,1
    - Dst: ncclProxyOpToArgs
      Src: /src/nccl/src/proxy.cc:446,1
    - Dst: DEBUG_PROXY_PRINT
      Src: /src/nccl/src/proxy.cc:448,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:448,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:448,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:453,1
    - Dst: allocateArgs
      Src: /src/nccl/src/proxy.cc:453,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:454,1
    - Dst: ncclProxyOpToArgs
      Src: /src/nccl/src/proxy.cc:454,1
    - Dst: DEBUG_PROXY_PRINT
      Src: /src/nccl/src/proxy.cc:457,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:457,1
    - Dst: DEBUG_PROXY_PRINT
      Src: /src/nccl/src/proxy.cc:464,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - state
    - op
    argTypes:
    - struct ncclProxyProgressState*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 469
    functionName: ProxyAppend
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECK
    - ncclProxyOpToArgs
    - allocateArgs
    - OP_INDEX
    - DEBUG_PROXY_PRINT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ProxyAppend(struct ncclProxyProgressState* state, struct
      ncclProxyOp* op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ncclProxyOpsPool*::cond::notify_one
      Src: /src/nccl/src/proxy.cc:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pool
    - nextOps
    - nextOpsEnd
    argTypes:
    - struct ncclProxyOpsPool*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 481
    functionName: ncclProxyPost
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyOpsPool*::cond::notify_one
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyPost(struct ncclProxyOpsPool* pool, int nextOps,
      int nextOpsEnd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:490,1
    - Dst: COMPILER_ATOMIC_EXCHANGE
      Src: /src/nccl/src/proxy.cc:500,1
    - Dst: std::this_thread::yield
      Src: /src/nccl/src/proxy.cc:501,1
    - Dst: COMPILER_PREFETCH
      Src: /src/nccl/src/proxy.cc:507,1
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:508,1
    - Dst: struct ncclProxyOp*::ringAlgo::incRefCount
      Src: /src/nccl/src/proxy.cc:509,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:534,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:541,1
    - Dst: ncclProxyPost
      Src: /src/nccl/src/proxy.cc:541,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:544,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 3
    argNames:
    - comm
    - proxyConn
    - proxyOp
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 546
    functionName: ncclLocalOpAppend
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - TIME_START
    - std::this_thread::yield
    - memcpy
    - COMPILER_ATOMIC_EXCHANGE
    - TIME_STOP
    - COMPILER_PREFETCH
    - ncclProxyPost
    - WARN
    - struct ncclProxyOp*::ringAlgo::incRefCount
    - 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: 550
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 550
    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:556,1
    - Dst: incWorkCounter
      Src: /src/nccl/src/proxy.cc:561,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:562,1
    - Dst: ncclLocalOpAppend
      Src: /src/nccl/src/proxy.cc:562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - comm
    - op
    - justInquire
    argTypes:
    - struct ncclComm*
    - struct ncclProxyOp*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 565
    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:573,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:582,1
    - Dst: ncclLocalOpAppend
      Src: /src/nccl/src/proxy.cc:582,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: 585
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 585
    functionName: SaveProxy
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclLocalOpAppend
    - WARN
    - 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: 38
    BranchProfiles: []
    Callsites:
    - Dst: NeedProxy
      Src: /src/nccl/src/proxy.cc:599,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:604,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:604,1
    - Dst: NeedProxy
      Src: /src/nccl/src/proxy.cc:606,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:611,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:611,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:619,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:619,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:626,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:626,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:632,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:632,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:633,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:633,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:636,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:636,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:637,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:637,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:640,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:640,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:641,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:641,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:644,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:644,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:645,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:645,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:646,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:646,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:647,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:647,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:648,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:648,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:649,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:649,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:659,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:659,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:659,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:660,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:660,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:660,1
    - Dst: PatRSAlgorithm::getNextOp
      Src: /src/nccl/src/proxy.cc:663,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:668,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:672,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:672,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:677,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:677,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:681,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:682,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:683,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:693,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:693,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:693,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:694,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:694,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:694,1
    - Dst: PatAGAlgorithm::getNextOp
      Src: /src/nccl/src/proxy.cc:697,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:702,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:706,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:706,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:711,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:711,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:715,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:716,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:717,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:722,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:722,1
    - Dst: ncclProfilerNeedsProxy
      Src: /src/nccl/src/proxy.cc:725,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:725,1
    - Dst: SaveProxyProfiler
      Src: /src/nccl/src/proxy.cc:725,1
    - Dst: incWorkCounter
      Src: /src/nccl/src/proxy.cc:726,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 140
    argCount: 3
    argNames:
    - comm
    - op
    - justInquire
    argTypes:
    - struct ncclComm*
    - struct ncclProxyOp*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 730
    functionName: ncclProxySaveOp
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - SaveProxyProfiler
    - incWorkCounter
    - PatAGAlgorithm::getNextOp
    - PatRSAlgorithm::getNextOp
    - NeedProxy
    - SaveProxy
    - log2Up
    - free
    - NCCLCHECKGOTO
    - ncclProfilerNeedsProxy
    - NCCLCHECK
    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:735,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:735,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:735,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:735,1
    - Dst: DEBUG_PROXY_PRINT
      Src: /src/nccl/src/proxy.cc:757,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:757,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:757,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:759,1
    - Dst: dumpProxyState
      Src: /src/nccl/src/proxy.cc:759,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: 762
      start: 732
    functionDepth: 3
    functionLinenumber: 732
    functionLinenumberEnd: 762
    functionName: removeOp
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - dumpProxyState
    - NCCLCHECK
    - OP_INDEX
    - DEBUG_PROXY_PRINT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t removeOp(struct ncclProxyProgressState* state, struct
      ncclProxyArgs** opPtr, struct ncclProxyArgs** prevOpPtr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:770,1
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:770,1
    - Dst: struct ncclProxyArgs*::progress
      Src: /src/nccl/src/proxy.cc:771,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:772,1
    - Dst: TIME_CANCEL
      Src: /src/nccl/src/proxy.cc:772,1
    - Dst: TIME_CANCEL
      Src: /src/nccl/src/proxy.cc:772,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:772,1
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:777,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:778,1
    - Dst: removeOp
      Src: /src/nccl/src/proxy.cc:778,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:779,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - proxyState
    - state
    - opStart
    - idle
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyProgressState*
    - struct ncclProxyArgs*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 764
    functionDepth: 4
    functionLinenumber: 764
    functionLinenumberEnd: 786
    functionName: progressOps
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - TIME_START
    - removeOp
    - TIME_STOP
    - struct ncclProxyArgs*::progress
    - TIME_CANCEL
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t progressOps(struct ncclProxyState* proxyState, struct
      ncclProxyProgressState* state, struct ncclProxyArgs* opStart, int* idle)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_lock::try_lock
      Src: /src/nccl/src/proxy.cc:802,1
    - Dst: std::unique_lock::lock
      Src: /src/nccl/src/proxy.cc:805,1
    - Dst: ncclProfilerStartProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:807,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:808,1
    - Dst: struct ncclProxyOpsPool*::cond::wait
      Src: /src/nccl/src/proxy.cc:809,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:810,1
    - Dst: ncclProfilerStopProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:811,1
    - Dst: ncclProfilerStartProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:819,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:820,1
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:821,1
    - Dst: ncclParamProxyAppendBatchSize
      Src: /src/nccl/src/proxy.cc:833,1
    - Dst: COMPILER_PREFETCH
      Src: /src/nccl/src/proxy.cc:837,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:838,1
    - Dst: ProxyAppend
      Src: /src/nccl/src/proxy.cc:838,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/proxy.cc:856,1
    - Dst: COMPILER_ATOMIC_COMPARE_EXCHANGE
      Src: /src/nccl/src/proxy.cc:863,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:865,1
    - Dst: ncclProfilerStopProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:866,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:867,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 2
    argNames:
    - proxyState
    - added
    argTypes:
    - struct ncclProxyState*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 790
    functionDepth: 3
    functionLinenumber: 790
    functionLinenumberEnd: 869
    functionName: ncclProxyGetPostedOps
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_COMPARE_EXCHANGE
    - TIME_START
    - struct ncclProxyOpsPool*::cond::wait
    - std::unique_lock::try_lock
    - std::unique_lock::lock
    - TIME_STOP
    - COMPILER_PREFETCH
    - ProxyAppend
    - COMPILER_ATOMIC_LOAD
    - ncclParamProxyAppendBatchSize
    - ncclProfilerRecordProxyCtrlEventState
    - ncclProfilerStartProxyCtrlEvent
    - ncclProfilerStopProxyCtrlEvent
    - 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:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 873
    functionDepth: 3
    functionLinenumber: 873
    functionLinenumberEnd: 875
    functionName: ncclDumpProxyState
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - dumpProxyState
    linkageType: ''
    returnType: void
    signature: void ncclDumpProxyState(int signal)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamCreateThreadContext
      Src: /src/nccl/src/proxy.cc:883,1
    - Dst: std::call_once
      Src: /src/nccl/src/proxy.cc:886,1
    - Dst: CUPFN
      Src: /src/nccl/src/proxy.cc:887,1
    - Dst: CUPFN
      Src: /src/nccl/src/proxy.cc:887,1
    - Dst: CUPFN
      Src: /src/nccl/src/proxy.cc:887,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:888,1
    - Dst: CUPFN
      Src: /src/nccl/src/proxy.cc:892,1
    - Dst: cuCtxCreate
      Src: /src/nccl/src/proxy.cc:892,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:894,1
    - Dst: CUPFN
      Src: /src/nccl/src/proxy.cc:903,1
    - Dst: cuCtxSetCurrent
      Src: /src/nccl/src/proxy.cc:903,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:905,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - proxyState
    - prefix
    argTypes:
    - struct ncclProxyState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 911
    functionName: setProxyThreadContext
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - CUPFN
    - INFO
    - cuCtxSetCurrent
    - ncclParamCreateThreadContext
    - std::call_once
    - cuCtxCreate
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t setProxyThreadContext(struct ncclProxyState* proxyState,
      const char* prefix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/proxy.cc:920,1
    - Dst: ncclStrListToCpuset
      Src: /src/nccl/src/proxy.cc:922,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:924,1
    - Dst: ncclOsGetAffinity
      Src: /src/nccl/src/proxy.cc:930,1
    - Dst: ncclCpusetToStrList
      Src: /src/nccl/src/proxy.cc:931,1
    - Dst: snprintf
      Src: /src/nccl/src/proxy.cc:932,1
    - Dst: strlen
      Src: /src/nccl/src/proxy.cc:932,1
    - Dst: strlen
      Src: /src/nccl/src/proxy.cc:932,1
    - Dst: ncclCpusetToStrList
      Src: /src/nccl/src/proxy.cc:933,1
    - Dst: strlen
      Src: /src/nccl/src/proxy.cc:933,1
    - Dst: strlen
      Src: /src/nccl/src/proxy.cc:933,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:934,1
    - Dst: ncclOsCpuZero
      Src: /src/nccl/src/proxy.cc:939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 941
    functionName: proxyCpusetOnceFunc
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - ncclOsCpuZero
    - INFO
    - ncclOsGetAffinity
    - strlen
    - ncclStrListToCpuset
    - ncclCpusetToStrList
    - snprintf
    linkageType: ''
    returnType: void
    signature: void proxyCpusetOnceFunc()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:946,1
    - Dst: ncclOsGetCpu
      Src: /src/nccl/src/proxy.cc:946,1
    - Dst: setProxyThreadContext
      Src: /src/nccl/src/proxy.cc:947,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:948,1
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/proxy.cc:949,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/proxy.cc:949,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:950,1
    - Dst: ncclParamProxyDumpSignal
      Src: /src/nccl/src/proxy.cc:955,1
    - Dst: signal
      Src: /src/nccl/src/proxy.cc:956,1
    - Dst: snprintf
      Src: /src/nccl/src/proxy.cc:959,1
    - Dst: nvtxNameOsThreadA
      Src: /src/nccl/src/proxy.cc:960,1
    - Dst: ncclOsGetTid
      Src: /src/nccl/src/proxy.cc:960,1
    - Dst: progressOps
      Src: /src/nccl/src/proxy.cc:971,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/proxy.cc:973,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:974,1
    - Dst: ncclProfilerStartProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:979,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:980,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:981,1
    - Dst: ncclProfilerStopProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:982,1
    - Dst: ncclParamProgressAppendOpFreq
      Src: /src/nccl/src/proxy.cc:984,1
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:987,1
    - Dst: ncclProxyGetPostedOps
      Src: /src/nccl/src/proxy.cc:988,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:989,1
    - Dst: TIME_CANCEL
      Src: /src/nccl/src/proxy.cc:989,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/proxy.cc:991,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:992,1
    - Dst: std::this_thread::yield
      Src: /src/nccl/src/proxy.cc:995,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/proxy.cc:999,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 1
    argNames:
    - proxyState_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 943
    functionDepth: 5
    functionLinenumber: 943
    functionLinenumberEnd: 1001
    functionName: ncclProxyProgress
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclParamProxyDumpSignal
    - ncclOsGetTid
    - CUDASUCCESS
    - COMPILER_ATOMIC_LOAD
    - ncclProxyGetPostedOps
    - ncclProfilerStartProxyCtrlEvent
    - WARN
    - INFO
    - progressOps
    - nvtxNameOsThreadA
    - ncclParamProgressAppendOpFreq
    - ncclOsGetCpu
    - TIME_STOP
    - setProxyThreadContext
    - ncclProfilerRecordProxyCtrlEventState
    - ncclProfilerStopProxyCtrlEvent
    - TIME_START
    - std::this_thread::yield
    - COMPILER_ATOMIC_STORE
    - signal
    - cudaSetDevice
    - TIME_CANCEL
    - snprintf
    linkageType: ''
    returnType: void
    signature: void * ncclProxyProgress(void *proxyState_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:1006,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1012,1
    - Dst: ncclProxyPost
      Src: /src/nccl/src/proxy.cc:1012,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:1017,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1019
    functionName: ncclProxyStart
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - TIME_START
    - TIME_STOP
    - ncclProxyPost
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyStart(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ncclProxyProgressState*::thread::joinable
      Src: /src/nccl/src/proxy.cc:1023,1
    - Dst: std::thread
      Src: /src/nccl/src/proxy.cc:1024,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/proxy.cc:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - proxyState
    argTypes:
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1028
    functionName: ncclProxyProgressCreate
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - std::thread
    - struct ncclProxyProgressState*::thread::joinable
    - ncclSetThreadName
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyProgressCreate(struct ncclProxyState* proxyState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ncclProxyProgressState*::opsPool::cond::notify_one
      Src: /src/nccl/src/proxy.cc:1039,1
    - Dst: struct ncclProxyProgressState*::opsPool::cond::notify_all
      Src: /src/nccl/src/proxy.cc:1041,1
    - Dst: struct ncclProxyProgressState*::thread::join
      Src: /src/nccl/src/proxy.cc:1044,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1050,1
    - Dst: TIME_PRINT
      Src: /src/nccl/src/proxy.cc:1054,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - proxyState
    argTypes:
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1056
    functionName: ncclProxyProgressDestroy
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyProgressState*::thread::join
    - struct ncclProxyProgressState*::opsPool::cond::notify_one
    - free
    - TIME_PRINT
    - struct ncclProxyProgressState*::opsPool::cond::notify_all
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyProgressDestroy(struct ncclProxyState* proxyState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1069,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/proxy.cc:1069,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1070,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pool
    - id
    argTypes:
    - struct ncclProxyConnectionPool*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1077
    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: 1085
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1085
    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:1090,1
    - Dst: send::proxyFree
      Src: /src/nccl/src/proxy.cc:1090,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1094,1
    - Dst: recv::proxyFree
      Src: /src/nccl/src/proxy.cc:1094,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1098
    functionName: proxyFree
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 1
    functionsReached:
    - recv::proxyFree
    - send::proxyFree
    - NCCLCHECK
    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:1106,1
    - Dst: proxyFree
      Src: /src/nccl/src/proxy.cc:1106,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1109,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - proxyState
    argTypes:
    - struct ncclProxyConnectionPool*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1113
    functionName: ncclProxyFreeConnections
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - free
    - proxyFree
    - NCCLCHECK
    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:1145,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1145,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1146,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1146,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1147,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1147,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1149,1
    - Dst: ncclSocketSetFd
      Src: /src/nccl/src/proxy.cc:1149,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1156,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/proxy.cc:1156,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1158,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/proxy.cc:1158,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1159,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/proxy.cc:1159,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1172,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/proxy.cc:1172,1
    - Dst: snprintf
      Src: /src/nccl/src/proxy.cc:1181,1
    - Dst: snprintf
      Src: /src/nccl/src/proxy.cc:1184,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1188,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/proxy.cc:1188,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 5
    argNames:
    - comm
    - transport
    - send
    - proxyRank
    - proxyConn
    argTypes:
    - struct ncclComm*
    - int
    - int
    - int
    - struct ncclProxyConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1195
    functionName: ncclProxyConnect
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 1
    functionsReached:
    - ncclSocketConnect
    - ncclCalloc
    - INFO
    - ncclSocketInit
    - ncclProxyCallBlocking
    - ncclSocketSetFd
    - snprintf
    - ncclSocketReady
    - ncclShmOpen
    - 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:1202,1
    - Dst: getRandomData
      Src: /src/nccl/src/proxy.cc:1202,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1209,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1213,1
    - Dst: ncclIpcSocketInit
      Src: /src/nccl/src/proxy.cc:1213,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1219,1
    - Dst: ncclIpcSocketGetFd
      Src: /src/nccl/src/proxy.cc:1219,1
    - Dst: memset
      Src: /src/nccl/src/proxy.cc:1223,1
    - Dst: assert
      Src: /src/nccl/src/proxy.cc:1230,1
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:1231,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1232,1
    - Dst: ncclIpcSocketSendMsg
      Src: /src/nccl/src/proxy.cc:1232,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1233,1
    - Dst: ncclIpcSocketRecvMsg
      Src: /src/nccl/src/proxy.cc:1233,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1234,1
    - Dst: ncclIpcSocketClose
      Src: /src/nccl/src/proxy.cc:1234,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1236,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1242,1
    - Dst: ncclIpcSocketClose
      Src: /src/nccl/src/proxy.cc:1242,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1243,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: 1229
        line_start: 1229
        source_file: /src/nccl/src/proxy.cc
    constantsTouched: []
    func_position:
      end: 1245
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1245
    functionName: ncclProxyCallBlockingUDS
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclIpcSocketRecvMsg
    - memcpy
    - assert
    - ncclIpcSocketClose
    - memset
    - NCCLCHECKGOTO
    - getRandomData
    - ncclIpcSocketGetFd
    - WARN
    - ncclIpcSocketSendMsg
    - ncclIpcSocketInit
    - NCCLCHECK
    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:1254,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/proxy.cc:1254,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1256,1
    - Dst: ncclProxyCallBlockingUDS
      Src: /src/nccl/src/proxy.cc:1256,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1259,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1264,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: 1266
      start: 1249
    functionDepth: 2
    functionLinenumber: 1249
    functionLinenumberEnd: 1266
    functionName: ncclProxyClientGetFdBlocking
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 2
    functionsReached:
    - INFO
    - ncclProxyCallBlockingUDS
    - NCCLCHECKGOTO
    - WARN
    - ncclProxyConnect
    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:1271,1
    - Dst: ncclProxyCallBlockingUDS
      Src: /src/nccl/src/proxy.cc:1271,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - comm
    - proxyConn
    - localFds
    - rmtFds
    - numSegments
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1268
    functionDepth: 2
    functionLinenumber: 1268
    functionLinenumberEnd: 1279
    functionName: ncclProxyClientBatchQueryFdBlocking
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - NCCLCHECKGOTO
    - ncclProxyCallBlockingUDS
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyClientBatchQueryFdBlocking(struct ncclComm* comm,
      struct ncclProxyConnector* proxyConn, int* localFds, int* rmtFds, int numSegments)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1283,1
    - Dst: ncclProxyCallBlockingUDS
      Src: /src/nccl/src/proxy.cc:1283,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1286,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1289,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: 1291
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1291
    functionName: ncclProxyClientQueryFdBlocking
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    - INFO
    - NCCLCHECKGOTO
    - ncclProxyCallBlockingUDS
    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:1303,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1303,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1304,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1304,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1305,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1305,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1306,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1306,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1307,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1307,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1310,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1310,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1313,1
    - Dst: expectedProxyResponseEnqueue
      Src: /src/nccl/src/proxy.cc:1313,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: 1318
      start: 1294
    functionDepth: 2
    functionLinenumber: 1294
    functionLinenumberEnd: 1318
    functionName: ncclProxyCallAsync
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclSocketSend
    - NCCLCHECKGOTO
    - expectedProxyResponseEnqueue
    - 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: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/proxy.cc:1323,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1324,1
    - Dst: expectedProxyResponseDequeue
      Src: /src/nccl/src/proxy.cc:1331,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/proxy.cc:1337,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1338,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1347,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/proxy.cc:1347,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1350,1
    - Dst: malloc
      Src: /src/nccl/src/proxy.cc:1356,1
    - Dst: assert
      Src: /src/nccl/src/proxy.cc:1358,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1359,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1359,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1363,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1364,1
    - Dst: expectedProxyResponseRemove
      Src: /src/nccl/src/proxy.cc:1364,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1367,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1369,1
    - Dst: expectedProxyResponseStore
      Src: /src/nccl/src/proxy.cc:1369,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1373,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: 1357
        line_start: 1357
        source_file: /src/nccl/src/proxy.cc
    constantsTouched: []
    func_position:
      end: 1377
      start: 1320
    functionDepth: 2
    functionLinenumber: 1320
    functionLinenumberEnd: 1377
    functionName: ncclPollProxyResponse
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclSocketProgress
    - expectedProxyResponseStore
    - INFO
    - expectedProxyResponseRemove
    - ncclSocketRecv
    - assert
    - expectedProxyResponseDequeue
    - COMPILER_ATOMIC_LOAD
    - malloc
    - WARN
    - 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:1382,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1384,1
    - Dst: ncclProxyCallAsync
      Src: /src/nccl/src/proxy.cc:1384,1
    - Dst: ncclPollProxyResponse
      Src: /src/nccl/src/proxy.cc:1387,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1391,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: 1395
      start: 1379
    functionDepth: 3
    functionLinenumber: 1379
    functionLinenumberEnd: 1395
    functionName: ncclProxyCallBlocking
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 2
    functionsReached:
    - free
    - ncclProxyCallAsync
    - NCCLCHECKGOTO
    - ncclPollProxyResponse
    - malloc
    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: snprintf
      Src: /src/nccl/src/proxy.cc:1408,1
    - Dst: GetCurrentProcessId
      Src: /src/nccl/src/proxy.cc:1408,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1410,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/proxy.cc:1410,1
    - Dst: ncclOsSetMutexCondShared
      Src: /src/nccl/src/proxy.cc:1420,1
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:1425,1
    - Dst: strlen
      Src: /src/nccl/src/proxy.cc:1428,1
    - Dst: strlen
      Src: /src/nccl/src/proxy.cc:1429,1
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:1430,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1435,1
    - Dst: ncclProxyProgressCreate
      Src: /src/nccl/src/proxy.cc:1435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - proxyState
    argTypes:
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1397
    functionDepth: 2
    functionLinenumber: 1397
    functionLinenumberEnd: 1438
    functionName: proxyProgressInit
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - GetCurrentProcessId
    - ncclProxyProgressCreate
    - ncclOsSetMutexCondShared
    - snprintf
    - ncclShmOpen
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxyProgressInit(struct ncclProxyState* proxyState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclShmClose
      Src: /src/nccl/src/proxy.cc:1442,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - proxyState
    argTypes:
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1445
    functionName: proxyOpsFree
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclShmClose
    - WARN
    linkageType: ''
    returnType: void
    signature: void proxyOpsFree(struct ncclProxyState* proxyState)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclShmUnlink
      Src: /src/nccl/src/proxy.cc:1451,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1455
    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:1459,1
    - Dst: ncclProxyNewConnection
      Src: /src/nccl/src/proxy.cc:1459,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1460,1
    - Dst: ncclProxyGetConnection
      Src: /src/nccl/src/proxy.cc:1460,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/proxy.cc:1467,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1476,1
    - Dst: proxyProgressInit
      Src: /src/nccl/src/proxy.cc:1476,1
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:1478,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1480,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/proxy.cc:1481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    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: 1483
      start: 1457
    functionDepth: 3
    functionLinenumber: 1457
    functionLinenumberEnd: 1483
    functionName: proxyConnInit
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclProxyNewConnection
    - INFO
    - proxyProgressInit
    - COMPILER_ATOMIC_STORE
    - memcpy
    - ncclProxyGetConnection
    - ncclIntruQueueConstruct
    - NCCLCHECK
    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:1491,1
    - Dst: ncclIpcSocketInit
      Src: /src/nccl/src/proxy.cc:1491,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1492,1
    - Dst: ncclIpcSocketSendMsg
      Src: /src/nccl/src/proxy.cc:1492,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1494,1
    - Dst: ncclIpcSocketClose
      Src: /src/nccl/src/proxy.cc:1494,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: 1499
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1499
    functionName: proxyQueryFd
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclIpcSocketClose
    - NCCLCHECKGOTO
    - ncclIpcSocketSendMsg
    - ncclIpcSocketInit
    - 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:1508,1
    - Dst: CUCHECK
      Src: /src/nccl/src/proxy.cc:1513,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/proxy.cc:1513,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1515,1
    - Dst: ncclIpcSocketInit
      Src: /src/nccl/src/proxy.cc:1515,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1516,1
    - Dst: ncclIpcSocketSendFd
      Src: /src/nccl/src/proxy.cc:1516,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1518,1
    - Dst: ncclIpcSocketClose
      Src: /src/nccl/src/proxy.cc:1518,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/proxy.cc:1520,1
    - Dst: close
      Src: /src/nccl/src/proxy.cc:1520,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: 1525
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1525
    functionName: proxyGetFd
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclIpcSocketSendFd
    - close
    - ncclIpcSocketClose
    - NCCLCHECKGOTO
    - SYSCHECK
    - cuMemExportToShareableHandle
    - CUCHECK
    - ncclIpcSocketInit
    - 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:1531,1
    - Dst: struct ncclProxyAsyncOp*::connection::tcomm::proxySetup
      Src: /src/nccl/src/proxy.cc:1532,1
    - Dst: TRACE
      Src: /src/nccl/src/proxy.cc:1534,1
    - Dst: struct ncclProxyAsyncOp*::connection::tcomm::proxyConnect
      Src: /src/nccl/src/proxy.cc:1535,1
    - Dst: TRACE
      Src: /src/nccl/src/proxy.cc:1538,1
    - Dst: struct ncclProxyAsyncOp*::connection::tcomm::proxySharedInit
      Src: /src/nccl/src/proxy.cc:1539,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/proxy.cc:1540,1
    - Dst: static_cast<proxyConnectState>
      Src: /src/nccl/src/proxy.cc:1540,1
    - Dst: TRACE
      Src: /src/nccl/src/proxy.cc:1543,1
    - Dst: proxyConnInit
      Src: /src/nccl/src/proxy.cc:1544,1
    - Dst: TRACE
      Src: /src/nccl/src/proxy.cc:1546,1
    - Dst: struct ncclProxyAsyncOp*::connection::tcomm::proxyRegister
      Src: /src/nccl/src/proxy.cc:1547,1
    - Dst: TRACE
      Src: /src/nccl/src/proxy.cc:1549,1
    - Dst: struct ncclProxyAsyncOp*::connection::tcomm::proxyDeregister
      Src: /src/nccl/src/proxy.cc:1550,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1554,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/proxy.cc:1556,1
    - Dst: static_cast<proxyConnectState>
      Src: /src/nccl/src/proxy.cc:1556,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/proxy.cc:1558,1
    - Dst: static_cast<proxyConnectState>
      Src: /src/nccl/src/proxy.cc:1558,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1567,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1567,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1571,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1571,1
    - Dst: asyncProxyOpDequeue
      Src: /src/nccl/src/proxy.cc:1574,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/proxy.cc:1578,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: 1583
      start: 1527
    functionDepth: 4
    functionLinenumber: 1527
    functionLinenumberEnd: 1583
    functionName: proxyProgressAsync
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - INFO
    - struct ncclProxyAsyncOp*::connection::tcomm::proxySharedInit
    - static_cast<proxyConnectState>
    - struct ncclProxyAsyncOp*::connection::tcomm::proxyConnect
    - COMPILER_ATOMIC_STORE
    - asyncProxyOpDequeue
    - struct ncclProxyAsyncOp*::connection::tcomm::proxyRegister
    - struct ncclProxyAsyncOp*::connection::tcomm::proxySetup
    - ncclSocketSend
    - COMPILER_ATOMIC_LOAD
    - proxyConnInit
    - struct ncclProxyAsyncOp*::connection::tcomm::proxyDeregister
    - 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:1589,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1589,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1592,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1592,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1594,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1594,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1595,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1595,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1597,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1597,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1598,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1598,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1602,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1602,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1604,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1604,1
    - Dst: asyncProxyOpEnqueue
      Src: /src/nccl/src/proxy.cc:1606,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1609,1
    - Dst: proxyProgressAsync
      Src: /src/nccl/src/proxy.cc:1609,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1613,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1614,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1615,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: 1617
      start: 1585
    functionDepth: 5
    functionLinenumber: 1585
    functionLinenumberEnd: 1617
    functionName: proxyServiceInitOp
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - proxyProgressAsync
    - ncclCalloc
    - asyncProxyOpEnqueue
    - ncclSocketRecv
    - free
    - NCCLCHECKGOTO
    - NCCLCHECK
    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: 1632
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1632
    functionName: proxyMatchOpType
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool proxyMatchOpType(int type)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/proxy.cc:1643,1
    - Dst: ncclOsCpuCount
      Src: /src/nccl/src/proxy.cc:1644,1
    - Dst: ncclOsSetAffinity
      Src: /src/nccl/src/proxy.cc:1644,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1645,1
    - Dst: ncclOsGetCpu
      Src: /src/nccl/src/proxy.cc:1645,1
    - Dst: setProxyThreadContext
      Src: /src/nccl/src/proxy.cc:1647,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1648,1
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/proxy.cc:1649,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/proxy.cc:1649,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1650,1
    - Dst: std::max
      Src: /src/nccl/src/proxy.cc:1660,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1668,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1668,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1669,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1669,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1674,1
    - Dst: ncclSocketGetFd
      Src: /src/nccl/src/proxy.cc:1674,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/proxy.cc:1690,1
    - Dst: poll
      Src: /src/nccl/src/proxy.cc:1697,1
    - Dst: WSAPoll
      Src: /src/nccl/src/proxy.cc:1702,1
    - Dst: WSAGetLastError
      Src: /src/nccl/src/proxy.cc:1704,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1705,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1713,1
    - Dst: strerror
      Src: /src/nccl/src/proxy.cc:1713,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1721,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1725,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/proxy.cc:1725,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/proxy.cc:1726,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1727,1
    - Dst: strerror
      Src: /src/nccl/src/proxy.cc:1727,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1729,1
    - Dst: ncclSocketGetFd
      Src: /src/nccl/src/proxy.cc:1729,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/proxy.cc:1745,1
    - Dst: ncclCuMemHostEnable
      Src: /src/nccl/src/proxy.cc:1745,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/proxy.cc:1745,1
    - Dst: proxyProgressAsync
      Src: /src/nccl/src/proxy.cc:1753,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1759,1
    - Dst: ncclSocketTryRecv
      Src: /src/nccl/src/proxy.cc:1768,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/proxy.cc:1770,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1771,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1774,1
    - Dst: proxyMatchOpType
      Src: /src/nccl/src/proxy.cc:1782,1
    - Dst: proxyServiceInitOp
      Src: /src/nccl/src/proxy.cc:1783,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1785,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1789,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/proxy.cc:1797,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1798,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/proxy.cc:1803,1
    - Dst: asyncProxyOpDequeue
      Src: /src/nccl/src/proxy.cc:1806,1
    - Dst: ncclProxyProgressDestroy
      Src: /src/nccl/src/proxy.cc:1817,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1818,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/proxy.cc:1821,1
    - Dst: ncclProxyFreeConnections
      Src: /src/nccl/src/proxy.cc:1823,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/proxy.cc:1824,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1825,1
    - Dst: proxyOpsFree
      Src: /src/nccl/src/proxy.cc:1826,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1828,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1829,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 148
    argCount: 1
    argNames:
    - _args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1640
    functionDepth: 6
    functionLinenumber: 1640
    functionLinenumberEnd: 1831
    functionName: ncclProxyService
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WSAPoll
    - CUDASUCCESS
    - NCCLCHECKGOTO
    - COMPILER_ATOMIC_LOAD
    - WARN
    - proxyProgressAsync
    - ncclCalloc
    - ncclSocketTryRecv
    - ncclCuMemEnable
    - ncclProxyProgressDestroy
    - WSAGetLastError
    - asyncProxyOpDequeue
    - free
    - std::call_once
    - ncclProxyFreeConnections
    - ncclOsSetAffinity
    - INFO
    - std::max
    - ncclSocketClose
    - ncclOsGetCpu
    - poll
    - setProxyThreadContext
    - ncclOsCpuCount
    - proxyOpsFree
    - ncclSocketAccept
    - ncclSocketInit
    - proxyMatchOpType
    - strerror
    - ncclSocketGetFd
    - cudaSetDevice
    - proxyServiceInitOp
    - ncclCuMemHostEnable
    linkageType: ''
    returnType: void
    signature: void * ncclProxyService(void* _args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1839,1
    - Dst: ncclIpcSocketRecvMsg
      Src: /src/nccl/src/proxy.cc:1839,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1845,1
    - Dst: close
      Src: /src/nccl/src/proxy.cc:1846,1
    - Dst: proxyGetFd
      Src: /src/nccl/src/proxy.cc:1847,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1852,1
    - Dst: proxyQueryFd
      Src: /src/nccl/src/proxy.cc:1853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - proxyState
    - reqFd
    argTypes:
    - struct ncclProxyState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1835
    functionDepth: 2
    functionLinenumber: 1835
    functionLinenumberEnd: 1857
    functionName: proxyUDSRecvReq
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - close
    - proxyQueryFd
    - ncclIpcSocketRecvMsg
    - proxyGetFd
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxyUDSRecvReq(struct ncclProxyState* proxyState, int
      reqFd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/proxy.cc:1865,1
    - Dst: ncclOsCpuCount
      Src: /src/nccl/src/proxy.cc:1866,1
    - Dst: ncclOsSetAffinity
      Src: /src/nccl/src/proxy.cc:1866,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1867,1
    - Dst: ncclOsGetCpu
      Src: /src/nccl/src/proxy.cc:1867,1
    - Dst: setProxyThreadContext
      Src: /src/nccl/src/proxy.cc:1869,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1870,1
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/proxy.cc:1871,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/proxy.cc:1871,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1872,1
    - Dst: ncclIpcSocketGetFd
      Src: /src/nccl/src/proxy.cc:1877,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1878,1
    - Dst: poll
      Src: /src/nccl/src/proxy.cc:1890,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1893,1
    - Dst: strerror
      Src: /src/nccl/src/proxy.cc:1893,1
    - Dst: PeekNamedPipe
      Src: /src/nccl/src/proxy.cc:1899,1
    - Dst: GetLastError
      Src: /src/nccl/src/proxy.cc:1901,1
    - Dst: Sleep
      Src: /src/nccl/src/proxy.cc:1908,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/proxy.cc:1912,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/proxy.cc:1912,1
    - Dst: proxyUDSRecvReq
      Src: /src/nccl/src/proxy.cc:1916,1
    - Dst: ncclIpcSocketClose
      Src: /src/nccl/src/proxy.cc:1920,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1921,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 1
    argNames:
    - _args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1860
    functionDepth: 3
    functionLinenumber: 1860
    functionLinenumberEnd: 1923
    functionName: ncclProxyServiceUDS
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclIpcSocketClose
    - INFO
    - GetLastError
    - proxyUDSRecvReq
    - strerror
    - ncclOsGetCpu
    - PeekNamedPipe
    - CUDASUCCESS
    - poll
    - setProxyThreadContext
    - cudaSetDevice
    - ncclIpcSocketGetFd
    - std::call_once
    - COMPILER_ATOMIC_LOAD
    - WARN
    - ncclOsSetAffinity
    - Sleep
    - ncclOsCpuCount
    linkageType: ''
    returnType: void
    signature: void * ncclProxyServiceUDS(void* _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/proxy.cc:1926,1
    - Dst: ncclProxyState::ncclProxyState
      Src: /src/nccl/src/proxy.cc:1927,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1936,1
    - Dst: ncclIpcSocketInit
      Src: /src/nccl/src/proxy.cc:1936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - comm
    - sock
    - peerAddresses
    - peerAddressesUDS
    argTypes:
    - struct ncclComm*
    - struct ncclSocket*
    - union ncclSocketAddress*
    - uint64_t*
    assertStmts:
    - condition: (comm->sharedRes->proxyState == nullptr)
      pos:
        line_end: 1925
        line_start: 1925
        source_file: /src/nccl/src/proxy.cc
    constantsTouched: []
    func_position:
      end: 1938
      start: 1925
    functionDepth: 0
    functionLinenumber: 1925
    functionLinenumberEnd: 1938
    functionName: ncclProxyInit
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclIpcSocketInit
    - NCCLCHECK
    - ncclProxyState::ncclProxyState
    - assert
    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:1965,1
    - Dst: std::thread
      Src: /src/nccl/src/proxy.cc:1967,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/proxy.cc:1968,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1971,1
    - Dst: std::thread
      Src: /src/nccl/src/proxy.cc:1972,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/proxy.cc:1973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1940
    functionDepth: 1
    functionLinenumber: 1940
    functionLinenumberEnd: 1976
    functionName: ncclProxyCreate
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 1
    functionsReached:
    - INFO
    - std::thread
    - memcpy
    - ncclSetThreadName
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyCreate(struct ncclComm* comm)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/proxy.cc:1982,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1987,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/proxy.cc:1987,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/proxy.cc:1988,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1989,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/proxy.cc:1991,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1998,1
    - Dst: ncclSocketGetFd
      Src: /src/nccl/src/proxy.cc:1998,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:2001,1
    - Dst: ncclShmClose
      Src: /src/nccl/src/proxy.cc:2001,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/proxy.cc:2004,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/proxy.cc:2005,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/proxy.cc:2005,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:2009,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:2010,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/proxy.cc:2010,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/proxy.cc:2015,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 1978
    functionDepth: 1
    functionLinenumber: 1978
    functionLinenumberEnd: 2020
    functionName: ncclProxyStop
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 2
    functionsReached:
    - ncclSocketConnect
    - cudaIpcCloseMemHandle
    - ncclSocketInit
    - ncclSocketClose
    - ncclCuMemEnable
    - ncclAtomicRefCountDecrement
    - COMPILER_ATOMIC_STORE
    - ncclSocketGetFd
    - ncclSocketSend
    - CUDACHECK
    - ncclShmClose
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyStop(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/proxy.cc:2026,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:2027,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:2028,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:2029,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:2030,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:2031,1
    - Dst: expectedProxyResponseFree
      Src: /src/nccl/src/proxy.cc:2032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts:
    - condition: (sharedProxyState->refCount == 0)
      pos:
        line_end: 2025
        line_start: 2025
        source_file: /src/nccl/src/proxy.cc
    constantsTouched: []
    func_position:
      end: 2036
      start: 2022
    functionDepth: 1
    functionLinenumber: 2022
    functionLinenumberEnd: 2036
    functionName: ncclProxyDestroy
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 1
    functionsReached:
    - free
    - expectedProxyResponseFree
    - assert
    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: 15
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 15
    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: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: cudaGetDriverEntryPoint
    functionSourceFile: /src/nccl/src/enhcompat.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cudaError_t
    signature: cudaError_t cudaGetDriverEntryPoint(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: ncclSymkLLKernelMask
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclSymkLLKernelMask()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: ncclSymkDynamicSmemKernelMask
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclSymkDynamicSmemKernelMask()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - coll
    argTypes:
    - ncclFunc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: kernelMask_coll
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t kernelMask_coll(ncclFunc_t coll)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/sym_kernels.cc:123,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/sym_kernels.cc:127,1
    - Dst: strcmp
      Src: /src/nccl/src/sym_kernels.cc:128,1
    - Dst: strcmp
      Src: /src/nccl/src/sym_kernels.cc:134,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/sym_kernels.cc:135,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/sym_kernels.cc:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 144
    functionName: kernelMask_user
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - COMPILER_ATOMIC_STORE
    - COMPILER_ATOMIC_LOAD
    - strcmp
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t kernelMask_user()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log1p
      Src: /src/nccl/src/sym_kernels.cc:152,1
    - Dst: std::exp
      Src: /src/nccl/src/sym_kernels.cc:152,1
    - Dst: std::exp
      Src: /src/nccl/src/sym_kernels.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ceiling
    - softness
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: softmin
    functionSourceFile: /src/nccl/src/sym_kernels.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/sym_kernels.cc:158,1
    - Dst: std::exp
      Src: /src/nccl/src/sym_kernels.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - softness
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: softplus
    functionSourceFile: /src/nccl/src/sym_kernels.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/sym_kernels.cc:162,1
    - Dst: softplus
      Src: /src/nccl/src/sym_kernels.cc:163,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: 164
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: model
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached:
    - softplus
    - softmin
    linkageType: ''
    returnType: double
    signature: double model(double busBytes, double baseLat, int nSMs, double smBw,
      double busMultiplier, double peakBw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queryModel_gin
      Src: /src/nccl/src/sym_kernels.cc:174,1
    - Dst: queryModel_lsa
      Src: /src/nccl/src/sym_kernels.cc:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - comm
    - k
    - nBytes
    - timeUs
    - nBlocks
    argTypes:
    - struct ncclComm*
    - ncclSymkKernelId
    - size_t
    - float*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: queryModel
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached:
    - queryModel_lsa
    - queryModel_gin
    linkageType: ''
    returnType: void
    signature: void queryModel(struct ncclComm* comm, ncclSymkKernelId k, size_t nBytes,
      float* timeUs, int* nBlocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: getLsaBw
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getLsaBw(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: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: getGinLat
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getGinLat(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: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: getGinBw
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getGinBw(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/sym_kernels.cc:209,1
    - Dst: ncclTeamRail
      Src: /src/nccl/src/sym_kernels.cc:210,1
    - Dst: std::max
      Src: /src/nccl/src/sym_kernels.cc:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - comm
    - ldmc
    - out_smMul
    - out_lsaMul
    - out_ginMul
    argTypes:
    - struct ncclComm*
    - bool
    - double*
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: getBusMul_ReduceScatter_RailA2A
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached:
    - ncclTeamRail
    - std::max
    - ncclTeamLsa
    linkageType: ''
    returnType: void
    signature: "void getBusMul_ReduceScatter_RailA2A(\n    struct ncclComm* comm,
      bool ldmc,\n    // Bus multipliers per bottleneck\n    double* out_smMul, double*
      out_lsaMul, double* out_ginMul\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - comm
    - ldmc
    argTypes:
    - struct ncclComm*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: getSmBw_ReduceScatter_RailA2A
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getSmBw_ReduceScatter_RailA2A(struct ncclComm* comm, bool ldmc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comm
    - ldmc
    argTypes:
    - struct ncclComm*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: getSmLat_ReduceScatter_RailA2A
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getSmLat_ReduceScatter_RailA2A(struct ncclComm* comm, bool ldmc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLsaBw
      Src: /src/nccl/src/sym_kernels.cc:242,1
    - Dst: getGinBw
      Src: /src/nccl/src/sym_kernels.cc:243,1
    - Dst: getSmBw_ReduceScatter_RailA2A
      Src: /src/nccl/src/sym_kernels.cc:244,1
    - Dst: getBusMul_ReduceScatter_RailA2A
      Src: /src/nccl/src/sym_kernels.cc:246,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:251,1
    - Dst: std::ceil
      Src: /src/nccl/src/sym_kernels.cc:252,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - ldmc
    argTypes:
    - struct ncclComm*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 253
    functionName: calcSatBlocks_ReduceScatter_RailA2A
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached:
    - getGinBw
    - getBusMul_ReduceScatter_RailA2A
    - getLsaBw
    - min
    - std::ceil
    - getSmBw_ReduceScatter_RailA2A
    linkageType: ''
    returnType: int
    signature: int calcSatBlocks_ReduceScatter_RailA2A(struct ncclComm* comm, bool
      ldmc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getLsaBw
      Src: /src/nccl/src/sym_kernels.cc:259,1
    - Dst: getGinBw
      Src: /src/nccl/src/sym_kernels.cc:260,1
    - Dst: getGinLat
      Src: /src/nccl/src/sym_kernels.cc:261,1
    - Dst: getSmLat_ReduceScatter_RailA2A
      Src: /src/nccl/src/sym_kernels.cc:262,1
    - Dst: getBusMul_ReduceScatter_RailA2A
      Src: /src/nccl/src/sym_kernels.cc:264,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:266,1
    - Dst: calcSatBlocks_ReduceScatter_RailA2A
      Src: /src/nccl/src/sym_kernels.cc:268,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:270,1
    - Dst: INFO
      Src: /src/nccl/src/sym_kernels.cc:271,1
    - Dst: std::max
      Src: /src/nccl/src/sym_kernels.cc:273,1
    - Dst: std::max
      Src: /src/nccl/src/sym_kernels.cc:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - comm
    - out_nBlocks
    - out_bufSize
    argTypes:
    - struct ncclComm*
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 276
    functionName: getRequirements_gin
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached:
    - getGinBw
    - getGinLat
    - INFO
    - getBusMul_ReduceScatter_RailA2A
    - getSmLat_ReduceScatter_RailA2A
    - std::max
    - getLsaBw
    - min
    - calcSatBlocks_ReduceScatter_RailA2A
    linkageType: ''
    returnType: void
    signature: void getRequirements_gin(struct ncclComm* comm, int* out_nBlocks, size_t*
      out_bufSize )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamRail
      Src: /src/nccl/src/sym_kernels.cc:282,1
    - Dst: getLsaBw
      Src: /src/nccl/src/sym_kernels.cc:283,1
    - Dst: getGinLat
      Src: /src/nccl/src/sym_kernels.cc:284,1
    - Dst: getGinBw
      Src: /src/nccl/src/sym_kernels.cc:285,1
    - Dst: std::min<int>
      Src: /src/nccl/src/sym_kernels.cc:286,1
    - Dst: std::min<int>
      Src: /src/nccl/src/sym_kernels.cc:288,1
    - Dst: divUp
      Src: /src/nccl/src/sym_kernels.cc:288,1
    - Dst: std::min<int>
      Src: /src/nccl/src/sym_kernels.cc:291,1
    - Dst: ncclParamSymCTAs
      Src: /src/nccl/src/sym_kernels.cc:291,1
    - Dst: DIVUP
      Src: /src/nccl/src/sym_kernels.cc:299,1
    - Dst: DIVUP
      Src: /src/nccl/src/sym_kernels.cc:304,1
    - Dst: std::max
      Src: /src/nccl/src/sym_kernels.cc:305,1
    - Dst: std::max
      Src: /src/nccl/src/sym_kernels.cc:306,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:306,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:311,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:312,1
    - Dst: calcSatBlocks_ReduceScatter_RailA2A
      Src: /src/nccl/src/sym_kernels.cc:312,1
    - Dst: getSmBw_ReduceScatter_RailA2A
      Src: /src/nccl/src/sym_kernels.cc:314,1
    - Dst: getBusMul_ReduceScatter_RailA2A
      Src: /src/nccl/src/sym_kernels.cc:316,1
    - Dst: divUp
      Src: /src/nccl/src/sym_kernels.cc:317,1
    - Dst: std::max
      Src: /src/nccl/src/sym_kernels.cc:319,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:319,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:321,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:322,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/sym_kernels.cc:325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - comm
    - k
    - nBytes
    - timeUs
    - nBlocks
    argTypes:
    - struct ncclComm*
    - ncclSymkKernelId
    - size_t
    - float*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 332
    functionName: queryModel_gin
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 1
    functionsReached:
    - getGinBw
    - getGinLat
    - getBusMul_ReduceScatter_RailA2A
    - std::min<size_t>
    - std::max
    - getLsaBw
    - ncclTeamRail
    - ncclParamSymCTAs
    - divUp
    - min
    - DIVUP
    - std::min<int>
    - getSmBw_ReduceScatter_RailA2A
    - calcSatBlocks_ReduceScatter_RailA2A
    linkageType: ''
    returnType: void
    signature: void queryModel_gin(struct ncclComm* comm, ncclSymkKernelId k, size_t
      nBytes, float* timeUs, int* nBlocks)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: divUp
      Src: /src/nccl/src/sym_kernels.cc:339,1
    - Dst: std::min<int>
      Src: /src/nccl/src/sym_kernels.cc:397,1
    - Dst: std::min<int>
      Src: /src/nccl/src/sym_kernels.cc:400,1
    - Dst: ncclParamSymCTAs
      Src: /src/nccl/src/sym_kernels.cc:400,1
    - Dst: model
      Src: /src/nccl/src/sym_kernels.cc:418,1
    - Dst: model
      Src: /src/nccl/src/sym_kernels.cc:421,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 5
    argNames:
    - comm
    - k
    - nBytes
    - timeUs
    - nBlocks
    argTypes:
    - struct ncclComm*
    - ncclSymkKernelId
    - size_t
    - float*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 428
    functionName: queryModel_lsa
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 1
    functionsReached:
    - model
    - ncclParamSymCTAs
    - divUp
    - std::min<int>
    linkageType: ''
    returnType: void
    signature: void queryModel_lsa(struct ncclComm* comm, ncclSymkKernelId k, size_t
      nBytes, float* timeUs, int* nBlocks)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/sym_kernels.cc:432,1
    - Dst: ncclDevrInitOnce
      Src: /src/nccl/src/sym_kernels.cc:432,1
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/sym_kernels.cc:439,1
    - Dst: ncclLLA2ACreateRequirement
      Src: /src/nccl/src/sym_kernels.cc:444,1
    - Dst: ncclLLA2ACalcSlots
      Src: /src/nccl/src/sym_kernels.cc:445,1
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/sym_kernels.cc:445,1
    - Dst: ncclParamSymGinKernelsEnable
      Src: /src/nccl/src/sym_kernels.cc:454,1
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/sym_kernels.cc:454,1
    - Dst: getRequirements_gin
      Src: /src/nccl/src/sym_kernels.cc:457,1
    - Dst: std::max
      Src: /src/nccl/src/sym_kernels.cc:459,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:460,1
    - Dst: ncclParamSymCTAs
      Src: /src/nccl/src/sym_kernels.cc:461,1
    - Dst: ncclParamSymCTAs
      Src: /src/nccl/src/sym_kernels.cc:461,1
    - Dst: min
      Src: /src/nccl/src/sym_kernels.cc:462,1
    - Dst: ncclGinInboxA2ACreateRequirement
      Src: /src/nccl/src/sym_kernels.cc:465,1
    - Dst: ncclTeamRail
      Src: /src/nccl/src/sym_kernels.cc:466,1
    - Dst: log2Up
      Src: /src/nccl/src/sym_kernels.cc:466,1
    - Dst: ncclGinOutboxCreateRequirement
      Src: /src/nccl/src/sym_kernels.cc:472,1
    - Dst: log2Up
      Src: /src/nccl/src/sym_kernels.cc:473,1
    - Dst: ncclTeamRail
      Src: /src/nccl/src/sym_kernels.cc:479,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/sym_kernels.cc:494,1
    - Dst: ncclDevrCommCreateInternal
      Src: /src/nccl/src/sym_kernels.cc:494,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 430
    functionDepth: 7
    functionLinenumber: 430
    functionLinenumberEnd: 497
    functionName: ncclSymkInitOnce
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 1
    functionsReached:
    - std::max
    - ncclDevrInitOnce
    - ncclTeamRail
    - ncclParamSymCTAs
    - ncclGinInboxA2ACreateRequirement
    - min
    - log2Up
    - ncclTeamLsa
    - ncclParamSymGinKernelsEnable
    - ncclDevrCommCreateInternal
    - getRequirements_gin
    - ncclLLA2ACreateRequirement
    - ncclGinOutboxCreateRequirement
    - ncclLLA2ACalcSlots
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSymkInitOnce(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/sym_kernels.cc:502,1
    - Dst: ncclDevCommDestroy
      Src: /src/nccl/src/sym_kernels.cc:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 499
    functionDepth: 6
    functionLinenumber: 499
    functionLinenumberEnd: 505
    functionName: ncclSymkFinalize
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 1
    functionsReached:
    - ncclDevCommDestroy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSymkFinalize(struct ncclComm* comm)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - coll
    - red
    - ty
    argTypes:
    - ncclFunc_t
    - int
    - ncclDataType_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 534
    functionName: ncclSymkImplemented
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclSymkImplemented(ncclFunc_t coll, int/*ncclDevRedOp_t*/ red,
      ncclDataType_t ty)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: kernelMask_coll
      Src: /src/nccl/src/sym_kernels.cc:537,1
    - Dst: kernelMask_user
      Src: /src/nccl/src/sym_kernels.cc:538,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/sym_kernels.cc:567,1
    - Dst: ncclParamSymTmaEnable
      Src: /src/nccl/src/sym_kernels.cc:575,1
    - Dst: ncclParamSymGinKernelsEnable
      Src: /src/nccl/src/sym_kernels.cc:578,1
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/sym_kernels.cc:580,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 5
    argNames:
    - comm
    - coll
    - red
    - ty
    - nElts
    argTypes:
    - struct ncclComm*
    - ncclFunc_t
    - int
    - ncclDataType_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 583
    functionName: ncclSymkMask
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached:
    - ncclTypeSize
    - ncclParamSymGinKernelsEnable
    - ncclTeamLsa
    - kernelMask_user
    - ncclParamSymTmaEnable
    - kernelMask_coll
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ncclSymkMask(struct ncclComm* comm, ncclFunc_t coll, int/*ncclDevRedOp_t*/
      red, ncclDataType_t ty, size_t nElts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymkImplemented
      Src: /src/nccl/src/sym_kernels.cc:589,1
    - Dst: ncclSymkMask
      Src: /src/nccl/src/sym_kernels.cc:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - comm
    - coll
    - red
    - ty
    - nElts
    argTypes:
    - struct ncclComm*
    - ncclFunc_t
    - int
    - ncclDataType_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 593
    functionName: ncclSymkAvailable
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached:
    - ncclSymkImplemented
    - ncclSymkMask
    linkageType: ''
    returnType: bool
    signature: "bool ncclSymkAvailable(struct ncclComm* comm, ncclFunc_t coll, int/*ncclDevRedOp_t*/
      red,\n                       ncclDataType_t ty, size_t nElts)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymkMask
      Src: /src/nccl/src/sym_kernels.cc:600,1
    - Dst: kernelMask_user
      Src: /src/nccl/src/sym_kernels.cc:602,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/sym_kernels.cc:619,1
    - Dst: popFirstOneBit
      Src: /src/nccl/src/sym_kernels.cc:624,1
    - Dst: queryModel
      Src: /src/nccl/src/sym_kernels.cc:627,1
    - Dst: kernelMask_user
      Src: /src/nccl/src/sym_kernels.cc:636,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 13
    argNames:
    - comm
    - coll
    - red
    - ty
    - nEltsTotal
    - nEltsMax
    - nWorks
    - winRegType
    - estTimeUs
    - kernelId
    - nBlocks
    - nWarps
    - forced
    argTypes:
    - struct ncclComm*
    - ncclFunc_t
    - int
    - ncclDataType_t
    - size_t
    - size_t
    - int
    - ncclSymRegType_t
    - float*
    - ncclSymkKernelId*
    - int*
    - int*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 640
    functionName: ncclSymkPickKernel
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached:
    - popFirstOneBit
    - ncclSymkMask
    - ncclTypeSize
    - queryModel
    - kernelMask_user
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclSymkPickKernel(\n    struct ncclComm* comm, ncclFunc_t
      coll, int/*ncclDevRedOp_t*/ red, ncclDataType_t ty,\n    size_t nEltsTotal,
      size_t nEltsMax, int nWorks, ncclSymRegType_t winRegType,\n    float* estTimeUs,
      ncclSymkKernelId* kernelId, int* nBlocks, int* nWarps, bool* forced\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - kernelId
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: ncclSymkKernelIdToString
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclSymkKernelIdToString(int kernelId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclTypeSize
      Src: /src/nccl/src/sym_kernels.cc:651,1
    - Dst: ncclSymkGetKernelIndex
      Src: /src/nccl/src/sym_kernels.cc:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - comm
    - kernelId
    - red
    - ty
    argTypes:
    - struct ncclComm*
    - ncclSymkKernelId
    - int
    - ncclDataType_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 655
    functionName: ncclSymkMaxChunkElts
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached:
    - ncclSymkGetKernelIndex
    - ncclTypeSize
    linkageType: ''
    returnType: int
    signature: int ncclSymkMaxChunkElts(struct ncclComm* comm, ncclSymkKernelId kernelId,
      int/*ncclDevRedOp_t*/ red, ncclDataType_t ty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - comm
    - task
    - outDevWork
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - struct ncclSymkDevWork*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 669
    functionName: ncclSymkMakeDevWork
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSymkMakeDevWork(struct ncclComm* comm, struct ncclTaskColl*
      task, struct ncclSymkDevWork* outDevWork)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 3
    argNames:
    - sendWin
    - recvWin
    - winRegType
    argTypes:
    - struct ncclDevrWindow*
    - struct ncclDevrWindow*
    - ncclSymRegType_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 687
    functionName: ncclGetSymRegType
    functionSourceFile: /src/nccl/src/sym_kernels.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetSymRegType(struct ncclDevrWindow* sendWin, struct
      ncclDevrWindow* recvWin, ncclSymRegType_t* winRegType)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - fn
    argTypes:
    - ncclFunc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 32
    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: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    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: 60
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 60
    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: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    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: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    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:89,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:90,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:90,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:95,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: 96
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: ncclAllGather
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    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:102,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:103,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:103,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - sendbuff
    - recvbuff
    - count
    - datatype
    - comm
    - stream
    argTypes:
    - void*
    - void*
    - size_t
    - ncclDataType_t
    - ncclComm*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: ncclAlltoAll
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclAlltoAll(const void* sendbuff, void* recvbuff, size_t
      count,\n    ncclDataType_t datatype, ncclComm* comm, cudaStream_t stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:115,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:116,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:116,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:121,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: 122
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: ncclAllReduce
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    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: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: 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: 135
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: ncclBroadcast
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    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:141,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: 142
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 142
    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:148,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:149,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:149,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:154,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*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: ncclGather
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGather(const void* sendbuff, void* recvbuff, size_t
      count, ncclDataType_t datatype, int root,\n    ncclComm* comm, cudaStream_t
      stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:161,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:162,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:162,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:167,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: 168
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: ncclReduce
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    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:174,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:175,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:175,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:180,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: 181
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: ncclReduceScatter
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    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:187,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:188,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:188,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:193,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*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: ncclScatter
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclScatter(const void* sendbuff, void* recvbuff, size_t
      count,\n    ncclDataType_t datatype, int root, ncclComm* comm, cudaStream_t
      stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:200,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:201,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:201,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:206,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: 207
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: ncclSend
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    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:213,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:214,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:214,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:219,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: 220
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: ncclRecv
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:226,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:227,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:227,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 11
    argNames:
    - localbuff
    - count
    - datatype
    - peer
    - peerWin
    - peerWinOffset
    - sigIdx
    - ctx
    - flags
    - comm
    - stream
    argTypes:
    - void*
    - size_t
    - ncclDataType_t
    - int
    - ncclWindow_t
    - size_t
    - int
    - int
    - unsigned int
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: ncclPutSignal
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclPutSignal(const void* localbuff, size_t count, ncclDataType_t
      datatype,\n  int peer, ncclWindow_t peerWin, size_t peerWinOffset, int sigIdx,
      int ctx, unsigned int flags, ncclComm_t comm, cudaStream_t stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:239,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:240,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - peer
    - sigIdx
    - ctx
    - flags
    - comm
    - stream
    argTypes:
    - int
    - int
    - int
    - unsigned int
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 248
    functionName: ncclSignal
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSignal(int peer, int sigIdx, int ctx, unsigned int
      flags, ncclComm_t comm, cudaStream_t stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:252,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:253,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - nDesc
    - signalDescs
    - comm
    - stream
    argTypes:
    - int
    - ncclWaitSignalDesc_t*
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: ncclWaitSignal
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - NVTX3_FUNC_WITH_PARAMS
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclWaitSignal(int nDesc, ncclWaitSignalDesc_t* signalDescs,
      ncclComm_t comm, cudaStream_t stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alignUp
      Src: /src/nccl/src/ce_coll.cc:28,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:33,1
    - Dst: ncclDevrInitOnce
      Src: /src/nccl/src/ce_coll.cc:33,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:35,1
    - Dst: ncclMemAlloc
      Src: /src/nccl/src/ce_coll.cc:35,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:36,1
    - Dst: ncclDevrWindowRegisterInGroup
      Src: /src/nccl/src/ce_coll.cc:36,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:37,1
    - Dst: ncclShadowPoolToHost
      Src: /src/nccl/src/ce_coll.cc:37,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:38,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/ce_coll.cc:38,1
    - Dst: alignUp
      Src: /src/nccl/src/ce_coll.cc:43,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:50,1
    - Dst: ncclCudaMemcpy
      Src: /src/nccl/src/ce_coll.cc:50,1
    - Dst: INFO
      Src: /src/nccl/src/ce_coll.cc:51,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/ce_coll.cc:56,1
    - Dst: ncclCommWindowDeregister
      Src: /src/nccl/src/ce_coll.cc:58,1
    - Dst: ncclMemFree
      Src: /src/nccl/src/ce_coll.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 7
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: ncclCeInit
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclDevrInitOnce
    - ncclCudaCalloc
    - ncclShadowPoolToHost
    - ncclCudaFree
    - ncclMemAlloc
    - NCCLCHECKGOTO
    - ncclCudaMemcpy
    - ncclCommWindowDeregister
    - alignUp
    - ncclDevrWindowRegisterInGroup
    - ncclMemFree
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCeInit(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/ce_coll.cc:67,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/ce_coll.cc:68,1
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:69,1
    - Dst: NCCLCHECKIGNORE
      Src: /src/nccl/src/ce_coll.cc:74,1
    - Dst: ncclCommWindowDeregister
      Src: /src/nccl/src/ce_coll.cc:74,1
    - Dst: NCCLCHECKIGNORE
      Src: /src/nccl/src/ce_coll.cc:75,1
    - Dst: ncclMemFree
      Src: /src/nccl/src/ce_coll.cc:75,1
    - Dst: NCCLCHECKIGNORE
      Src: /src/nccl/src/ce_coll.cc:76,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/ce_coll.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 84
    functionName: ncclCeFinalize
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 1
    functionsReached:
    - ncclIntruQueueEmpty
    - ncclCudaFree
    - free
    - ncclCommWindowDeregister
    - ncclMemFree
    - ncclIntruQueueDequeue
    - NCCLCHECKIGNORE
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCeFinalize(struct ncclComm* comm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclCudaDriverVersion
      Src: /src/nccl/src/ce_coll.cc:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - coll
    - red
    - ty
    argTypes:
    - ncclFunc_t
    - int
    - ncclDataType_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: ncclCeImplemented
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - ncclCudaDriverVersion
    linkageType: ''
    returnType: bool
    signature: bool ncclCeImplemented(ncclFunc_t coll, int/*ncclDevRedOp_t*/ red,
      ncclDataType_t ty)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclCeImplemented
      Src: /src/nccl/src/ce_coll.cc:106,1
    - Dst: TRACE
      Src: /src/nccl/src/ce_coll.cc:107,1
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/ce_coll.cc:110,1
    - Dst: TRACE
      Src: /src/nccl/src/ce_coll.cc:111,1
    - Dst: TRACE
      Src: /src/nccl/src/ce_coll.cc:115,1
    - Dst: TRACE
      Src: /src/nccl/src/ce_coll.cc:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - comm
    - coll
    - red
    - ty
    - winRegType
    argTypes:
    - struct ncclComm*
    - ncclFunc_t
    - int
    - ncclDataType_t
    - ncclSymRegType_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: ncclCeAvailable
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - ncclCeImplemented
    - TRACE
    - ncclTeamLsa
    linkageType: ''
    returnType: bool
    signature: bool ncclCeAvailable(struct ncclComm* comm, ncclFunc_t coll, int/*ncclDevRedOp_t*/
      red, ncclDataType_t ty, ncclSymRegType_t winRegType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/ce_coll.cc:131,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:141,1
    - Dst: ncclDevrGetLsaTeamPtrMC
      Src: /src/nccl/src/ce_coll.cc:141,1
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/ce_coll.cc:141,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:145,1
    - Dst: cuStreamWriteValue32
      Src: /src/nccl/src/ce_coll.cc:145,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:150,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/ce_coll.cc:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - comm
    - isComplete
    - batchParams
    - opIdx
    - stream
    argTypes:
    - struct ncclComm*
    - bool
    - CUstreamBatchMemOpParams*
    - size_t*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 172
    functionName: ncclPrepMCSync
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - cudaMemcpyAsync
    - cuStreamWriteValue32
    - CUCHECKGOTO
    - ncclTeamLsa
    - NCCLCHECKGOTO
    - ncclCudaGraphValid
    - ncclDevrGetLsaTeamPtrMC
    - CUDACHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclPrepMCSync(struct ncclComm* comm, bool isComplete,
      CUstreamBatchMemOpParams* batchParams, size_t* opIdx, cudaStream_t stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/ce_coll.cc:182,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:187,1
    - Dst: cuStreamWriteValue32
      Src: /src/nccl/src/ce_coll.cc:187,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:196,1
    - Dst: ncclDevrGetLsaRankPtr
      Src: /src/nccl/src/ce_coll.cc:196,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:197,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/ce_coll.cc:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - comm
    - isComplete
    - batchParams
    - opIdx
    - stream
    argTypes:
    - struct ncclComm*
    - bool
    - CUstreamBatchMemOpParams*
    - size_t*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 215
    functionName: ncclPrepUCSync
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - cudaMemcpyAsync
    - ncclDevrGetLsaRankPtr
    - cuStreamWriteValue32
    - CUCHECKGOTO
    - NCCLCHECKGOTO
    - ncclCudaGraphValid
    - CUDACHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclPrepUCSync(struct ncclComm* comm, bool isComplete,\n
      \                              CUstreamBatchMemOpParams* batchParams,\n                               size_t*
      opIdx, cudaStream_t stream)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:234,1
    - Dst: ncclProfilerStartCeSyncEvent
      Src: /src/nccl/src/ce_coll.cc:234,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:238,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ce_coll.cc:238,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:241,1
    - Dst: ncclPrepMCSync
      Src: /src/nccl/src/ce_coll.cc:241,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:243,1
    - Dst: ncclPrepUCSync
      Src: /src/nccl/src/ce_coll.cc:243,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/ce_coll.cc:247,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:259,1
    - Dst: ncclCuStreamBatchMemOp
      Src: /src/nccl/src/ce_coll.cc:259,1
    - Dst: ncclProfilerStopCeSyncEvent
      Src: /src/nccl/src/ce_coll.cc:266,1
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:267,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - comm
    - args
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 271
    functionName: ncclMemOpSync
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - ncclProfilerStartCeSyncEvent
    - ncclCalloc
    - ncclProfilerStopCeSyncEvent
    - free
    - ncclPrepUCSync
    - ncclCuStreamBatchMemOp
    - NCCLCHECKGOTO
    - ncclPrepMCSync
    - ncclCudaGraphValid
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclMemOpSync(struct ncclComm* comm, struct ncclCeCollArgs*
      args, cudaStream_t stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:284,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ce_coll.cc:284,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:285,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ce_coll.cc:285,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:286,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ce_coll.cc:286,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:288,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ce_coll.cc:288,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:289,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ce_coll.cc:289,1
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:305,1
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:307,1
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:309,1
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:312,1
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - params
    - nRanks
    argTypes:
    - struct ncclCeBatchOpsParams*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 318
    functionName: ncclCeInitBatchOpsParams
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - free
    - ncclCalloc
    - NCCLCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCeInitBatchOpsParams(struct ncclCeBatchOpsParams*
      params, int nRanks)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:321,1
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:323,1
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:325,1
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:330,1
    - Dst: free
      Src: /src/nccl/src/ce_coll.cc:332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - params
    argTypes:
    - struct ncclCeBatchOpsParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: ncclCeFreeBatchOpsParams
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ncclCeFreeBatchOpsParams(struct ncclCeBatchOpsParams* params)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:348,1
    - Dst: ncclCudaStreamIsLegacyNull
      Src: /src/nccl/src/ce_coll.cc:348,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:351,1
    - Dst: ncclProfilerStartCeBatchEvent
      Src: /src/nccl/src/ce_coll.cc:351,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/ce_coll.cc:358,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:360,1
    - Dst: ncclCudaDriverVersion
      Src: /src/nccl/src/ce_coll.cc:360,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:366,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/ce_coll.cc:366,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:374,1
    - Dst: ncclMemOpSync
      Src: /src/nccl/src/ce_coll.cc:374,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:379,1
    - Dst: ncclMemOpSync
      Src: /src/nccl/src/ce_coll.cc:379,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:415,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ce_coll.cc:415,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:416,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ce_coll.cc:416,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:417,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ce_coll.cc:417,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:440,1
    - Dst: cudaMemcpyBatchAsync
      Src: /src/nccl/src/ce_coll.cc:440,1
    - Dst: ncclUniqueArrayPtr::get
      Src: /src/nccl/src/ce_coll.cc:441,1
    - Dst: ncclUniqueArrayPtr::get
      Src: /src/nccl/src/ce_coll.cc:441,1
    - Dst: ncclUniqueArrayPtr::get
      Src: /src/nccl/src/ce_coll.cc:441,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:444,1
    - Dst: cudaMemcpyBatchAsync
      Src: /src/nccl/src/ce_coll.cc:444,1
    - Dst: ncclUniqueArrayPtr::get
      Src: /src/nccl/src/ce_coll.cc:445,1
    - Dst: ncclUniqueArrayPtr::get
      Src: /src/nccl/src/ce_coll.cc:445,1
    - Dst: ncclUniqueArrayPtr::get
      Src: /src/nccl/src/ce_coll.cc:445,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:452,1
    - Dst: cudaMemcpyBatchAsync
      Src: /src/nccl/src/ce_coll.cc:452,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:456,1
    - Dst: cudaMemcpyBatchAsync
      Src: /src/nccl/src/ce_coll.cc:456,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:465,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/ce_coll.cc:465,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:473,1
    - Dst: ncclMemOpSync
      Src: /src/nccl/src/ce_coll.cc:473,1
    - Dst: ncclProfilerStopCeBatchEvent
      Src: /src/nccl/src/ce_coll.cc:481,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 4
    argNames:
    - comm
    - args
    - params
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - struct ncclCeBatchOpsParams*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 338
    functionDepth: 6
    functionLinenumber: 338
    functionLinenumberEnd: 485
    functionName: ncclCeLaunchBatchOps
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - ncclCudaDriverVersion
    - cudaMemcpyAsync
    - ncclMemOpSync
    - ncclCalloc
    - cudaMemcpyBatchAsync
    - ncclProfilerStartCeBatchEvent
    - ncclCudaGraphValid
    - NCCLCHECKGOTO
    - ncclCudaStreamIsLegacyNull
    - ncclProfilerStopCeBatchEvent
    - CUDACHECKGOTO
    - ncclUniqueArrayPtr::get
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCeLaunchBatchOps(struct ncclComm* comm, struct ncclCeCollArgs*
      args,\n                                  struct ncclCeBatchOpsParams* params,
      cudaStream_t stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:498,1
    - Dst: ncclCeInitBatchOpsParams
      Src: /src/nccl/src/ce_coll.cc:498,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:501,1
    - Dst: ncclMemOpSync
      Src: /src/nccl/src/ce_coll.cc:501,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:515,1
    - Dst: ncclDevrGetLsaRankPtr
      Src: /src/nccl/src/ce_coll.cc:515,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:526,1
    - Dst: ncclCeLaunchBatchOps
      Src: /src/nccl/src/ce_coll.cc:526,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:530,1
    - Dst: ncclMemOpSync
      Src: /src/nccl/src/ce_coll.cc:530,1
    - Dst: ncclCeFreeBatchOpsParams
      Src: /src/nccl/src/ce_coll.cc:533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - comm
    - args
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 488
    functionDepth: 7
    functionLinenumber: 488
    functionLinenumberEnd: 537
    functionName: ncclCeAllGather
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - ncclMemOpSync
    - ncclDevrGetLsaRankPtr
    - ncclCeLaunchBatchOps
    - NCCLCHECKGOTO
    - ncclCeFreeBatchOpsParams
    - ncclCeInitBatchOpsParams
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCeAllGather(struct ncclComm* comm, struct ncclCeCollArgs*
      args,\n                             cudaStream_t stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:549,1
    - Dst: ncclCeInitBatchOpsParams
      Src: /src/nccl/src/ce_coll.cc:549,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:552,1
    - Dst: ncclMemOpSync
      Src: /src/nccl/src/ce_coll.cc:552,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:569,1
    - Dst: ncclDevrGetLsaRankPtr
      Src: /src/nccl/src/ce_coll.cc:569,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:581,1
    - Dst: ncclCeLaunchBatchOps
      Src: /src/nccl/src/ce_coll.cc:581,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:584,1
    - Dst: ncclMemOpSync
      Src: /src/nccl/src/ce_coll.cc:584,1
    - Dst: ncclCeFreeBatchOpsParams
      Src: /src/nccl/src/ce_coll.cc:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - comm
    - args
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 539
    functionDepth: 7
    functionLinenumber: 539
    functionLinenumberEnd: 591
    functionName: ncclCeAlltoAll
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - ncclMemOpSync
    - ncclDevrGetLsaRankPtr
    - ncclCeLaunchBatchOps
    - NCCLCHECKGOTO
    - ncclCeFreeBatchOpsParams
    - ncclCeInitBatchOpsParams
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCeAlltoAll(struct ncclComm* comm, struct ncclCeCollArgs*
      args, cudaStream_t stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:604,1
    - Dst: ncclCeInitBatchOpsParams
      Src: /src/nccl/src/ce_coll.cc:604,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:607,1
    - Dst: ncclMemOpSync
      Src: /src/nccl/src/ce_coll.cc:607,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:630,1
    - Dst: ncclDevrGetLsaRankPtr
      Src: /src/nccl/src/ce_coll.cc:630,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:640,1
    - Dst: ncclCeLaunchBatchOps
      Src: /src/nccl/src/ce_coll.cc:640,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:643,1
    - Dst: ncclMemOpSync
      Src: /src/nccl/src/ce_coll.cc:643,1
    - Dst: ncclCeFreeBatchOpsParams
      Src: /src/nccl/src/ce_coll.cc:646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - comm
    - args
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 593
    functionDepth: 7
    functionLinenumber: 593
    functionLinenumberEnd: 650
    functionName: ncclCeScatter
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - ncclMemOpSync
    - ncclDevrGetLsaRankPtr
    - ncclCeLaunchBatchOps
    - NCCLCHECKGOTO
    - ncclCeFreeBatchOpsParams
    - ncclCeInitBatchOpsParams
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCeScatter(struct ncclComm* comm, struct ncclCeCollArgs*
      args, cudaStream_t stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:663,1
    - Dst: ncclCeInitBatchOpsParams
      Src: /src/nccl/src/ce_coll.cc:663,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:666,1
    - Dst: ncclMemOpSync
      Src: /src/nccl/src/ce_coll.cc:666,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:681,1
    - Dst: ncclDevrGetLsaRankPtr
      Src: /src/nccl/src/ce_coll.cc:681,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:689,1
    - Dst: ncclCeLaunchBatchOps
      Src: /src/nccl/src/ce_coll.cc:689,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:692,1
    - Dst: ncclMemOpSync
      Src: /src/nccl/src/ce_coll.cc:692,1
    - Dst: ncclCeFreeBatchOpsParams
      Src: /src/nccl/src/ce_coll.cc:695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 3
    argNames:
    - comm
    - args
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 652
    functionDepth: 7
    functionLinenumber: 652
    functionLinenumberEnd: 699
    functionName: ncclCeGather
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 0
    functionsReached:
    - ncclMemOpSync
    - ncclDevrGetLsaRankPtr
    - ncclCeLaunchBatchOps
    - NCCLCHECKGOTO
    - ncclCeFreeBatchOpsParams
    - ncclCeInitBatchOpsParams
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCeGather(struct ncclComm* comm, struct ncclCeCollArgs*
      args, cudaStream_t stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:707,1
    - Dst: ncclProfilerStartCeCollEvent
      Src: /src/nccl/src/ce_coll.cc:707,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:712,1
    - Dst: ncclCeAllGather
      Src: /src/nccl/src/ce_coll.cc:712,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:716,1
    - Dst: ncclCeAlltoAll
      Src: /src/nccl/src/ce_coll.cc:716,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:720,1
    - Dst: ncclCeScatter
      Src: /src/nccl/src/ce_coll.cc:720,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ce_coll.cc:724,1
    - Dst: ncclCeGather
      Src: /src/nccl/src/ce_coll.cc:724,1
    - Dst: ncclProfilerStopCeCollEvent
      Src: /src/nccl/src/ce_coll.cc:733,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 701
    functionDepth: 8
    functionLinenumber: 701
    functionLinenumberEnd: 737
    functionName: ncclLaunchCeColl
    functionSourceFile: /src/nccl/src/ce_coll.cc
    functionUses: 1
    functionsReached:
    - ncclProfilerStartCeCollEvent
    - ncclCeScatter
    - ncclCeAllGather
    - NCCLCHECKGOTO
    - ncclProfilerStopCeCollEvent
    - ncclCeAlltoAll
    - ncclCeGather
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclLaunchCeColl(struct ncclComm* comm, struct ncclKernelPlan*
      plan)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/allocator.cc:31,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:33,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/allocator.cc:33,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:34,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/allocator.cc:34,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/allocator.cc:36,1
    - Dst: CUPFN
      Src: /src/nccl/src/allocator.cc:42,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/allocator.cc:42,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:51,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/allocator.cc:51,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:53,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/allocator.cc:53,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:54,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/src/allocator.cc:54,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/allocator.cc:55,1
    - Dst: CUPFN
      Src: /src/nccl/src/allocator.cc:60,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/allocator.cc:60,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:65,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/allocator.cc:65,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:68,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/allocator.cc:68,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:74,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/allocator.cc:74,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:77,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/allocator.cc:77,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:79,1
    - Dst: cuMemMap
      Src: /src/nccl/src/allocator.cc:79,1
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/allocator.cc:83,1
    - Dst: cudaDeviceCanAccessPeer
      Src: /src/nccl/src/allocator.cc:83,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:87,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/allocator.cc:87,1
    - Dst: INFO
      Src: /src/nccl/src/allocator.cc:89,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/allocator.cc:99,1
    - Dst: cudaMalloc
      Src: /src/nccl/src/allocator.cc:99,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 105
    functionName: ncclMemAlloc
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 1
    functionsReached:
    - CUPFN
    - cuDeviceGetAttribute
    - cuDeviceGet
    - CUDASUCCESS
    - cuMemSetAccess
    - CUDACHECK
    - cuMemGetAllocationGranularity
    - ncclCuMemEnable
    - cudaMalloc
    - CUCHECK
    - INFO
    - ncclCudaLibraryInit
    - cuMemAddressReserve
    - CUDACHECKGOTO
    - cudaGetDeviceCount
    - cudaGetDevice
    - cuMemCreate
    - cuMemMap
    - ALIGN_SIZE
    - cudaDeviceCanAccessPeer
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclMemAlloc(void **ptr, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:113,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/allocator.cc:113,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/allocator.cc:118,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/allocator.cc:120,1
    - Dst: cuPointerGetAttribute
      Src: /src/nccl/src/allocator.cc:120,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/allocator.cc:121,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/allocator.cc:121,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/allocator.cc:122,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/allocator.cc:123,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/allocator.cc:123,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/allocator.cc:129,1
    - Dst: cudaFree
      Src: /src/nccl/src/allocator.cc:129,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:132,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/allocator.cc:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 136
    functionName: ncclMemFree
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 2
    functionsReached:
    - cudaGetDevice
    - ncclCuMemFree
    - ncclCudaLibraryInit
    - ncclCuMemEnable
    - CUCHECKGOTO
    - cuPointerGetAttribute
    - cudaSetDevice
    - NCCLCHECKGOTO
    - CUDACHECK
    - CUDACHECKGOTO
    - cudaFree
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclMemFree(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/allocator.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct ncclSpace*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: ncclSpaceConstruct
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ncclSpaceConstruct(struct ncclSpace* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/allocator.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct ncclSpace*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: ncclSpaceDestruct
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ncclSpaceDestruct(struct ncclSpace* a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/src/allocator.cc:161,1
    - Dst: free
      Src: /src/nccl/src/allocator.cc:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - a
    - index
    - lo
    - hi
    argTypes:
    - struct ncclSpace*
    - int
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 200
    functionName: insertSegment
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 0
    functionsReached:
    - free
    - malloc
    linkageType: ''
    returnType: void
    signature: void insertSegment(struct ncclSpace* a, int index, int64_t lo, int64_t
      hi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alignUp
      Src: /src/nccl/src/allocator.cc:213,1
    - Dst: insertSegment
      Src: /src/nccl/src/allocator.cc:217,1
    - Dst: WARN
      Src: /src/nccl/src/allocator.cc:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - a
    - limit
    - size
    - align
    - outOffset
    argTypes:
    - struct ncclSpace*
    - int64_t
    - int64_t
    - int
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 227
    functionName: ncclSpaceAlloc
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 1
    functionsReached:
    - insertSegment
    - WARN
    - alignUp
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclSpaceAlloc(\n    struct ncclSpace* a, int64_t limit,
      int64_t size, int align,\n    int64_t* outOffset\n  )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/allocator.cc:231,1
    - Dst: WARN
      Src: /src/nccl/src/allocator.cc:243,1
    - Dst: insertSegment
      Src: /src/nccl/src/allocator.cc:253,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - a
    - offset
    - size
    argTypes:
    - struct ncclSpace*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 256
    functionName: ncclSpaceFree
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 2
    functionsReached:
    - insertSegment
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSpaceFree(struct ncclSpace* a, int64_t offset, int64_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct ncclShadowPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: ncclShadowPoolConstruct
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclShadowPoolConstruct(struct ncclShadowPool* pool)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:284,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/allocator.cc:284,1
    - Dst: cudaFreeAsync
      Src: /src/nccl/src/allocator.cc:298,1
    - Dst: free
      Src: /src/nccl/src/allocator.cc:301,1
    - Dst: free
      Src: /src/nccl/src/allocator.cc:306,1
    - Dst: cudaFreeAsync
      Src: /src/nccl/src/allocator.cc:309,1
    - Dst: free
      Src: /src/nccl/src/allocator.cc:311,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/allocator.cc:315,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/allocator.cc:316,1
    - Dst: cudaMemPoolDestroy
      Src: /src/nccl/src/allocator.cc:317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct ncclShadowPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 320
    functionName: ncclShadowPoolDestruct
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 1
    functionsReached:
    - cudaStreamDestroy
    - cudaStreamSynchronize
    - cudaStreamCreateWithFlags
    - free
    - cudaFreeAsync
    - CUDACHECK
    - cudaMemPoolDestroy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShadowPoolDestruct(struct ncclShadowPool* pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclHashPointer
      Src: /src/nccl/src/allocator.cc:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pool
    - obj
    argTypes:
    - struct ncclShadowPool*
    - struct ncclShadowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: hashInsert
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 0
    functionsReached:
    - ncclHashPointer
    linkageType: ''
    returnType: void
    signature: void hashInsert(struct ncclShadowPool* pool, struct ncclShadowObject*
      obj)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cudaGetDevice
      Src: /src/nccl/src/allocator.cc:344,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:345,1
    - Dst: cudaMemPoolCreate
      Src: /src/nccl/src/allocator.cc:345,1
    - Dst: malloc
      Src: /src/nccl/src/allocator.cc:348,1
    - Dst: malloc
      Src: /src/nccl/src/allocator.cc:355,1
    - Dst: hashInsert
      Src: /src/nccl/src/allocator.cc:363,1
    - Dst: free
      Src: /src/nccl/src/allocator.cc:368,1
    - Dst: std::max<int>
      Src: /src/nccl/src/allocator.cc:374,1
    - Dst: log2Down
      Src: /src/nccl/src/allocator.cc:374,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/allocator.cc:380,1
    - Dst: malloc
      Src: /src/nccl/src/allocator.cc:381,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:386,1
    - Dst: cudaMallocFromPoolAsync
      Src: /src/nccl/src/allocator.cc:386,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:387,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/src/allocator.cc:387,1
    - Dst: popFirstOneBit
      Src: /src/nccl/src/allocator.cc:391,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:400,1
    - Dst: cudaMallocFromPoolAsync
      Src: /src/nccl/src/allocator.cc:400,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:401,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/src/allocator.cc:401,1
    - Dst: malloc
      Src: /src/nccl/src/allocator.cc:404,1
    - Dst: alignUp
      Src: /src/nccl/src/allocator.cc:409,1
    - Dst: memset
      Src: /src/nccl/src/allocator.cc:410,1
    - Dst: hashInsert
      Src: /src/nccl/src/allocator.cc:411,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 5
    argNames:
    - pool
    - size
    - outDevObj
    - outHostObj
    - stream
    argTypes:
    - struct ncclShadowPool*
    - size_t
    - void**
    - void**
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 416
    functionName: ncclShadowPoolAlloc
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 3
    functionsReached:
    - cudaGetDevice
    - hashInsert
    - popFirstOneBit
    - alignUp
    - cudaMemsetAsync
    - cudaMemPoolCreate
    - free
    - std::max<int>
    - log2Down
    - memset
    - cudaMallocFromPoolAsync
    - CUDACHECK
    - malloc
    - std::min<size_t>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclShadowPoolAlloc(\n    struct ncclShadowPool* pool,
      size_t size, void** outDevObj, void** outHostObj,\n    cudaStream_t stream\n
      \ )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclHashPointer
      Src: /src/nccl/src/allocator.cc:421,1
    - Dst: WARN
      Src: /src/nccl/src/allocator.cc:425,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:441,1
    - Dst: cudaFreeAsync
      Src: /src/nccl/src/allocator.cc:441,1
    - Dst: free
      Src: /src/nccl/src/allocator.cc:443,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - pool
    - devObj
    - stream
    argTypes:
    - struct ncclShadowPool*
    - void*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 446
    functionName: ncclShadowPoolFree
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 4
    functionsReached:
    - free
    - ncclHashPointer
    - cudaFreeAsync
    - CUDACHECK
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShadowPoolFree(struct ncclShadowPool* pool, void*
      devObj, cudaStream_t stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclHashPointer
      Src: /src/nccl/src/allocator.cc:454,1
    - Dst: WARN
      Src: /src/nccl/src/allocator.cc:458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - pool
    - devObj
    - hostObj
    argTypes:
    - struct ncclShadowPool*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 466
    functionName: ncclShadowPoolToHost
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 6
    functionsReached:
    - WARN
    - ncclHashPointer
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShadowPoolToHost(struct ncclShadowPool* pool, void*
      devObj, void** hostObj)
  - 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_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: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: BOOTSTRAP_PID
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOOTSTRAP_PID(i, n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/bootstrap.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - root
    - n_ranks
    - nRoots
    - offset
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    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,int offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - rank
    - nRanks
    - nRoots
    - offset
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 71
    functionName: rootIdFromRank
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rootIdFromRank(int rank, int nRanks, int nRoots, int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - root
    - nRanks
    - nRoots
    - offset
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 80
    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, int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:86,1
    - Dst: firstRankFromRoot
      Src: /src/nccl/src/bootstrap.cc:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - rank
    - root
    - nRanks
    - nRoots
    - offset
    argTypes:
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 88
    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, int
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: firstRankFromRoot
      Src: /src/nccl/src/bootstrap.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rank
    - root
    - nRanks
    - nRoots
    - offset
    argTypes:
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 92
    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, int
      offset)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/bootstrap.cc:111,1
    - Dst: ncclSocketGetAddrFromString
      Src: /src/nccl/src/bootstrap.cc:115,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:116,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:119,1
    - Dst: ncclFindInterfaceMatchSubnet
      Src: /src/nccl/src/bootstrap.cc:119,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:122,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:126,1
    - Dst: ncclFindInterfaces
      Src: /src/nccl/src/bootstrap.cc:126,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:128,1
    - Dst: snprintf
      Src: /src/nccl/src/bootstrap.cc:133,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/bootstrap.cc:134,1
    - Dst: strlen
      Src: /src/nccl/src/bootstrap.cc:134,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 140
    functionName: bootstrapNetInit
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - ncclGetEnv
    - snprintf
    - INFO
    - strlen
    - ncclFindInterfaceMatchSubnet
    - ncclFindInterfaces
    - ncclSocketGetAddrFromString
    - WARN
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapNetInit()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/bootstrap.cc:148,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - flag
    - cntr
    argTypes:
    - uint32_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: checkAbort
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - COMPILER_ATOMIC_LOAD
    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:158,1
    - Dst: ncclNet_t*::regMr
      Src: /src/nccl/src/bootstrap.cc:158,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: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    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:162,1
    - Dst: ncclNet_t*::deregMr
      Src: /src/nccl/src/bootstrap.cc:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - net
    - comm
    - handle
    argTypes:
    - ncclNet_t*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    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:170,1
    - Dst: ncclNet_t*::isend
      Src: /src/nccl/src/bootstrap.cc:170,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:173,1
    - Dst: ncclNet_t*::test
      Src: /src/nccl/src/bootstrap.cc:173,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: 179
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: netIsend
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclNet_t*::test
    - ncclNet_t*::isend
    - NCCLCHECK
    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:185,1
    - Dst: ncclNet_t*::irecv
      Src: /src/nccl/src/bootstrap.cc:185,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:188,1
    - Dst: ncclNet_t*::test
      Src: /src/nccl/src/bootstrap.cc:188,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: 194
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: netIrecv
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclNet_t*::irecv
    - ncclNet_t*::test
    - NCCLCHECK
    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:201,1
    - Dst: checkAbort
      Src: /src/nccl/src/bootstrap.cc:201,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:203,1
    - Dst: netIrecv
      Src: /src/nccl/src/bootstrap.cc:203,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:206,1
    - Dst: netIsend
      Src: /src/nccl/src/bootstrap.cc:206,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: 210
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 210
    functionName: netSendRecv
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - netIrecv
    - checkAbort
    - netIsend
    - NCCLCHECK
    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:214,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/bootstrap.cc:214,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:216,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/bootstrap.cc:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sock
    - data
    - size
    argTypes:
    - struct ncclSocket*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: socketSend
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclSocketSend
    - NCCLCHECK
    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:221,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/bootstrap.cc:221,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:223,1
    - Dst: min
      Src: /src/nccl/src/bootstrap.cc:226,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:228,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/bootstrap.cc:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - sock
    - data
    - size
    argTypes:
    - struct ncclSocket*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 230
    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:234,1
    - Dst: ncclSocketSendRecv
      Src: /src/nccl/src/bootstrap.cc:234,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:236,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:239,1
    - Dst: ncclSocketSendRecv
      Src: /src/nccl/src/bootstrap.cc:239,1
    - Dst: min
      Src: /src/nccl/src/bootstrap.cc:239,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: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:246,1
    - Dst: ncclSocketSendRecv
      Src: /src/nccl/src/bootstrap.cc:246,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:247,1
    - Dst: ncclSocketSendRecv
      Src: /src/nccl/src/bootstrap.cc:247,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:249,1
    - Dst: min
      Src: /src/nccl/src/bootstrap.cc:252,1
    - Dst: min
      Src: /src/nccl/src/bootstrap.cc:253,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:254,1
    - Dst: ncclSocketMultiOp
      Src: /src/nccl/src/bootstrap.cc:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct ncclSocketOp[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 256
    functionName: socketDoubleSendRecv
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECK
    - min
    - ncclSocketMultiOp
    - WARN
    - ncclSocketSendRecv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketDoubleSendRecv(struct ncclSocketOp ops[4])
  - 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: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    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: 274
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 274
    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: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:278,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:278,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:279,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/bootstrap.cc:279,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:280,1
    - Dst: socketSend
      Src: /src/nccl/src/bootstrap.cc:280,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:281,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:281,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:284,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: 286
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 286
    functionName: rootSend
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclSocketConnect
    - ncclSocketInit
    - ncclSocketClose
    - socketSend
    - NCCLCHECKGOTO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rootSend(union ncclSocketAddress* addr, uint64_t magic,
      union ringConnectInfo* info)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:303,1
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:304,1
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:305,1
    - Dst: ncclOsSetFilesLimit
      Src: /src/nccl/src/bootstrap.cc:306,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:308,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:309,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:313,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:313,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:314,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/bootstrap.cc:314,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:315,1
    - Dst: socketRecv
      Src: /src/nccl/src/bootstrap.cc:315,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:316,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:316,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:319,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:320,1
    - Dst: nRankFromRoot
      Src: /src/nccl/src/bootstrap.cc:326,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:329,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:329,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:330,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:330,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:334,1
    - Dst: localIdFromRoot
      Src: /src/nccl/src/bootstrap.cc:339,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:341,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:344,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:345,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:346,1
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:352,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:353,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:354,1
    - Dst: rootSend
      Src: /src/nccl/src/bootstrap.cc:354,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:356,1
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:361,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:362,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:363,1
    - Dst: rootSend
      Src: /src/nccl/src/bootstrap.cc:363,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:365,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:368,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:370,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:371,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:374,1
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:378,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:379,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:380,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:381,1
    - Dst: rootSend
      Src: /src/nccl/src/bootstrap.cc:381,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:384,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:385,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:388,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:389,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:392,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:394,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:395,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:397,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 76
    argCount: 1
    argNames:
    - rargs
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 399
    functionName: bootstrapRoot
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - BOOTSTRAP_PROF_OPEN
    - memcpy
    - memcmp
    - NCCLCHECKGOTO
    - WARN
    - localIdFromRoot
    - rootSend
    - TRACE
    - ncclCalloc
    - free
    - socketRecv
    - BOOTSTRAP_PROF_CLOSE
    - ncclSocketClose
    - memset
    - ncclSocketAccept
    - ncclSocketInit
    - ncclOsSetFilesLimit
    - BOOTSTRAP_PID
    - nRankFromRoot
    linkageType: ''
    returnType: void
    signature: void * bootstrapRoot(void* rargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:407,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:407,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:408,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:408,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:409,1
    - Dst: ncclSocketListen
      Src: /src/nccl/src/bootstrap.cc:409,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:410,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/bootstrap.cc:410,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:412,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:412,1
    - Dst: std::thread
      Src: /src/nccl/src/bootstrap.cc:415,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/bootstrap.cc:416,1
    - Dst: std::thread::detach
      Src: /src/nccl/src/bootstrap.cc:417,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:421,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - handle
    - idFromEnv
    argTypes:
    - struct ncclBootstrapHandle*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 424
    functionName: bootstrapCreateRoot
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - std::thread
    - ncclSocketListen
    - ncclCalloc
    - ncclSocketInit
    - ncclSocketGetAddr
    - std::thread::detach
    - free
    - NCCLCHECKGOTO
    - ncclSetThreadName
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapCreateRoot(struct ncclBootstrapHandle* handle,
      bool idFromEnv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:427,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/bootstrap.cc:429,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:433,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:437,1
    - Dst: ncclSocketGetAddrFromString
      Src: /src/nccl/src/bootstrap.cc:438,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:439,1
    - Dst: hashCombine
      Src: /src/nccl/src/bootstrap.cc:446,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:448,1
    - Dst: getRandomData
      Src: /src/nccl/src/bootstrap.cc:448,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:451,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:452,1
    - Dst: bootstrapCreateRoot
      Src: /src/nccl/src/bootstrap.cc:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - handle
    - comm
    argTypes:
    - struct ncclBootstrapHandle*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 456
    functionName: bootstrapGetUniqueId
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 2
    functionsReached:
    - ncclGetEnv
    - hashCombine
    - INFO
    - memcpy
    - bootstrapCreateRoot
    - memset
    - getRandomData
    - ncclSocketGetAddrFromString
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapGetUniqueId(struct ncclBootstrapHandle* handle,
      struct ncclComm* comm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:460,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:467,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/bootstrap.cc:467,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:468,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/bootstrap.cc:468,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:470,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/bootstrap.cc:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - handle
    - parent
    - isRoot
    argTypes:
    - struct ncclBootstrapHandle*
    - struct ncclComm*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 474
    functionName: bcastGrowHandle
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 2
    functionsReached:
    - bootstrapRecv
    - WARN
    - bootstrapSend
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bcastGrowHandle(struct ncclBootstrapHandle* handle, struct
      ncclComm* parent, bool isRoot)
  - 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: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    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: 523
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 523
    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:527,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:527,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:528,1
    - Dst: ncclSocketListen
      Src: /src/nccl/src/bootstrap.cc:528,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:529,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/bootstrap.cc:529,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: 531
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 531
    functionName: createListenSocket
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclSocketListen
    - ncclSocketGetAddr
    - ncclSocketInit
    - NCCLCHECK
    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:534,1
    - Dst: getRandomData
      Src: /src/nccl/src/bootstrap.cc:534,1
    - Dst: getPidHash
      Src: /src/nccl/src/bootstrap.cc:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - peerUDS
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 537
    functionName: getUDS
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - getRandomData
    - getPidHash
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getUDS(uint64_t* peerUDS)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/bootstrap.cc:544,1
    - Dst: strlen
      Src: /src/nccl/src/bootstrap.cc:545,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:546,1
    - Dst: parseStringList
      Src: /src/nccl/src/bootstrap.cc:552,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:555,1
    - Dst: struct ncclComm*::ncclNet::devices
      Src: /src/nccl/src/bootstrap.cc:555,1
    - Dst: struct ncclComm*::ncclNet::getProperties
      Src: /src/nccl/src/bootstrap.cc:559,1
    - Dst: matchIfList
      Src: /src/nccl/src/bootstrap.cc:561,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:570,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:572,1
    - Dst: struct ncclComm*::ncclNet::getProperties
      Src: /src/nccl/src/bootstrap.cc:581,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:583,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - rank
    - comm
    - dev
    argTypes:
    - int
    - struct ncclComm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 588
    functionName: netGetDevice
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - matchIfList
    - ncclGetEnv
    - INFO
    - struct ncclComm*::ncclNet::devices
    - strlen
    - WARN
    - struct ncclComm*::ncclNet::getProperties
    - parseStringList
    - 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:596,1
    - Dst: checkAbort
      Src: /src/nccl/src/bootstrap.cc:596,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:598,1
    - Dst: ncclNet_t*::connect
      Src: /src/nccl/src/bootstrap.cc:598,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:600,1
    - Dst: ncclNet_t*::accept
      Src: /src/nccl/src/bootstrap.cc:600,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 9
    argNames:
    - ctx
    - net
    - listen
    - peerHandle
    - sendComm
    - sendDevHandle
    - recvComm
    - recvDevHandle
    - abortFlag
    argTypes:
    - void*
    - ncclNet_t*
    - struct bootstrapListen_t*
    - char[]
    - void**
    - ncclNetDeviceHandle_t**
    - void**
    - ncclNetDeviceHandle_t**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 603
    functionName: netRingConnect
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclNet_t*::accept
    - checkAbort
    - ncclNet_t*::connect
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t netRingConnect(void* ctx, 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:605,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:605,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:606,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/bootstrap.cc:606,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:607,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:607,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:608,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/bootstrap.cc:608,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: 610
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 610
    functionName: socketRingConnect
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclSocketConnect
    - ncclSocketInit
    - ncclSocketAccept
    - NCCLCHECK
    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:625,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:625,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:628,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:630,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:632,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:634,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:637,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/bootstrap.cc:637,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:642,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:644,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:646,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:648,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:652,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: 654
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 654
    functionName: ringAllInfo
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - memcpy
    - bootstrapAllGather
    - free
    - NCCLCHECKGOTO
    - 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:659,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:659,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:660,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/bootstrap.cc:660,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:661,1
    - Dst: socketSend
      Src: /src/nccl/src/bootstrap.cc:661,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:662,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:662,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:665,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: 667
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 667
    functionName: sendToRoot
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclSocketConnect
    - ncclSocketInit
    - ncclSocketClose
    - socketSend
    - NCCLCHECKGOTO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendToRoot(struct ncclBootstrapHandle* handle, struct
      ncclComm* comm, struct extInfo* info)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:689,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:689,1
    - Dst: BOOTSTRAP_HANDLE
      Src: /src/nccl/src/bootstrap.cc:700,1
    - Dst: hashCombine
      Src: /src/nccl/src/bootstrap.cc:702,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:704,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:708,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:710,1
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:715,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:716,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:717,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:719,1
    - Dst: netGetDevice
      Src: /src/nccl/src/bootstrap.cc:719,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:719,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:720,1
    - Dst: struct bootstrapState*::net::listen
      Src: /src/nccl/src/bootstrap.cc:720,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:720,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:720,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:720,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:721,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:721,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:724,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:724,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:724,1
    - Dst: BOOTSTRAP_HANDLE
      Src: /src/nccl/src/bootstrap.cc:735,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:737,1
    - Dst: rootIdFromRank
      Src: /src/nccl/src/bootstrap.cc:742,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:743,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:743,1
    - Dst: BOOTSTRAP_HANDLE
      Src: /src/nccl/src/bootstrap.cc:743,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:744,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:747,1
    - Dst: nRankFromRoot
      Src: /src/nccl/src/bootstrap.cc:748,1
    - Dst: ncclParamStaggerThreshold
      Src: /src/nccl/src/bootstrap.cc:749,1
    - Dst: ncclParamStaggerRate
      Src: /src/nccl/src/bootstrap.cc:751,1
    - Dst: localIdFromRoot
      Src: /src/nccl/src/bootstrap.cc:752,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:753,1
    - Dst: std::this_thread::sleep_for
      Src: /src/nccl/src/bootstrap.cc:754,1
    - Dst: std::chrono::microseconds
      Src: /src/nccl/src/bootstrap.cc:754,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:756,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:759,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:764,1
    - Dst: sendToRoot
      Src: /src/nccl/src/bootstrap.cc:764,1
    - Dst: BOOTSTRAP_HANDLE
      Src: /src/nccl/src/bootstrap.cc:764,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:767,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/bootstrap.cc:767,1
    - Dst: isFirstFromRoot
      Src: /src/nccl/src/bootstrap.cc:771,1
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:772,1
    - Dst: rootIdFromRank
      Src: /src/nccl/src/bootstrap.cc:773,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:777,1
    - Dst: sendToRoot
      Src: /src/nccl/src/bootstrap.cc:777,1
    - Dst: BOOTSTRAP_HANDLE
      Src: /src/nccl/src/bootstrap.cc:777,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:779,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:782,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:784,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:784,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:785,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/bootstrap.cc:785,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:786,1
    - Dst: socketRecv
      Src: /src/nccl/src/bootstrap.cc:786,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:787,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:787,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:788,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:788,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:792,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/bootstrap.cc:792,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:794,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:797,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:798,1
    - Dst: netRingConnect
      Src: /src/nccl/src/bootstrap.cc:798,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:799,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:799,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:800,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:800,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:802,1
    - Dst: socketRingConnect
      Src: /src/nccl/src/bootstrap.cc:802,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:802,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:802,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:802,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:807,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:807,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:808,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:808,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:809,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:809,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:811,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:811,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:812,1
    - Dst: getUDS
      Src: /src/nccl/src/bootstrap.cc:812,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:816,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:816,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:816,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:817,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:817,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:818,1
    - Dst: ncclParamRasEnable
      Src: /src/nccl/src/bootstrap.cc:821,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:823,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:823,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:824,1
    - Dst: ncclOsGetPid
      Src: /src/nccl/src/bootstrap.cc:825,1
    - Dst: getHostHash
      Src: /src/nccl/src/bootstrap.cc:828,1
    - Dst: getPidHash
      Src: /src/nccl/src/bootstrap.cc:829,1
    - Dst: ncclRasCommInit
      Src: /src/nccl/src/bootstrap.cc:830,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:831,1
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:834,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:839,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:840,1
    - Dst: ringAllInfo
      Src: /src/nccl/src/bootstrap.cc:840,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:841,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:844,1
    - Dst: ncclProxyInit
      Src: /src/nccl/src/bootstrap.cc:844,1
    - Dst: ncclParamRasEnable
      Src: /src/nccl/src/bootstrap.cc:846,1
    - Dst: ncclRasAddRanks
      Src: /src/nccl/src/bootstrap.cc:847,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:848,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:851,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:852,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:853,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:862,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 125
    argCount: 4
    argNames:
    - nHandles
    - handles
    - comm
    - parent
    argTypes:
    - int
    - void*
    - struct ncclComm*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 864
    functionName: bootstrapInit
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - STATE_LISTEN
    - std::this_thread::sleep_for
    - BOOTSTRAP_PROF_OPEN
    - socketRingConnect
    - memcpy
    - ncclParamStaggerRate
    - NCCLCHECKGOTO
    - WARN
    - localIdFromRoot
    - TRACE
    - netRingConnect
    - ncclCalloc
    - ncclRasCommInit
    - ringAllInfo
    - getPidHash
    - getUDS
    - ncclParamRasEnable
    - free
    - socketRecv
    - ncclRasAddRanks
    - netGetDevice
    - rootIdFromRank
    - hashCombine
    - INFO
    - BOOTSTRAP_PROF_CLOSE
    - ncclSocketClose
    - bootstrapRecv
    - ncclParamBootstrapNetEnable
    - memset
    - struct bootstrapState*::net::listen
    - ncclParamStaggerThreshold
    - BOOTSTRAP_HANDLE
    - createListenSocket
    - NCCLCHECK
    - ncclSocketAccept
    - ncclSocketInit
    - sendToRoot
    - getHostHash
    - ncclProxyInit
    - bootstrapSend
    - std::chrono::microseconds
    - isFirstFromRoot
    - BOOTSTRAP_PID
    - STATE_RING
    - ncclOsGetPid
    - nRankFromRoot
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapInit(int nHandles, void* handles, struct ncclComm*
      comm, struct ncclComm* parent)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:876,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:876,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:889,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:890,1
    - Dst: netGetDevice
      Src: /src/nccl/src/bootstrap.cc:890,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:890,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:891,1
    - Dst: struct bootstrapState*::net::listen
      Src: /src/nccl/src/bootstrap.cc:891,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:891,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:891,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:891,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:892,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:892,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:895,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:895,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:895,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:899,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:899,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:899,1
    - Dst: ncclParamRasEnable
      Src: /src/nccl/src/bootstrap.cc:901,1
    - Dst: ncclRasCommInit
      Src: /src/nccl/src/bootstrap.cc:902,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:903,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:907,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/bootstrap.cc:907,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:908,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/bootstrap.cc:908,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:909,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:910,1
    - Dst: netRingConnect
      Src: /src/nccl/src/bootstrap.cc:910,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:911,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:911,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:912,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:912,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:915,1
    - Dst: socketRingConnect
      Src: /src/nccl/src/bootstrap.cc:915,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:915,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:915,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:915,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:918,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:918,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:919,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:925,1
    - Dst: ringAllInfo
      Src: /src/nccl/src/bootstrap.cc:925,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:927,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:927,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:928,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:928,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:930,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:930,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:931,1
    - Dst: getUDS
      Src: /src/nccl/src/bootstrap.cc:931,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:932,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:932,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:933,1
    - Dst: ringAllInfo
      Src: /src/nccl/src/bootstrap.cc:933,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:934,1
    - Dst: ncclProxyInit
      Src: /src/nccl/src/bootstrap.cc:934,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:937,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:943,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: 945
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 945
    functionName: bootstrapSplit
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - STATE_LISTEN
    - socketRingConnect
    - memcpy
    - NCCLCHECKGOTO
    - netRingConnect
    - ncclRasCommInit
    - ncclCalloc
    - TRACE
    - ringAllInfo
    - getUDS
    - ncclParamRasEnable
    - free
    - netGetDevice
    - INFO
    - bootstrapRecv
    - ncclParamBootstrapNetEnable
    - struct bootstrapState*::net::listen
    - createListenSocket
    - NCCLCHECK
    - ncclProxyInit
    - bootstrapSend
    - STATE_RING
    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:956,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:956,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:957,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/bootstrap.cc:957,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:958,1
    - Dst: socketSend
      Src: /src/nccl/src/bootstrap.cc:958,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:961,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: 963
      start: 951
    functionDepth: 2
    functionLinenumber: 951
    functionLinenumberEnd: 963
    functionName: socketConnect
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclSocketConnect
    - ncclSocketInit
    - ncclSocketClose
    - socketSend
    - NCCLCHECKGOTO
    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:967,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:968,1
    - Dst: socketConnect
      Src: /src/nccl/src/bootstrap.cc:968,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:969,1
    - Dst: socketSend
      Src: /src/nccl/src/bootstrap.cc:969,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:970,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:971,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:971,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:974,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: 976
      start: 964
    functionDepth: 3
    functionLinenumber: 964
    functionLinenumberEnd: 976
    functionName: bootstrapSend
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 4
    functionsReached:
    - TRACE
    - ncclSocketClose
    - socketSend
    - socketConnect
    - NCCLCHECKGOTO
    - 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:981,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:981,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:984,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: 995
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 995
    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:1008,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:1009,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - state
    - peer
    - tag
    - sock
    - found
    argTypes:
    - struct bootstrapState*
    - int
    - int
    - struct ncclSocket*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1017
    functionName: unexpectedDequeue
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - free
    - memcpy
    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:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct bootstrapState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1029
    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:1038,1
    - Dst: unexpectedDequeue
      Src: /src/nccl/src/bootstrap.cc:1038,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1044,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:1044,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1045,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/bootstrap.cc:1045,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:1045,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1046,1
    - Dst: socketRecv
      Src: /src/nccl/src/bootstrap.cc:1046,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1050,1
    - Dst: unexpectedEnqueue
      Src: /src/nccl/src/bootstrap.cc:1050,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1054,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - commState
    - peer
    - tag
    - sock
    argTypes:
    - void*
    - int
    - int
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1032
    functionDepth: 2
    functionLinenumber: 1032
    functionLinenumberEnd: 1056
    functionName: socketAccept
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - STATE_LISTEN
    - ncclSocketAccept
    - ncclSocketInit
    - ncclSocketClose
    - unexpectedDequeue
    - unexpectedEnqueue
    - socketRecv
    - NCCLCHECKGOTO
    - 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:1061,1
    - Dst: socketAccept
      Src: /src/nccl/src/bootstrap.cc:1061,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1062,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1063,1
    - Dst: socketRecv
      Src: /src/nccl/src/bootstrap.cc:1063,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1064,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1064,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1067,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: 1069
      start: 1058
    functionDepth: 3
    functionLinenumber: 1058
    functionLinenumberEnd: 1069
    functionName: bootstrapRecv
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 4
    functionsReached:
    - socketAccept
    - TRACE
    - ncclSocketClose
    - socketRecv
    - NCCLCHECKGOTO
    - 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:1076,1
    - Dst: netReg
      Src: /src/nccl/src/bootstrap.cc:1076,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1077,1
    - Dst: netReg
      Src: /src/nccl/src/bootstrap.cc:1077,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1082,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1083,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1090,1
    - Dst: netSendRecv
      Src: /src/nccl/src/bootstrap.cc:1090,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1092,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1093,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1096,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1097,1
    - Dst: netDereg
      Src: /src/nccl/src/bootstrap.cc:1100,1
    - Dst: netDereg
      Src: /src/nccl/src/bootstrap.cc:1101,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: 1103
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1103
    functionName: netRingAllGather
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - netDereg
    - BOOTSTRAP_PROF_CLOSE
    - netSendRecv
    - BOOTSTRAP_PROF_OPEN
    - NCCLCHECKGOTO
    - netReg
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1111,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1113,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1114,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1126,1
    - Dst: socketSendRecv
      Src: /src/nccl/src/bootstrap.cc:1126,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1135,1
    - Dst: socketDoubleSendRecv
      Src: /src/nccl/src/bootstrap.cc:1135,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1138,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1139,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1142,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 6
    argNames:
    - nextSock
    - prevSock
    - rank
    - nranks
    - data
    - size
    argTypes:
    - struct ncclSocket*
    - struct ncclSocket*
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1104
    functionDepth: 2
    functionLinenumber: 1104
    functionLinenumberEnd: 1146
    functionName: socketRingAllGather
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - socketDoubleSendRecv
    - socketSendRecv
    - BOOTSTRAP_PROF_CLOSE
    - BOOTSTRAP_PROF_OPEN
    - NCCLCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketRingAllGather(struct ncclSocket* nextSock, struct
      ncclSocket* prevSock, int rank, int nranks, char* data, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1153,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1156,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:1157,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1158,1
    - Dst: netRingAllGather
      Src: /src/nccl/src/bootstrap.cc:1158,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1158,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1158,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1160,1
    - Dst: socketRingAllGather
      Src: /src/nccl/src/bootstrap.cc:1160,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1160,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1160,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1163,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1164,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - commState
    - allData
    - size
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1147
    functionDepth: 3
    functionLinenumber: 1147
    functionLinenumberEnd: 1167
    functionName: bootstrapAllGather
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 6
    functionsReached:
    - TRACE
    - BOOTSTRAP_PROF_CLOSE
    - BOOTSTRAP_PROF_OPEN
    - ncclParamBootstrapNetEnable
    - netRingAllGather
    - NCCLCHECKGOTO
    - STATE_RING
    - socketRingAllGather
    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:1181,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/bootstrap.cc:1181,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1182,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/bootstrap.cc:1182,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: 1185
      start: 1169
    functionDepth: 4
    functionLinenumber: 1169
    functionLinenumberEnd: 1185
    functionName: bootstrapP2PBarrier
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - bootstrapRecv
    - bootstrapSend
    - NCCLCHECK
    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:1189,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1190,1
    - Dst: bootstrapP2PBarrier
      Src: /src/nccl/src/bootstrap.cc:1190,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1191,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1192,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: 1194
      start: 1187
    functionDepth: 5
    functionLinenumber: 1187
    functionLinenumberEnd: 1194
    functionName: bootstrapIntraNodeBarrier
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 2
    functionsReached:
    - TRACE
    - BOOTSTRAP_PROF_CLOSE
    - BOOTSTRAP_PROF_OPEN
    - bootstrapP2PBarrier
    - 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:1198,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1199,1
    - Dst: bootstrapP2PBarrier
      Src: /src/nccl/src/bootstrap.cc:1199,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1200,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - commState
    - rank
    - nranks
    - tag
    argTypes:
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1196
    functionDepth: 5
    functionLinenumber: 1196
    functionLinenumberEnd: 1203
    functionName: bootstrapBarrier
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 4
    functionsReached:
    - TRACE
    - BOOTSTRAP_PROF_CLOSE
    - BOOTSTRAP_PROF_OPEN
    - bootstrapP2PBarrier
    - 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:1207,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1213,1
    - Dst: socketConnect
      Src: /src/nccl/src/bootstrap.cc:1213,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1214,1
    - Dst: socketAccept
      Src: /src/nccl/src/bootstrap.cc:1214,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1216,1
    - Dst: socketRingAllGather
      Src: /src/nccl/src/bootstrap.cc:1216,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1218,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1218,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1219,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1219,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1221,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: 1223
      start: 1205
    functionDepth: 3
    functionLinenumber: 1205
    functionLinenumberEnd: 1223
    functionName: bootstrapIntraNodeAllGather
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - socketAccept
    - TRACE
    - ncclSocketClose
    - socketConnect
    - socketRingAllGather
    - 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:1230,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/bootstrap.cc:1230,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1233,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/bootstrap.cc:1233,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: 1236
      start: 1226
    functionDepth: 4
    functionLinenumber: 1226
    functionLinenumberEnd: 1236
    functionName: bootstrapP2PBroadcast
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - bootstrapRecv
    - bootstrapSend
    - NCCLCHECK
    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:1240,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1241,1
    - Dst: bootstrapP2PBroadcast
      Src: /src/nccl/src/bootstrap.cc:1241,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1242,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1243,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: 1245
      start: 1238
    functionDepth: 5
    functionLinenumber: 1238
    functionLinenumberEnd: 1245
    functionName: bootstrapIntraNodeBroadcast
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - TRACE
    - BOOTSTRAP_PROF_CLOSE
    - NCCLCHECK
    - BOOTSTRAP_PROF_OPEN
    - bootstrapP2PBroadcast
    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:1248,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1249,1
    - Dst: bootstrapP2PBroadcast
      Src: /src/nccl/src/bootstrap.cc:1249,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1250,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1251,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: 1253
      start: 1246
    functionDepth: 5
    functionLinenumber: 1246
    functionLinenumberEnd: 1253
    functionName: bootstrapBroadcast
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - BOOTSTRAP_PROF_CLOSE
    - NCCLCHECK
    - BOOTSTRAP_PROF_OPEN
    - bootstrapP2PBroadcast
    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:1261,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/bootstrap.cc:1262,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:1263,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:1267,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1268,1
    - Dst: struct bootstrapState*::net::closeSend
      Src: /src/nccl/src/bootstrap.cc:1268,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1268,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1269,1
    - Dst: struct bootstrapState*::net::closeRecv
      Src: /src/nccl/src/bootstrap.cc:1269,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1269,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1270,1
    - Dst: struct bootstrapState*::net::closeListen
      Src: /src/nccl/src/bootstrap.cc:1270,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:1270,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1272,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1272,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1272,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1273,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1273,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1273,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1274,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1274,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:1274,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1277,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1277,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:1277,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:1280,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:1281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - commState
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1283
    functionName: bootstrapClose
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - unexpectedFree
    - STATE_LISTEN
    - struct bootstrapState*::net::closeSend
    - ncclSocketClose
    - struct bootstrapState*::net::closeListen
    - struct bootstrapState*::net::closeRecv
    - ncclParamBootstrapNetEnable
    - free
    - COMPILER_ATOMIC_LOAD
    - STATE_RING
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapClose(void* commState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:1290,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:1291,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1292,1
    - Dst: bootstrapClose
      Src: /src/nccl/src/bootstrap.cc:1292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - commState
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1285
    functionDepth: 2
    functionLinenumber: 1285
    functionLinenumberEnd: 1294
    functionName: bootstrapAbort
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - free
    - bootstrapClose
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapAbort(void* commState)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:25,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/channel.cc:25,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:25,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:32,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/channel.cc:32,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/channel.cc:34,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/channel.cc:37,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:43,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/channel.cc:43,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:46,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/channel.cc:46,1
    - Dst: ncclCommPushCudaFree
      Src: /src/nccl/src/channel.cc:47,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:48,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/channel.cc:48,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:51,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/channel.cc:51,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/channel.cc:56,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/channel.cc:57,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:58,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/channel.cc:58,1
    - Dst: ncclCommPushCudaFree
      Src: /src/nccl/src/channel.cc:59,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:62,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/channel.cc:62,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:62,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:63,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/channel.cc:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - comm
    - channelId
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 65
    functionName: initChannel
    functionSourceFile: /src/nccl/src/channel.cc
    functionUses: 1
    functionsReached:
    - ncclCudaGraphNone
    - ncclCommPushCudaFree
    - ncclCalloc
    - ncclStrongStreamSynchronize
    - ncclStrongStreamAcquire
    - ncclCudaCallocAsync
    - ncclAtomicRefCountIncrement
    - ncclCudaMemcpyAsync
    - ncclMemoryStackAlloc
    - ncclStrongStreamRelease
    - NCCLCHECK
    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:76,1
    - Dst: initChannel
      Src: /src/nccl/src/channel.cc:76,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:78,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/channel.cc:78,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:78,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:89,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/channel.cc:89,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/channel.cc:91,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:94,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/channel.cc:94,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:95,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/channel.cc:95,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:99,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/channel.cc:99,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/channel.cc:101,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:105,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/channel.cc:105,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:105,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:106,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/channel.cc:106,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: 109
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 109
    functionName: initNvlsChannel
    functionSourceFile: /src/nccl/src/channel.cc
    functionUses: 0
    functionsReached:
    - ncclCudaGraphNone
    - ncclStrongStreamSynchronize
    - ncclCalloc
    - ncclStrongStreamAcquire
    - ncclCudaCallocAsync
    - initChannel
    - ncclAtomicRefCountIncrement
    - ncclCudaMemcpyAsync
    - ncclStrongStreamRelease
    - NCCLCHECK
    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:121,1
    - Dst: initChannel
      Src: /src/nccl/src/channel.cc:121,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:123,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/channel.cc:123,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:123,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:130,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/channel.cc:130,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/channel.cc:132,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:134,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/channel.cc:134,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:135,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/channel.cc:135,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:138,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/channel.cc:138,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/channel.cc:140,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:143,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/channel.cc:143,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:143,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:144,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/channel.cc:144,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: 147
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 147
    functionName: initCollnetChannel
    functionSourceFile: /src/nccl/src/channel.cc
    functionUses: 0
    functionsReached:
    - ncclCudaGraphNone
    - ncclStrongStreamSynchronize
    - ncclCalloc
    - ncclStrongStreamAcquire
    - ncclCudaCallocAsync
    - initChannel
    - ncclAtomicRefCountIncrement
    - ncclCudaMemcpyAsync
    - ncclStrongStreamRelease
    - NCCLCHECK
    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:161,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:163,1
    - Dst: transportComm::free
      Src: /src/nccl/src/channel.cc:163,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:164,1
    - Dst: transportComm::free
      Src: /src/nccl/src/channel.cc:164,1
    - Dst: free
      Src: /src/nccl/src/channel.cc:167,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/channel.cc:168,1
    - Dst: free
      Src: /src/nccl/src/channel.cc:170,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/channel.cc:171,1
    - Dst: free
      Src: /src/nccl/src/channel.cc:177,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - channel
    - nRanks
    - collnetNRanks
    - nvlsNRanks
    - comm
    argTypes:
    - struct ncclChannel*
    - int
    - int
    - int
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 179
    functionName: freeChannel
    functionSourceFile: /src/nccl/src/channel.cc
    functionUses: 1
    functionsReached:
    - transportComm::free
    - ncclAtomicRefCountDecrement
    - ncclCudaFree
    - free
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t freeChannel(struct ncclChannel* channel, int nRanks, int
      collnetNRanks, int nvlsNRanks, struct ncclComm* comm)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/mnnvl.cc:16,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/mnnvl.cc:22,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/mnnvl.cc:22,1
    - Dst: CUCHECK
      Src: /src/nccl/src/mnnvl.cc:23,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/mnnvl.cc:23,1
    - Dst: CUPFN
      Src: /src/nccl/src/mnnvl.cc:25,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/mnnvl.cc:25,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mnnvl.cc:33,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/mnnvl.cc:33,1
    - Dst: memcpy
      Src: /src/nccl/src/mnnvl.cc:43,1
    - Dst: memcpy
      Src: /src/nccl/src/mnnvl.cc:44,1
    - Dst: memcmp
      Src: /src/nccl/src/mnnvl.cc:47,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/mnnvl.cc:70,1
    - Dst: WARN
      Src: /src/nccl/src/mnnvl.cc:73,1
    - Dst: CUPFN
      Src: /src/nccl/src/mnnvl.cc:77,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/mnnvl.cc:77,1
    - Dst: CUPFN
      Src: /src/nccl/src/mnnvl.cc:79,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/mnnvl.cc:79,1
    - Dst: pfn_cuGetErrorString
      Src: /src/nccl/src/mnnvl.cc:81,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mnnvl.cc:82,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/mnnvl.cc:82,1
    - Dst: WARN
      Src: /src/nccl/src/mnnvl.cc:84,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mnnvl.cc:88,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/mnnvl.cc:88,1
    - Dst: INFO
      Src: /src/nccl/src/mnnvl.cc:93,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 97
    functionName: ncclMnnvlCheck
    functionSourceFile: /src/nccl/src/mnnvl.cc
    functionUses: 1
    functionsReached:
    - CUPFN
    - ncclCalloc
    - cudaGetDevice
    - ncclCuMemFree
    - INFO
    - ncclCuMemEnable
    - ncclCuMemAlloc
    - memcpy
    - pfn_cuGetErrorString
    - memcmp
    - cuDeviceGetAttribute
    - cuDeviceGet
    - CUDACHECK
    - WARN
    - cuMemExportToShareableHandle
    - CUCHECK
    - cuMemImportFromShareableHandle
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclMnnvlCheck(struct ncclComm* comm)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamL1SharedMemoryCarveout
      Src: /src/nccl/src/enqueue.cc:38,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:41,1
    - Dst: ncclCudaDriverVersion
      Src: /src/nccl/src/enqueue.cc:41,1
    - Dst: INFO
      Src: /src/nccl/src/enqueue.cc:49,1
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/enqueue.cc:57,1
    - Dst: cudaFuncGetAttributes
      Src: /src/nccl/src/enqueue.cc:57,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:63,1
    - Dst: cudaFuncSetAttribute
      Src: /src/nccl/src/enqueue.cc:63,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:72,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:74,1
    - Dst: cudaFuncSetAttribute
      Src: /src/nccl/src/enqueue.cc:74,1
    - Dst: ncclShmemDynamicSize
      Src: /src/nccl/src/enqueue.cc:82,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:83,1
    - Dst: ncclShmemDynamicSize
      Src: /src/nccl/src/enqueue.cc:84,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - cudaArch
    - maxSharedMem
    - maxStackSize
    argTypes:
    - int
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 88
    functionName: ncclInitKernelsForDevice
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - ncclCudaDriverVersion
    - INFO
    - cudaFuncSetAttribute
    - ncclShmemDynamicSize
    - min
    - CUDASUCCESS
    - ncclParamL1SharedMemoryCarveout
    - cudaFuncGetAttributes
    - CUDACHECKGOTO
    - WARN
    - NCCLCHECK
    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: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    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:108,1
    - Dst: ncclProxySaveOp
      Src: /src/nccl/src/enqueue.cc:108,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:110,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:112,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: 115
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: ncclAddProxyOpIfNeeded
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclMemoryPoolAlloc
    - ncclProxySaveOp
    - ncclIntruQueueEnqueue
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclAddProxyOpIfNeeded(struct ncclComm* comm, struct ncclKernelPlan*
      plan, struct ncclProxyOp* op)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclDevWorkSize
      Src: /src/nccl/src/enqueue.cc:124,1
    - Dst: ncclParamP2pEpochEnable
      Src: /src/nccl/src/enqueue.cc:139,1
    - Dst: ncclMaxDevWorkBatchBytes
      Src: /src/nccl/src/enqueue.cc:151,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/enqueue.cc:163,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 9
    argNames:
    - comm
    - plan
    - channelId
    - workType
    - devFuncId
    - workOffset
    - p2pEpoch
    - p2pRound
    - newBatch
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - int
    - enum ncclDevWorkType
    - int
    - uint32_t
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 199
    functionName: ncclAddWorkBatchToPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclParamP2pEpochEnable
    - ncclMaxDevWorkBatchBytes
    - ncclDevWorkSize
    - ncclMemoryStackAlloc
    linkageType: ''
    returnType: void
    signature: "void ncclAddWorkBatchToPlan(\n    struct ncclComm* comm, struct ncclKernelPlan*
      plan, int channelId,\n    enum ncclDevWorkType workType, int devFuncId, uint32_t
      workOffset,\n    int p2pEpoch, int p2pRound, bool newBatch\n  )"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:207,1
    - Dst: alignUp
      Src: /src/nccl/src/enqueue.cc:215,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/enqueue.cc:216,1
    - Dst: popFirstOneBit
      Src: /src/nccl/src/enqueue.cc:231,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:232,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:233,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:240,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:252,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:269,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:270,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:273,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 275
    functionName: finishPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclIntruQueueEmpty
    - popFirstOneBit
    - std::max
    - ncclIntruQueueHead
    - alignUp
    - ncclMemoryStackAlloc
    - ncclIntruQueueDequeue
    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: 297
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: ncclTestBudget
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool ncclTestBudget(\n    struct ncclKernelPlanBudget* budget, int
      nWorkBatches, ssize_t workBytes\n  )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:302,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:312,1
    - Dst: ncclRegisterCollBuffers
      Src: /src/nccl/src/enqueue.cc:315,1
    - Dst: ncclProfilerPluginLoaded
      Src: /src/nccl/src/enqueue.cc:330,1
    - Dst: ncclMemoryStackAllocInlineArray
      Src: /src/nccl/src/enqueue.cc:342,1
    - Dst: memcpy
      Src: /src/nccl/src/enqueue.cc:345,1
    - Dst: ncclMemoryStackAllocInlineArray
      Src: /src/nccl/src/enqueue.cc:347,1
    - Dst: memcpy
      Src: /src/nccl/src/enqueue.cc:350,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:353,1
    - Dst: assert
      Src: /src/nccl/src/enqueue.cc:356,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:356,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts:
    - condition: (ncclIntruQueueEmpty(&planner->tmpCollWorkQueue))
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/nccl/src/enqueue.cc
    constantsTouched: []
    func_position:
      end: 358
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 358
    functionName: ncclTasksRegAndEnqueue
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - ncclProfilerPluginLoaded
    - ncclIntruQueueEnqueue
    - ncclIntruQueueEmpty
    - ncclIntruQueueHead
    - memcpy
    - assert
    - ncclMemoryStackAllocInlineArray
    - ncclIntruQueueDequeue
    - ncclRegisterCollBuffers
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTasksRegAndEnqueue(struct ncclComm* comm)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:364,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:368,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:369,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:370,1
    - Dst: ncclFuncTrafficPerByte
      Src: /src/nccl/src/enqueue.cc:377,1
    - Dst: ncclTaskCollSorterInsert
      Src: /src/nccl/src/enqueue.cc:380,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:382,1
    - Dst: ncclTaskCollSorterDequeueAll
      Src: /src/nccl/src/enqueue.cc:390,1
    - Dst: memset
      Src: /src/nccl/src/enqueue.cc:393,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:399,1
    - Dst: ncclMakeSymmetricTaskList
      Src: /src/nccl/src/enqueue.cc:399,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:421,1
    - Dst: ncclGetCollNetSupport
      Src: /src/nccl/src/enqueue.cc:421,1
    - Dst: ncclNvlsSupported
      Src: /src/nccl/src/enqueue.cc:422,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:426,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:437,1
    - Dst: ncclGetAlgoInfo
      Src: /src/nccl/src/enqueue.cc:437,1
    - Dst: ncclDevFuncId
      Src: /src/nccl/src/enqueue.cc:438,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:463,1
    - Dst: ncclIntruQueueTransfer
      Src: /src/nccl/src/enqueue.cc:474,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:483,1
    - Dst: ncclRegisterCollNvlsBuffers
      Src: /src/nccl/src/enqueue.cc:489,1
    - Dst: ncclProfilerPluginLoaded
      Src: /src/nccl/src/enqueue.cc:517,1
    - Dst: ncclMemoryStackAllocInlineArray
      Src: /src/nccl/src/enqueue.cc:530,1
    - Dst: memcpy
      Src: /src/nccl/src/enqueue.cc:533,1
    - Dst: ncclMemoryStackAllocInlineArray
      Src: /src/nccl/src/enqueue.cc:535,1
    - Dst: memcpy
      Src: /src/nccl/src/enqueue.cc:538,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:541,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:549,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 135
    argCount: 4
    argNames:
    - comm
    - algoNeedConnect
    - needConnect
    - simInfo
    argTypes:
    - struct ncclComm*
    - bool*
    - bool*
    - ncclSimInfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 562
    functionName: ncclPrepareTasks
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 2
    functionsReached:
    - ncclProfilerPluginLoaded
    - ncclIntruQueueEmpty
    - ncclTaskCollSorterInsert
    - divUp
    - memcpy
    - ncclMemoryStackAllocInlineArray
    - ncclGetCollNetSupport
    - ncclCudaGraphValid
    - ncclIntruQueueEnqueue
    - ncclMakeSymmetricTaskList
    - ncclFuncTrafficPerByte
    - ncclTaskCollSorterDequeueAll
    - ncclIntruQueueHead
    - ncclIntruQueueDequeue
    - ncclGetAlgoInfo
    - ncclMemoryPoolFree
    - ncclMemoryPoolAlloc
    - memset
    - ncclRegisterCollNvlsBuffers
    - ncclNvlsSupported
    - ncclIntruQueueTransfer
    - NCCLCHECK
    - ncclDevFuncId
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclPrepareTasks(struct ncclComm* comm, bool* algoNeedConnect,
      bool* needConnect, ncclSimInfo_t* simInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclAddProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:567,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: 570
      start: 564
    functionDepth: 5
    functionLinenumber: 564
    functionLinenumberEnd: 570
    functionName: addProfilerProxyOpIfNeeded
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclAddProxyOpIfNeeded
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t addProfilerProxyOpIfNeeded(struct ncclComm* comm, struct
      ncclKernelPlan* plan, struct ncclProxyOp* op)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:581,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:585,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:586,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:588,1
    - Dst: ncclTestBudget
      Src: /src/nccl/src/enqueue.cc:589,1
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:594,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:596,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:607,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:608,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:609,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:611,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:615,1
    - Dst: ncclTestBudget
      Src: /src/nccl/src/enqueue.cc:624,1
    - Dst: ncclFuncMaxSendRecvCount
      Src: /src/nccl/src/enqueue.cc:628,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:631,1
    - Dst: calcCollChunking
      Src: /src/nccl/src/enqueue.cc:631,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:635,1
    - Dst: ncclAddWorkBatchToPlan
      Src: /src/nccl/src/enqueue.cc:646,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:648,1
    - Dst: ncclAddProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:648,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:649,1
    - Dst: addProfilerProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:649,1
    - Dst: ncclFuncTrafficPerByte
      Src: /src/nccl/src/enqueue.cc:652,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:654,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:654,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:656,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:659,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:659,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:664,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:664,1
    - Dst: ncclTestBudget
      Src: /src/nccl/src/enqueue.cc:694,1
    - Dst: ncclFuncMaxSendRecvCount
      Src: /src/nccl/src/enqueue.cc:706,1
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/enqueue.cc:710,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:712,1
    - Dst: calcCollChunking
      Src: /src/nccl/src/enqueue.cc:712,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:716,1
    - Dst: calcCollChunking
      Src: /src/nccl/src/enqueue.cc:716,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:720,1
    - Dst: calcCollChunking
      Src: /src/nccl/src/enqueue.cc:720,1
    - Dst: RingAGAlgorithm::RingAGAlgorithm
      Src: /src/nccl/src/enqueue.cc:764,1
    - Dst: RingARAlgorithm::RingARAlgorithm
      Src: /src/nccl/src/enqueue.cc:766,1
    - Dst: RingBCAlgorithm::RingBCAlgorithm
      Src: /src/nccl/src/enqueue.cc:768,1
    - Dst: struct ncclProxyOp*::ringAlgo::incRefCount
      Src: /src/nccl/src/enqueue.cc:770,1
    - Dst: ncclAddWorkBatchToPlan
      Src: /src/nccl/src/enqueue.cc:775,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:779,1
    - Dst: ncclAddProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:779,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:780,1
    - Dst: addProfilerProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:780,1
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:785,1
    - Dst: INFO
      Src: /src/nccl/src/enqueue.cc:794,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/enqueue.cc:795,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:795,1
    - Dst: ncclAlgoToString
      Src: /src/nccl/src/enqueue.cc:795,1
    - Dst: ncclProtoToString
      Src: /src/nccl/src/enqueue.cc:796,1
    - Dst: TRACE
      Src: /src/nccl/src/enqueue.cc:799,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/enqueue.cc:800,1
    - Dst: ncclDevRedOpToString
      Src: /src/nccl/src/enqueue.cc:800,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/enqueue.cc:801,1
    - Dst: ncclAlgoToString
      Src: /src/nccl/src/enqueue.cc:801,1
    - Dst: ncclProtoToString
      Src: /src/nccl/src/enqueue.cc:802,1
    - Dst: TRACE
      Src: /src/nccl/src/enqueue.cc:806,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/enqueue.cc:807,1
    - Dst: ncclDevRedOpToString
      Src: /src/nccl/src/enqueue.cc:807,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/enqueue.cc:808,1
    - Dst: ncclAlgoToString
      Src: /src/nccl/src/enqueue.cc:808,1
    - Dst: ncclProtoToString
      Src: /src/nccl/src/enqueue.cc:809,1
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/enqueue.cc:812,1
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/enqueue.cc:813,1
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/enqueue.cc:814,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:819,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:819,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:821,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:822,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:825,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:826,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 178
    argCount: 3
    argNames:
    - comm
    - plan
    - budget
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - struct ncclKernelPlanBudget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 572
    functionDepth: 6
    functionLinenumber: 572
    functionLinenumberEnd: 830
    functionName: scheduleCollTasksToPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - addProfilerProxyOpIfNeeded
    - ncclIntruQueueEmpty
    - ncclAddWorkBatchToPlan
    - divUp
    - ncclTypeSize
    - ncclProtoGrainSize
    - ncclProtoToString
    - ncclDatatypeToString
    - ncclAddProxyOpIfNeeded
    - RingARAlgorithm::RingARAlgorithm
    - ncclIntruQueueEnqueue
    - TRACE
    - calcCollChunking
    - ncclFuncToString
    - ncclFuncMaxSendRecvCount
    - ncclFuncTrafficPerByte
    - ncclIntruQueueHead
    - ncclIntruQueueDequeue
    - struct ncclProxyOp*::ringAlgo::incRefCount
    - INFO
    - std::max
    - ncclAlgoToString
    - min
    - RingBCAlgorithm::RingBCAlgorithm
    - NCCLCHECK
    - ncclDevRedOpToString
    - RingAGAlgorithm::RingAGAlgorithm
    - ncclTestBudget
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t scheduleCollTasksToPlan(\n    struct ncclComm* comm,
      struct ncclKernelPlan* plan, struct ncclKernelPlanBudget* budget\n  )"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ncclP2pChannelBaseForRound
      Src: /src/nccl/src/enqueue.cc:856,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/enqueue.cc:861,1
    - Dst: ncclParamChunkSize
      Src: /src/nccl/src/enqueue.cc:874,1
    - Dst: std::min<int>
      Src: /src/nccl/src/enqueue.cc:894,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:894,1
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:895,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:895,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:898,1
    - Dst: ncclParamP2pLLThreshold
      Src: /src/nccl/src/enqueue.cc:906,1
    - Dst: u32fp8Encode
      Src: /src/nccl/src/enqueue.cc:922,1
    - Dst: u32fp8Decode
      Src: /src/nccl/src/enqueue.cc:923,1
    - Dst: ncclPxnDisable
      Src: /src/nccl/src/enqueue.cc:929,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:932,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/enqueue.cc:932,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/enqueue.cc:934,1
    - Dst: ncclRegisterP2pNetBuffer
      Src: /src/nccl/src/enqueue.cc:940,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/enqueue.cc:948,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:955,1
    - Dst: ncclRegisterP2pIpcBuffer
      Src: /src/nccl/src/enqueue.cc:955,1
    - Dst: ncclMemoryStackAllocInlineArray
      Src: /src/nccl/src/enqueue.cc:967,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:970,1
    - Dst: ncclProfilerPluginLoaded
      Src: /src/nccl/src/enqueue.cc:995,1
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:1017,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:1025,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:1026,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/enqueue.cc:1029,1
    - Dst: ncclAddWorkBatchToPlan
      Src: /src/nccl/src/enqueue.cc:1032,1
    - Dst: ncclDevFuncId_P2p
      Src: /src/nccl/src/enqueue.cc:1032,1
    - Dst: u32fp8Decode
      Src: /src/nccl/src/enqueue.cc:1046,1
    - Dst: ncclP2pPartBounds
      Src: /src/nccl/src/enqueue.cc:1048,1
    - Dst: DIVUP
      Src: /src/nccl/src/enqueue.cc:1053,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:1055,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:1056,1
    - Dst: roundUp
      Src: /src/nccl/src/enqueue.cc:1060,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1077,1
    - Dst: ncclAddProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:1077,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1078,1
    - Dst: addProfilerProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:1078,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1083,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1084,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 167
    argCount: 14
    argNames:
    - comm
    - plan
    - nChannelsMin
    - nChannelsMax
    - p2pEpoch
    - p2pRound
    - sendRank
    - sendAddr
    - sendBytes
    - recvRank
    - recvAddr
    - recvBytes
    - planTotalTasks
    - p2pTasks
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - int
    - int
    - int
    - int
    - int
    - void*
    - ssize_t
    - int
    - void*
    - ssize_t
    - int[]
    - struct ncclTaskP2p**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 839
    functionDepth: 6
    functionLinenumber: 839
    functionLinenumberEnd: 1086
    functionName: addP2pToPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclProfilerPluginLoaded
    - addProfilerProxyOpIfNeeded
    - ncclAddWorkBatchToPlan
    - ncclRegisterP2pNetBuffer
    - divUp
    - ncclMemoryStackAllocInlineArray
    - ncclAddProxyOpIfNeeded
    - NCCLCHECKGOTO
    - std::min<int>
    - ncclIntruQueueEnqueue
    - ncclPxnDisable
    - ncclCalloc
    - free
    - ncclRegisterP2pIpcBuffer
    - DIVUP
    - ncclP2pChannelForPart
    - std::max
    - ncclDevFuncId_P2p
    - min
    - u32fp8Decode
    - ncclParamChunkSize
    - roundUp
    - ncclParamP2pLLThreshold
    - u32fp8Encode
    - ncclP2pChannelBaseForRound
    - ncclP2pPartBounds
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t addP2pToPlan(\n    struct ncclComm* comm, struct ncclKernelPlan*
      plan,\n    int nChannelsMin, int nChannelsMax, int p2pEpoch, int p2pRound,\n
      \   int sendRank, void* sendAddr, ssize_t sendBytes,\n    int recvRank, void*
      recvAddr, ssize_t recvBytes,\n    const int planTotalTasks[], struct ncclTaskP2p**
      p2pTasks\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:1089,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:1089,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:1093,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: 1096
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1096
    functionName: calcP2pChannelCount
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - divUp
    - std::max
    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:1102,1
    - Dst: ncclDevFuncId_P2p
      Src: /src/nccl/src/enqueue.cc:1104,1
    - Dst: ncclDevFuncId_P2p
      Src: /src/nccl/src/enqueue.cc:1105,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1121,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1122,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:1127,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:1131,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:1142,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:1143,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1144,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1145,1
    - Dst: ncclTestBudget
      Src: /src/nccl/src/enqueue.cc:1151,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1155,1
    - Dst: addP2pToPlan
      Src: /src/nccl/src/enqueue.cc:1155,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:1157,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1160,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:1165,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1168,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 5
    argNames:
    - comm
    - p2pEpoch
    - p2pRound
    - plan
    - budget
    argTypes:
    - struct ncclComm*
    - int*
    - int*
    - struct ncclKernelPlan*
    - struct ncclKernelPlanBudget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1098
    functionDepth: 7
    functionLinenumber: 1098
    functionLinenumberEnd: 1178
    functionName: scheduleP2pTasksToPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - std::max
    - NCCLCHECK
    - ncclDevFuncId_P2p
    - ncclIntruQueueHead
    - ncclMemoryPoolFree
    - ncclIntruQueueDequeue
    - addP2pToPlan
    - WARN
    - ncclTestBudget
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t scheduleP2pTasksToPlan(struct ncclComm* comm, int* p2pEpoch,
      int* p2pRound, struct ncclKernelPlan* plan, struct ncclKernelPlanBudget* budget)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/enqueue.cc:1186,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1190,1
    - Dst: ncclCommPollEventCallbacks
      Src: /src/nccl/src/enqueue.cc:1190,1
    - Dst: std::this_thread::yield
      Src: /src/nccl/src/enqueue.cc:1193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - comm
    - desiredProduced
    argTypes:
    - struct ncclComm*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1197
    functionName: waitWorkFifoAvailable
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - std::this_thread::yield
    - ncclCommPollEventCallbacks
    - COMPILER_ATOMIC_LOAD
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t waitWorkFifoAvailable(struct ncclComm* comm, uint32_t
      desiredProduced)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsAlignedFree
      Src: /src/nccl/src/enqueue.cc:1208,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1209,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/enqueue.cc:1209,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommEventCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1212
    functionName: uploadWork_cleanup_fn
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - CUDACHECK
    - cudaEventDestroy
    - ncclOsAlignedFree
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t uploadWork_cleanup_fn(\n      struct ncclComm* comm,
      struct ncclCommEventCallback* cb\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsAlignedFree
      Src: /src/nccl/src/enqueue.cc:1208,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1209,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/enqueue.cc:1209,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommEventCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1212
    functionName: uploadWork_cleanup_fn
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - CUDACHECK
    - cudaEventDestroy
    - ncclOsAlignedFree
    - 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:1234,1
    - Dst: waitWorkFifoAvailable
      Src: /src/nccl/src/enqueue.cc:1234,1
    - Dst: ncclOsAlignedAlloc
      Src: /src/nccl/src/enqueue.cc:1241,1
    - Dst: ROUNDUP
      Src: /src/nccl/src/enqueue.cc:1241,1
    - Dst: malloc
      Src: /src/nccl/src/enqueue.cc:1244,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1265,1
    - Dst: memcpy
      Src: /src/nccl/src/enqueue.cc:1270,1
    - Dst: COMPILER_ASSUME_ALIGNED
      Src: /src/nccl/src/enqueue.cc:1271,1
    - Dst: COMPILER_ASSUME_ALIGNED
      Src: /src/nccl/src/enqueue.cc:1272,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/enqueue.cc:1284,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1293,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/enqueue.cc:1293,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1297,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/enqueue.cc:1297,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/enqueue.cc:1297,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1299,1
    - Dst: cudaMallocAsync
      Src: /src/nccl/src/enqueue.cc:1299,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1304,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/enqueue.cc:1304,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1306,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/enqueue.cc:1306,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1307,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/enqueue.cc:1307,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1309,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/enqueue.cc:1309,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1313,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1315,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/enqueue.cc:1315,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/enqueue.cc:1315,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1316,1
    - Dst: ncclCommPollEventCallbacks
      Src: /src/nccl/src/enqueue.cc:1316,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/enqueue.cc:1319,1
    - Dst: ncclOsAlignedFree
      Src: /src/nccl/src/enqueue.cc:1322,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 77
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1215
    functionDepth: 2
    functionLinenumber: 1215
    functionLinenumberEnd: 1328
    functionName: uploadWork
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclCudaGraphNone
    - cudaMemcpyAsync
    - ncclCommPollEventCallbacks
    - ncclStrongStreamAcquire
    - memcpy
    - waitWorkFifoAvailable
    - cudaEventRecord
    - NCCLCHECKGOTO
    - cudaEventCreateWithFlags
    - ncclIntruQueueEnqueue
    - ncclOsAlignedAlloc
    - ncclCalloc
    - ncclIntruQueueHead
    - ncclStrongStreamRelease
    - cudaMallocAsync
    - COMPILER_ASSUME_ALIGNED
    - cudaThreadExchangeStreamCaptureMode
    - ROUNDUP
    - CUDACHECKGOTO
    - malloc
    - ncclOsAlignedFree
    - NCCLCHECK
    - wc_store_fence
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t uploadWork(struct ncclComm* comm, struct ncclKernelPlan*
      plan)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1338
    functionName: geteActivationMask
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int geteActivationMask(struct ncclProxyOp * op)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1348
    functionName: gettaskEventHandle
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *gettaskEventHandle(struct ncclProxyOp * op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1358,1
    - Dst: geteActivationMask
      Src: /src/nccl/src/enqueue.cc:1361,1
    - Dst: gettaskEventHandle
      Src: /src/nccl/src/enqueue.cc:1362,1
    - Dst: ncclProfilerAddPidToProxyOp
      Src: /src/nccl/src/enqueue.cc:1363,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1378,1
    - Dst: ncclProxySaveOp
      Src: /src/nccl/src/enqueue.cc:1378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1350
    functionDepth: 4
    functionLinenumber: 1350
    functionLinenumberEnd: 1390
    functionName: uploadProxyOps
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - geteActivationMask
    - ncclProfilerAddPidToProxyOp
    - gettaskEventHandle
    - ncclProxySaveOp
    - ncclIntruQueueHead
    - 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:1393,1
    - Dst: ncclProfilerStartGroupEvent
      Src: /src/nccl/src/enqueue.cc:1393,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1394,1
    - Dst: ncclProfilerStartTaskEvents
      Src: /src/nccl/src/enqueue.cc:1394,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1395,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1396,1
    - Dst: uploadProxyOps
      Src: /src/nccl/src/enqueue.cc:1396,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1397,1
    - Dst: ncclProxyStart
      Src: /src/nccl/src/enqueue.cc:1397,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1399,1
    - Dst: ncclProfilerStopTaskEvents
      Src: /src/nccl/src/enqueue.cc:1399,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1400,1
    - Dst: ncclProfilerStopGroupEvent
      Src: /src/nccl/src/enqueue.cc:1400,1
    - Dst: ncclIntruQueueMpscEnqueue
      Src: /src/nccl/src/enqueue.cc:1403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1392
    functionDepth: 5
    functionLinenumber: 1392
    functionLinenumberEnd: 1406
    functionName: hostStreamPlanTask
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclProfilerStartGroupEvent
    - ncclProxyStart
    - ncclProfilerStartTaskEvents
    - ncclProfilerStopTaskEvents
    - ncclIntruQueueMpscEnqueue
    - ncclProfilerStopGroupEvent
    - ncclIntruQueueHead
    - uploadProxyOps
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t hostStreamPlanTask(struct ncclComm* comm, struct ncclKernelPlan*
      plan)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hostStreamPlanTask
      Src: /src/nccl/src/enqueue.cc:1411,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:1413,1
    - Dst: ncclGetErrorString
      Src: /src/nccl/src/enqueue.cc:1413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - plan_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1408
    functionDepth: 6
    functionLinenumber: 1408
    functionLinenumberEnd: 1416
    functionName: hostStreamPlanCallback
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - hostStreamPlanTask
    - WARN
    - ncclGetErrorString
    linkageType: ''
    returnType: void
    signature: void hostStreamPlanCallback(void *plan_)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1425,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/enqueue.cc:1425,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1426,1
    - Dst: cudaFree
      Src: /src/nccl/src/enqueue.cc:1426,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1427,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/enqueue.cc:1427,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1431,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1434,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1437,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1438,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1439,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1440,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1444,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1447,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1451,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1454,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1458,1
    - Dst: struct ncclProxyOp*::ringAlgo::decRefCount
      Src: /src/nccl/src/enqueue.cc:1461,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1462,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1467,1
    - Dst: ncclRmaProxyReclaimPlan
      Src: /src/nccl/src/enqueue.cc:1467,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:1471,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:1472,1
    - Dst: struct ncclCommCallback*::fn
      Src: /src/nccl/src/enqueue.cc:1473,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1476,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1478,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - comm
    - me
    argTypes:
    - struct ncclComm*
    - struct ncclCommCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1480
    functionName: reclaimPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEmpty
    - ncclRmaProxyReclaimPlan
    - ncclMemoryPoolFree
    - free
    - cudaThreadExchangeStreamCaptureMode
    - struct ncclProxyOp*::ringAlgo::decRefCount
    - ncclIntruQueueDequeue
    - ncclIntruQueueHead
    - CUDACHECK
    - cudaFree
    - struct ncclCommCallback*::fn
    - 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:1487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - plans_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1490
    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:1503,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1504,1
    - Dst: ncclCudaDriverVersion
      Src: /src/nccl/src/enqueue.cc:1504,1
    - Dst: std::min<int>
      Src: /src/nccl/src/enqueue.cc:1506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - mode
    - capturing
    argTypes:
    - enum ncclImplicitOrder*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1511
    functionName: getImplicitOrder
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclCudaDriverVersion
    - std::min<int>
    - NCCLCHECK
    - ncclParamLaunchOrderImplicit
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getImplicitOrder(enum ncclImplicitOrder *mode, bool capturing,
      int driver=-1)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:1516,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:1524,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:1525,1
    - Dst: memset
      Src: /src/nccl/src/enqueue.cc:1528,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:1530,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1539,1
    - Dst: scheduleRmaTasksToPlan
      Src: /src/nccl/src/enqueue.cc:1539,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1541,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:1544,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1545,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/enqueue.cc:1547,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:1551,1
    - Dst: INFO
      Src: /src/nccl/src/enqueue.cc:1561,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/enqueue.cc:1562,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:1562,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1565,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:1566,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1567,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:1570,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1571,1
    - Dst: ncclSymmetricTaskScheduler
      Src: /src/nccl/src/enqueue.cc:1571,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1584,1
    - Dst: scheduleCollTasksToPlan
      Src: /src/nccl/src/enqueue.cc:1584,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1587,1
    - Dst: ncclScheduleBcastTasksToPlan
      Src: /src/nccl/src/enqueue.cc:1587,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1591,1
    - Dst: scheduleP2pTasksToPlan
      Src: /src/nccl/src/enqueue.cc:1591,1
    - Dst: finishPlan
      Src: /src/nccl/src/enqueue.cc:1595,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1597,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:1602,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:1603,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1606,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1613,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/enqueue.cc:1613,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1617,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/enqueue.cc:1617,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1618,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/enqueue.cc:1618,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1621,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/enqueue.cc:1621,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:1623,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1626,1
    - Dst: getImplicitOrder
      Src: /src/nccl/src/enqueue.cc:1626,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1633,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/enqueue.cc:1633,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1634,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/enqueue.cc:1634,1
    - Dst: CUDACLEARERROR
      Src: /src/nccl/src/enqueue.cc:1637,1
    - Dst: cudaEventQuery
      Src: /src/nccl/src/enqueue.cc:1637,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1647,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/enqueue.cc:1647,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1650,1
    - Dst: cudaLaunchHostFunc
      Src: /src/nccl/src/enqueue.cc:1650,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1655,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/enqueue.cc:1655,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1656,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/enqueue.cc:1656,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1663,1
    - Dst: ncclCudaGraphAddDestructor
      Src: /src/nccl/src/enqueue.cc:1663,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 100
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1513
    functionDepth: 8
    functionLinenumber: 1513
    functionLinenumberEnd: 1668
    functionName: ncclLaunchPrepare
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - finishPlan
    - ncclIntruQueueEmpty
    - ncclStrongStreamAcquire
    - ncclTypeSize
    - cudaEventRecord
    - NCCLCHECKGOTO
    - ncclCudaGraphValid
    - scheduleP2pTasksToPlan
    - ncclMemoryStackAlloc
    - cudaEventQuery
    - getImplicitOrder
    - ncclSymmetricTaskScheduler
    - ncclIntruQueueEnqueue
    - ncclStreamWaitStream
    - cudaLaunchHostFunc
    - ncclCudaGraphAddDestructor
    - ncclFuncToString
    - ncclIntruQueueHead
    - ncclIntruQueueDequeue
    - ncclStrongStreamRelease
    - scheduleCollTasksToPlan
    - cudaStreamWaitEvent
    - INFO
    - ncclScheduleBcastTasksToPlan
    - ncclMemoryPoolFree
    - ncclMemoryPoolAlloc
    - memset
    - CUDACHECKGOTO
    - CUDACLEARERROR
    - scheduleRmaTasksToPlan
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclLaunchPrepare(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1674,1
    - Dst: uploadWork
      Src: /src/nccl/src/enqueue.cc:1674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 1676
    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:1686,1
    - Dst: ncclShmemDynamicSize
      Src: /src/nccl/src/enqueue.cc:1690,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1693,1
    - Dst: ncclProfilerStartKernelLaunchEvent
      Src: /src/nccl/src/enqueue.cc:1693,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1702,1
    - Dst: ncclCudaDriverVersion
      Src: /src/nccl/src/enqueue.cc:1702,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1705,1
    - Dst: cudaGetFuncBySymbol
      Src: /src/nccl/src/enqueue.cc:1705,1
    - Dst: ncclParamMemSyncDomain
      Src: /src/nccl/src/enqueue.cc:1737,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1742,1
    - Dst: getImplicitOrder
      Src: /src/nccl/src/enqueue.cc:1742,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1772,1
    - Dst: cuLaunchKernelEx
      Src: /src/nccl/src/enqueue.cc:1772,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1776,1
    - Dst: cuLaunchKernel
      Src: /src/nccl/src/enqueue.cc:1776,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1780,1
    - Dst: ncclProfilerStopKernelLaunchEvent
      Src: /src/nccl/src/enqueue.cc:1780,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1782
    functionName: ncclLaunchKernel
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - ncclParamMemSyncDomain
    - ncclCudaDriverVersion
    - cudaGetFuncBySymbol
    - ncclShmemDynamicSize
    - cuLaunchKernel
    - CUCHECKGOTO
    - countOneBits
    - ncclProfilerStopKernelLaunchEvent
    - cuLaunchKernelEx
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - getImplicitOrder
    - ncclProfilerStartKernelLaunchEvent
    - NCCLCHECK
    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:1788,1
    - Dst: hostStreamPlanTask
      Src: /src/nccl/src/enqueue.cc:1788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1784
    functionDepth: 6
    functionLinenumber: 1784
    functionLinenumberEnd: 1791
    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:1803,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/enqueue.cc:1803,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommEventCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1806
    functionName: KernelFinishCallback_fn
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - CUDACHECK
    - free
    - cudaEventDestroy
    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:1803,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/enqueue.cc:1803,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommEventCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1806
    functionName: KernelFinishCallback_fn
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - CUDACHECK
    - free
    - cudaEventDestroy
    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:1811,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/enqueue.cc:1814,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1819,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/enqueue.cc:1819,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1824,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/enqueue.cc:1824,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1828,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1830,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/enqueue.cc:1830,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1834,1
    - Dst: ncclStrongStreamAcquiredWorkStream
      Src: /src/nccl/src/enqueue.cc:1834,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1843,1
    - Dst: ncclStreamAdvanceToEvent
      Src: /src/nccl/src/enqueue.cc:1843,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1847,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/enqueue.cc:1847,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:1849,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1851,1
    - Dst: getImplicitOrder
      Src: /src/nccl/src/enqueue.cc:1851,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1856,1
    - Dst: ncclStrongStreamAcquiredWorkStream
      Src: /src/nccl/src/enqueue.cc:1856,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1858,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/enqueue.cc:1858,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1860,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/enqueue.cc:1860,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1863,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/enqueue.cc:1863,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1809
    functionDepth: 2
    functionLinenumber: 1809
    functionLinenumberEnd: 1866
    functionName: ncclLaunchFinish
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclCalloc
    - ncclIntruQueueEmpty
    - ncclStrongStreamAcquiredWorkStream
    - cudaStreamWaitEvent
    - cudaEventRecord
    - ncclCudaGraphValid
    - cudaEventCreateWithFlags
    - CUDACHECK
    - ncclIntruQueueConstruct
    - ncclStrongStreamRelease
    - getImplicitOrder
    - 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: 1891
      start: 1872
    functionDepth: 0
    functionLinenumber: 1872
    functionLinenumberEnd: 1891
    functionName: ncclGetCollNetSupport
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGetCollNetSupport(\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: 1900
      start: 1893
    functionDepth: 0
    functionLinenumber: 1893
    functionLinenumberEnd: 1900
    functionName: initCollCostTable
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initCollCostTable(float** collCostTable)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1926,1
    - Dst: ncclTopoGetAlgoTime
      Src: /src/nccl/src/enqueue.cc:1926,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 29
    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: 1938
      start: 1903
    functionDepth: 1
    functionLinenumber: 1903
    functionLinenumberEnd: 1938
    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: 19
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/enqueue.cc:1969,1
    - Dst: snprintf
      Src: /src/nccl/src/enqueue.cc:1971,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/enqueue.cc:1973,1
    - Dst: snprintf
      Src: /src/nccl/src/enqueue.cc:1975,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:1977,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/enqueue.cc:1977,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/enqueue.cc:1977,1
    - Dst: TRACE
      Src: /src/nccl/src/enqueue.cc:1981,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:2000,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 72
    argCount: 5
    argNames:
    - comm
    - info
    - nBytes
    - collCostTable
    - simInfo
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - size_t
    - float**
    - ncclSimInfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 1940
    functionDepth: 1
    functionLinenumber: 1940
    functionLinenumberEnd: 2030
    functionName: topoGetAlgoInfo
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - TRACE
    - ncclFuncToString
    - min
    - ncclDatatypeToString
    - snprintf
    - WARN
    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:2040,1
    - Dst: ncclFuncMaxSendRecvCount
      Src: /src/nccl/src/enqueue.cc:2041,1
    - Dst: ncclFuncSendCount
      Src: /src/nccl/src/enqueue.cc:2046,1
    - Dst: ncclFuncRecvCount
      Src: /src/nccl/src/enqueue.cc:2047,1
    - Dst: initCollCostTable
      Src: /src/nccl/src/enqueue.cc:2052,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2053,1
    - Dst: updateCollCostTable
      Src: /src/nccl/src/enqueue.cc:2053,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2055,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/enqueue.cc:2055,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2056,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/enqueue.cc:2056,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2057,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/enqueue.cc:2057,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2058,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/enqueue.cc:2058,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:2059,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/enqueue.cc:2059,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2060,1
    - Dst: struct ncclComm*::tuner::getCollInfo
      Src: /src/nccl/src/enqueue.cc:2060,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2064,1
    - Dst: topoGetAlgoInfo
      Src: /src/nccl/src/enqueue.cc:2064,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2066,1
    - Dst: topoGetAlgoInfo
      Src: /src/nccl/src/enqueue.cc:2066,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/enqueue.cc:2068,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/enqueue.cc:2068,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2071,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/enqueue.cc:2071,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2072,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/enqueue.cc:2072,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2073,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/enqueue.cc:2073,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2074,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/enqueue.cc:2074,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:2075,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/enqueue.cc:2075,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2079,1
    - Dst: ncclNvlsRegResourcesQuery
      Src: /src/nccl/src/enqueue.cc:2079,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: 2093
      start: 2036
    functionDepth: 2
    functionLinenumber: 2036
    functionLinenumberEnd: 2093
    functionName: ncclGetAlgoInfo
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - ncclFuncSendCount
    - struct ncclComm*::tuner::getCollInfo
    - ncclRegLocalIsValid
    - ncclGetEnv
    - ncclNvlsRegResourcesQuery
    - ncclTypeSize
    - ncclFuncMaxSendRecvCount
    - topoGetAlgoInfo
    - ncclRegFind
    - updateCollCostTable
    - ncclCudaGraphValid
    - ncclParamGraphRegister
    - ncclFuncRecvCount
    - initCollCostTable
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGetAlgoInfo(\n    struct ncclComm* comm, struct ncclTaskColl*
      info,\n    int collNetSupport, int nvlsSupport, int numPipeOps, ncclSimInfo_t*
      simInfo/* = NULL*/\n  )"
  - BBCount: 71
    BranchProfiles: []
    Callsites:
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/enqueue.cc:2100,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2133,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:2155,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:2179,1
    - Dst: log2i
      Src: /src/nccl/src/enqueue.cc:2187,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2208,1
    - Dst: struct ncclComm*::tuner::getChunkSize
      Src: /src/nccl/src/enqueue.cc:2208,1
    - Dst: INFO
      Src: /src/nccl/src/enqueue.cc:2211,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/enqueue.cc:2212,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2249,1
    - Dst: DIVUP
      Src: /src/nccl/src/enqueue.cc:2255,1
    - Dst: memset
      Src: /src/nccl/src/enqueue.cc:2256,1
    - Dst: DIVUP
      Src: /src/nccl/src/enqueue.cc:2311,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2315,1
    - Dst: ncclAlgoToString
      Src: /src/nccl/src/enqueue.cc:2315,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2330,1
    - Dst: DIVUP
      Src: /src/nccl/src/enqueue.cc:2335,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2363,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 238
    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: 2369
      start: 2095
    functionDepth: 1
    functionLinenumber: 2095
    functionLinenumberEnd: 2369
    functionName: calcCollChunking
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclFuncToString
    - ncclAlgoToString
    - min
    - ncclProtoGrainSize
    - ncclTypeSize
    - log2i
    - DIVUP
    - memset
    - struct ncclComm*::tuner::getChunkSize
    - WARN
    - NCCLCHECK
    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:2391,1
    - Dst: __nv_cvt_float_to_fp8
      Src: /src/nccl/src/enqueue.cc:2423,1
    - Dst: __nv_cvt_float_to_fp8
      Src: /src/nccl/src/enqueue.cc:2427,1
    - Dst: __float2half
      Src: /src/nccl/src/enqueue.cc:2432,1
    - Dst: __float2bfloat16
      Src: /src/nccl/src/enqueue.cc:2437,1
    - Dst: ncclUserRedOpMangle
      Src: /src/nccl/src/enqueue.cc:2453,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2456,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: 2464
      start: 2371
    functionDepth: 1
    functionLinenumber: 2371
    functionLinenumberEnd: 2464
    functionName: hostToDevRedOp
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclUserRedOpMangle
    - ncclTypeSize
    - __float2bfloat16
    - __nv_cvt_float_to_fp8
    - WARN
    - __float2half
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t hostToDevRedOp(\n    ncclDevRedOpFull *opFull, ncclRedOp_t
      op, ncclDataType_t datatype, ncclComm *comm\n  )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2474,1
    - Dst: ncclCudaGetCapturingGraph
      Src: /src/nccl/src/enqueue.cc:2474,1
    - Dst: ncclCudaGraphSame
      Src: /src/nccl/src/enqueue.cc:2475,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2476,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/enqueue.cc:2481,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - comm
    - info
    argTypes:
    - struct ncclComm*
    - struct ncclInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2466
    functionDepth: 1
    functionLinenumber: 2466
    functionLinenumberEnd: 2493
    functionName: ncclPlannerSetCapturingGraph
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclCudaGetCapturingGraph
    - ncclCudaGraphSame
    - ncclMemoryStackAlloc
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclPlannerSetCapturingGraph(struct ncclComm* comm, struct
      ncclInfo* info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2507,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/enqueue.cc:2511,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2514,1
    - Dst: ncclPlannerSetCapturingGraph
      Src: /src/nccl/src/enqueue.cc:2514,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:2515,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2516,1
    - Dst: ncclProfilerStartGroupApiEvent
      Src: /src/nccl/src/enqueue.cc:2516,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2517,1
    - Dst: ncclProfilerRecordGroupApiEventState
      Src: /src/nccl/src/enqueue.cc:2517,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2519,1
    - Dst: ncclProfilerStartP2pApiEvent
      Src: /src/nccl/src/enqueue.cc:2519,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:2521,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:2533,1
    - Dst: ncclP2pChannelBaseForRound
      Src: /src/nccl/src/enqueue.cc:2552,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/enqueue.cc:2554,1
    - Dst: ncclGroupCommPreconnect
      Src: /src/nccl/src/enqueue.cc:2563,1
    - Dst: ncclGroupCommPreconnect
      Src: /src/nccl/src/enqueue.cc:2570,1
    - Dst: ncclProfilerStopP2pApiEvent
      Src: /src/nccl/src/enqueue.cc:2576,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 9
    argNames:
    - comm
    - info
    - coll
    - collAPI
    - buff
    - count
    - datatype
    - peer
    - allowUB
    argTypes:
    - struct ncclComm*
    - struct ncclInfo*
    - ncclFunc_t
    - ncclFunc_t
    - void*
    - size_t
    - ncclDataType_t
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2495
    functionDepth: 2
    functionLinenumber: 2495
    functionLinenumberEnd: 2578
    functionName: p2pTaskAppend
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclGroupCommPreconnect
    - ncclTypeSize
    - ncclProfilerStopP2pApiEvent
    - ncclPlannerSetCapturingGraph
    - ncclProfilerStartP2pApiEvent
    - ncclProfilerRecordGroupApiEventState
    - ncclMemoryPoolAlloc
    - ncclP2pChannelBaseForRound
    - ncclCudaGraphValid
    - ncclProfilerStartGroupApiEvent
    - ncclP2pChannelForPart
    - ncclGroupCommJoin
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t p2pTaskAppend(\n    struct ncclComm* comm,\n    struct
      ncclInfo* info,\n    ncclFunc_t coll,\n    ncclFunc_t collAPI,\n    void* buff,\n
      \   size_t count,\n    ncclDataType_t datatype,\n    int peer, bool allowUB)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/enqueue.cc:2587,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2589,1
    - Dst: ncclPlannerSetCapturingGraph
      Src: /src/nccl/src/enqueue.cc:2589,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:2591,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2592,1
    - Dst: ncclProfilerStartGroupApiEvent
      Src: /src/nccl/src/enqueue.cc:2592,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2593,1
    - Dst: ncclProfilerRecordGroupApiEventState
      Src: /src/nccl/src/enqueue.cc:2593,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2594,1
    - Dst: ncclProfilerStartCollApiEvent
      Src: /src/nccl/src/enqueue.cc:2594,1
    - Dst: ncclParamAllgathervEnable
      Src: /src/nccl/src/enqueue.cc:2596,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:2598,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2602,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:2607,1
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:2608,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:2609,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:2614,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:2618,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2625,1
    - Dst: ncclFuncTrafficPerByte
      Src: /src/nccl/src/enqueue.cc:2631,1
    - Dst: ncclTaskCollSorterInsert
      Src: /src/nccl/src/enqueue.cc:2641,1
    - Dst: ncclProfilerStopCollApiEvent
      Src: /src/nccl/src/enqueue.cc:2643,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 3
    argNames:
    - comm
    - info
    - opDev
    argTypes:
    - struct ncclComm*
    - struct ncclInfo*
    - struct ncclDevRedOpFull
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2580
    functionDepth: 2
    functionLinenumber: 2580
    functionLinenumberEnd: 2645
    functionName: collTaskAppend
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - std::max
    - ncclIntruQueueEmpty
    - ncclTaskCollSorterInsert
    - ncclTypeSize
    - min
    - ncclPlannerSetCapturingGraph
    - ncclProfilerStopCollApiEvent
    - ncclMemoryPoolAlloc
    - ncclProfilerRecordGroupApiEventState
    - ncclProfilerStartCollApiEvent
    - ncclFuncTrafficPerByte
    - ncclCudaGraphValid
    - ncclProfilerStartGroupApiEvent
    - ncclParamAllgathervEnable
    - ncclGroupCommJoin
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t collTaskAppend(\n    struct ncclComm* comm,\n    struct
      ncclInfo* info,\n    struct ncclDevRedOpFull opDev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:2656,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2658,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/enqueue.cc:2658,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:2660,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/enqueue.cc:2661,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/enqueue.cc:2665,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2667,1
    - Dst: ncclPlannerSetCapturingGraph
      Src: /src/nccl/src/enqueue.cc:2667,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:2668,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2669,1
    - Dst: ncclProfilerStartGroupApiEvent
      Src: /src/nccl/src/enqueue.cc:2669,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2670,1
    - Dst: ncclProfilerRecordGroupApiEventState
      Src: /src/nccl/src/enqueue.cc:2670,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2671,1
    - Dst: ncclProfilerStartCollApiEvent
      Src: /src/nccl/src/enqueue.cc:2671,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:2673,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2681,1
    - Dst: ncclFuncTrafficPerByte
      Src: /src/nccl/src/enqueue.cc:2687,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/enqueue.cc:2692,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:2698,1
    - Dst: ncclProfilerStopCollApiEvent
      Src: /src/nccl/src/enqueue.cc:2700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 5
    argNames:
    - comm
    - info
    - sendWin
    - recvWin
    - opDev
    argTypes:
    - struct ncclComm*
    - struct ncclInfo*
    - struct ncclDevrWindow*
    - struct ncclDevrWindow*
    - struct ncclDevRedOpFull
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2647
    functionDepth: 2
    functionLinenumber: 2647
    functionLinenumberEnd: 2702
    functionName: ceCollTaskAppend
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclCalloc
    - ncclIntruQueueEmpty
    - ncclTypeSize
    - ncclPlannerSetCapturingGraph
    - ncclProfilerStopCollApiEvent
    - ncclMemoryPoolAlloc
    - ncclProfilerRecordGroupApiEventState
    - ncclProfilerStartCollApiEvent
    - ncclFuncTrafficPerByte
    - ncclCudaGraphValid
    - COMPILER_ATOMIC_LOAD
    - ncclProfilerStartGroupApiEvent
    - ncclGroupCommJoin
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ceCollTaskAppend(\n    struct ncclComm* comm,\n    struct
      ncclInfo* info,\n    struct ncclDevrWindow* sendWin,\n    struct ncclDevrWindow*
      recvWin,\n    struct ncclDevRedOpFull opDev)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2712,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2717,1
    - Dst: ncclCudaDriverVersion
      Src: /src/nccl/src/enqueue.cc:2717,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2719,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2726,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2732,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2738,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2750,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2755,1
    - Dst: ncclShadowPoolToHost
      Src: /src/nccl/src/enqueue.cc:2755,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2760,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2763,1
    - Dst: ncclDevrFindWindow
      Src: /src/nccl/src/enqueue.cc:2763,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2765,1
    - Dst: ncclDevrWindowIsMultiSegment
      Src: /src/nccl/src/enqueue.cc:2770,1
    - Dst: ncclDevrWindowIsMultiSegment
      Src: /src/nccl/src/enqueue.cc:2770,1
    - Dst: ncclDevrWindowHasSysmemSegment
      Src: /src/nccl/src/enqueue.cc:2771,1
    - Dst: ncclDevrWindowHasSysmemSegment
      Src: /src/nccl/src/enqueue.cc:2771,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2774,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2778,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2785,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2792,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2798,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2802,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2806,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:2814,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2816,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/enqueue.cc:2816,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:2818,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/enqueue.cc:2819,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/enqueue.cc:2823,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2824,1
    - Dst: ncclPlannerSetCapturingGraph
      Src: /src/nccl/src/enqueue.cc:2824,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:2829,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/enqueue.cc:2845,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/enqueue.cc:2846,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/enqueue.cc:2853,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:2855,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2860,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:2873,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2886,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/enqueue.cc:2906,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:2910,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 135
    argCount: 2
    argNames:
    - comm
    - info
    argTypes:
    - struct ncclComm*
    - struct ncclInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2704
    functionDepth: 2
    functionLinenumber: 2704
    functionLinenumberEnd: 2915
    functionName: rmaTaskAppend
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclCudaDriverVersion
    - ncclCalloc
    - ncclDevrWindowHasSysmemSegment
    - ncclIntruQueueEmpty
    - ncclTypeSize
    - ncclShadowPoolToHost
    - ncclDevrWindowIsMultiSegment
    - ncclDevrFindWindow
    - ncclPlannerSetCapturingGraph
    - ncclMemoryPoolAlloc
    - COMPILER_ATOMIC_LOAD
    - ncclMemoryStackAlloc
    - WARN
    - ncclGroupCommJoin
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t rmaTaskAppend(\n  struct ncclComm* comm,\n  struct ncclInfo*
      info)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2924,1
    - Dst: p2pTaskAppend
      Src: /src/nccl/src/enqueue.cc:2924,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2926,1
    - Dst: rmaTaskAppend
      Src: /src/nccl/src/enqueue.cc:2926,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2933,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2941,1
    - Dst: hostToDevRedOp
      Src: /src/nccl/src/enqueue.cc:2941,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2944,1
    - Dst: ncclLaunchOneRank
      Src: /src/nccl/src/enqueue.cc:2944,1
    - Dst: ncclDevrFindWindow
      Src: /src/nccl/src/enqueue.cc:2949,1
    - Dst: ncclDevrFindWindow
      Src: /src/nccl/src/enqueue.cc:2950,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2953,1
    - Dst: ncclGetSymRegType
      Src: /src/nccl/src/enqueue.cc:2953,1
    - Dst: ncclCeAvailable
      Src: /src/nccl/src/enqueue.cc:2954,1
    - Dst: ncclDevrWindowHasSysmemSegment
      Src: /src/nccl/src/enqueue.cc:2955,1
    - Dst: ncclDevrWindowHasSysmemSegment
      Src: /src/nccl/src/enqueue.cc:2955,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2958,1
    - Dst: ceCollTaskAppend
      Src: /src/nccl/src/enqueue.cc:2958,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2971,1
    - Dst: ncclCudaGetCapturingGraph
      Src: /src/nccl/src/enqueue.cc:2971,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:2972,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2974,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/enqueue.cc:2974,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2974,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2975,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/enqueue.cc:2975,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2975,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2978,1
    - Dst: p2pTaskAppend
      Src: /src/nccl/src/enqueue.cc:2978,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2978,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2979,1
    - Dst: p2pTaskAppend
      Src: /src/nccl/src/enqueue.cc:2979,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2979,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2984,1
    - Dst: p2pTaskAppend
      Src: /src/nccl/src/enqueue.cc:2984,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2988,1
    - Dst: p2pTaskAppend
      Src: /src/nccl/src/enqueue.cc:2988,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2989,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2998,1
    - Dst: p2pTaskAppend
      Src: /src/nccl/src/enqueue.cc:2998,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2999,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:3002,1
    - Dst: p2pTaskAppend
      Src: /src/nccl/src/enqueue.cc:3002,1
    - Dst: ncclParamSymCeThreshold
      Src: /src/nccl/src/enqueue.cc:3003,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:3005,1
    - Dst: ceCollTaskAppend
      Src: /src/nccl/src/enqueue.cc:3005,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:3007,1
    - Dst: collTaskAppend
      Src: /src/nccl/src/enqueue.cc:3007,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 66
    argCount: 2
    argNames:
    - comm
    - info
    argTypes:
    - struct ncclComm*
    - struct ncclInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3014
      start: 2920
    functionDepth: 3
    functionLinenumber: 2920
    functionLinenumberEnd: 3014
    functionName: taskAppend
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ceCollTaskAppend
    - ncclGetSymRegType
    - ncclDevrWindowHasSysmemSegment
    - ncclTypeSize
    - ncclCudaGetCapturingGraph
    - collTaskAppend
    - hostToDevRedOp
    - ncclDevrFindWindow
    - ncclRegFind
    - rmaTaskAppend
    - p2pTaskAppend
    - ncclCeAvailable
    - ncclCudaGraphValid
    - ncclParamSymCeThreshold
    - WARN
    - ncclLaunchOneRank
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t taskAppend(struct ncclComm* comm, struct ncclInfo* info)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CommCheck
      Src: /src/nccl/src/enqueue.cc:3018,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/enqueue.cc:3019,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:3021,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/enqueue.cc:3022,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:3029,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/enqueue.cc:3029,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:3033,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/enqueue.cc:3033,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:3036,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/enqueue.cc:3036,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:3037,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/enqueue.cc:3037,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:3041,1
    - Dst: ArgsCheck
      Src: /src/nccl/src/enqueue.cc:3041,1
    - Dst: INFO
      Src: /src/nccl/src/enqueue.cc:3043,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/enqueue.cc:3046,1
    - Dst: reinterpret_cast<int64_t>
      Src: /src/nccl/src/enqueue.cc:3046,1
    - Dst: reinterpret_cast<int64_t>
      Src: /src/nccl/src/enqueue.cc:3046,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:3048,1
    - Dst: taskAppend
      Src: /src/nccl/src/enqueue.cc:3048,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:3051,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/enqueue.cc:3051,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/enqueue.cc:3052,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:3053,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/enqueue.cc:3053,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:3056,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/enqueue.cc:3056,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/enqueue.cc:3059,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct ncclInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3016
    functionDepth: 5
    functionLinenumber: 3016
    functionLinenumberEnd: 3061
    functionName: ncclEnqueueCheck
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 13
    functionsReached:
    - ArgsCheck
    - ncclGroupStartInternal
    - NCCLCHECKGOTO
    - CUDACHECK
    - CommCheck
    - WARN
    - ncclGroupEndInternal
    - ncclCommSetAsyncError
    - TRACE_CALL
    - ncclCommEnsureReady
    - INFO
    - taskAppend
    - CUDACHECKGOTO
    - NCCLCHECK
    - reinterpret_cast<int64_t>
    - cudaGetDevice
    - ncclGroupErrCheck
    - cudaSetDevice
    - ncclCommGetAsyncError
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclEnqueueCheck(struct ncclInfo* info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:3065,1
    - Dst: CommCheck
      Src: /src/nccl/src/enqueue.cc:3065,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:3067,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/enqueue.cc:3067,1
    - Dst: ncclUserRedOp::ncclUserRedOp
      Src: /src/nccl/src/enqueue.cc:3073,1
    - Dst: std::memcpy
      Src: /src/nccl/src/enqueue.cc:3075,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:3091,1
    - Dst: std::memcpy
      Src: /src/nccl/src/enqueue.cc:3094,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/src/enqueue.cc:3097,1
    - Dst: ncclRedOp_t
      Src: /src/nccl/src/enqueue.cc:3099,1
    - Dst: ncclUserRedOpMangle
      Src: /src/nccl/src/enqueue.cc:3100,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/enqueue.cc:3101,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: 3103
      start: 3064
    functionDepth: 2
    functionLinenumber: 3064
    functionLinenumberEnd: 3103
    functionName: ncclRedOpCreatePreMulSum
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclRedOp_t
    - reinterpret_cast<uint64_t>
    - ncclUserRedOpMangle
    - ncclTypeSize
    - TRACE_CALL
    - std::memcpy
    - ncclUserRedOp::ncclUserRedOp
    - ncclCommEnsureReady
    - CommCheck
    - NCCLCHECK
    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:3108,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:3116,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:3120,1
    - Dst: ncclUserRedOpMangle
      Src: /src/nccl/src/enqueue.cc:3124,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:3126,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/enqueue.cc:3132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - op
    - comm
    argTypes:
    - ncclRedOp_t
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3106
    functionDepth: 1
    functionLinenumber: 3106
    functionLinenumberEnd: 3134
    functionName: ncclRedOpDestroy
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclUserRedOpMangle
    - TRACE_CALL
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRedOpDestroy(ncclRedOp_t op, ncclComm_t comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:33,1
    - Dst: struct ncclTransport*::canConnect
      Src: /src/nccl/src/transport.cc:33,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:36,1
    - Dst: struct ncclTransportComm*::setup
      Src: /src/nccl/src/transport.cc:36,1
    - Dst: WARN
      Src: /src/nccl/src/transport.cc:41,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: 43
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 43
    functionName: selectTransport
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 0
    functionsReached:
    - struct ncclTransport*::canConnect
    - struct ncclTransportComm*::setup
    - WARN
    - NCCLCHECK
    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:46,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: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    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:64,1
    - Dst: printf
      Src: /src/nccl/src/transport.cc:66,1
    - Dst: printf
      Src: /src/nccl/src/transport.cc:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - ndata
    argTypes:
    - struct ncclConnect*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: dumpData
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpData(struct ncclConnect* data, int ndata)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:95,1
    - Dst: ncclTopoCheckP2p
      Src: /src/nccl/src/transport.cc:95,1
    - Dst: INFO
      Src: /src/nccl/src/transport.cc:114,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - comm
    - isAllDirectP2p
    - directMode
    - isAllCudaP2p
    argTypes:
    - struct ncclComm*
    - bool*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 117
    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,\n                                       bool*
      isAllCudaP2p)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamConnectRoundMaxPeers
      Src: /src/nccl/src/transport.cc:126,1
    - Dst: gettimeofday
      Src: /src/nccl/src/transport.cc:129,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:134,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:134,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:135,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:135,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:136,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:136,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:138,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport.cc:138,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport.cc:138,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:139,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport.cc:139,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport.cc:139,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:155,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:155,1
    - Dst: memset
      Src: /src/nccl/src/transport.cc:156,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport.cc:161,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:164,1
    - Dst: selectTransport
      Src: /src/nccl/src/transport.cc:164,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport.cc:167,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport.cc:168,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:172,1
    - Dst: selectTransport
      Src: /src/nccl/src/transport.cc:172,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport.cc:175,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport.cc:177,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:180,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:180,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:181,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:181,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:186,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:186,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:187,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:187,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:188,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:188,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:189,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:189,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport.cc:191,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport.cc:209,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:214,1
    - Dst: struct ncclConnector*::transportComm::connect
      Src: /src/nccl/src/transport.cc:214,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport.cc:218,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport.cc:218,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport.cc:225,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport.cc:228,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:233,1
    - Dst: struct ncclConnector*::transportComm::connect
      Src: /src/nccl/src/transport.cc:233,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport.cc:237,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport.cc:237,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport.cc:244,1
    - Dst: ncclParamReportConnectProgress
      Src: /src/nccl/src/transport.cc:247,1
    - Dst: gettimeofday
      Src: /src/nccl/src/transport.cc:249,1
    - Dst: printf
      Src: /src/nccl/src/transport.cc:253,1
    - Dst: fflush
      Src: /src/nccl/src/transport.cc:255,1
    - Dst: gettimeofday
      Src: /src/nccl/src/transport.cc:267,1
    - Dst: INFO
      Src: /src/nccl/src/transport.cc:269,1
    - Dst: printf
      Src: /src/nccl/src/transport.cc:271,1
    - Dst: fflush
      Src: /src/nccl/src/transport.cc:273,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:287,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:287,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:288,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:288,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:289,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:289,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:290,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:290,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:293,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:293,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:294,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:294,1
    - Dst: TIME_PRINT
      Src: /src/nccl/src/transport.cc:300,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:303,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:305,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:306,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:307,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:309,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/transport.cc:309,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:310,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport.cc:310,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport.cc:310,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:311,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport.cc:311,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport.cc:311,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 146
    argCount: 3
    argNames:
    - comm
    - graph
    - connIndex
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 315
    functionName: ncclTransportP2pSetup
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 2
    functionsReached:
    - ncclCudaGraphNone
    - cudaMemcpyAsync
    - struct ncclConnector*::transportComm::connect
    - ncclStrongStreamAcquire
    - NCCLCHECKGOTO
    - gettimeofday
    - ncclCalloc
    - ncclStreamWaitStream
    - free
    - ncclStrongStreamRelease
    - ncclParamReportConnectProgress
    - fflush
    - INFO
    - bootstrapRecv
    - TIME_STOP
    - memset
    - CUDACHECKGOTO
    - NCCLCHECK
    - TIME_START
    - ncclParamConnectRoundMaxPeers
    - bootstrapSend
    - TIME_PRINT
    - printf
    - selectTransport
    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:333,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:350,1
    - Dst: struct ncclTransportComm*::setup
      Src: /src/nccl/src/transport.cc:350,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:353,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:353,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:356,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:356,1
    - Dst: memcpy
      Src: /src/nccl/src/transport.cc:358,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:359,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/transport.cc:359,1
    - Dst: memcpy
      Src: /src/nccl/src/transport.cc:364,1
    - Dst: memcpy
      Src: /src/nccl/src/transport.cc:369,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:373,1
    - Dst: struct ncclTransportComm*::connect
      Src: /src/nccl/src/transport.cc:373,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport.cc:375,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/transport.cc:375,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport.cc:377,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/transport.cc:377,1
    - Dst: memcpy
      Src: /src/nccl/src/transport.cc:380,1
    - Dst: TRACE
      Src: /src/nccl/src/transport.cc:381,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:384,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:385,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: 387
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 387
    functionName: ncclTransportCollNetSetup
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclCalloc
    - cudaMemcpy
    - struct ncclTransportComm*::setup
    - memcpy
    - bootstrapAllGather
    - free
    - NCCLCHECKGOTO
    - struct ncclTransportComm*::connect
    - CUDACHECKGOTO
    - NCCLCHECK
    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:393,1
    - Dst: bootstrapIntraNodeAllGather
      Src: /src/nccl/src/transport.cc:393,1
    - Dst: WARN
      Src: /src/nccl/src/transport.cc:401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - comm
    - collNetSetupFail
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 389
    functionDepth: 4
    functionLinenumber: 389
    functionLinenumberEnd: 405
    functionName: ncclTransportCollNetCheck
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 0
    functionsReached:
    - WARN
    - bootstrapIntraNodeAllGather
    - NCCLCHECK
    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:413,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:416,1
    - Dst: struct ncclConnector*::transportComm::free
      Src: /src/nccl/src/transport.cc:416,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:421,1
    - Dst: struct ncclConnector*::transportComm::free
      Src: /src/nccl/src/transport.cc:421,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 428
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: getHostName
      Src: /src/nccl/src/debug.cc:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - hostname
    - maxlen
    - delim
    argTypes:
    - char*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: getHostNameForLog
    functionSourceFile: /src/nccl/src/debug.cc
    functionUses: 0
    functionsReached:
    - getHostName
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getHostNameForLog(char* hostname, int maxlen, const char
      delim)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: ncclEnvPluginInitialized
      Src: /src/nccl/src/debug.cc:65,1
    - Dst: getEnvFunc
      Src: /src/nccl/src/debug.cc:66,1
    - Dst: fclose
      Src: /src/nccl/src/debug.cc:71,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:77,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:79,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:81,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:83,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:85,1
    - Dst: getEnvFunc
      Src: /src/nccl/src/debug.cc:93,1
    - Dst: strdup
      Src: /src/nccl/src/debug.cc:98,1
    - Dst: strtok
      Src: /src/nccl/src/debug.cc:99,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: strcasecmp
      Src: /src/nccl/src/debug.cc:110,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:112,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:114,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:116,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:118,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:120,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:122,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:124,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:126,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:128,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:130,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:132,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:134,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:136,1
    - Dst: strtok
      Src: /src/nccl/src/debug.cc:142,1
    - Dst: free
      Src: /src/nccl/src/debug.cc:144,1
    - Dst: getEnvFunc
      Src: /src/nccl/src/debug.cc:147,1
    - Dst: strlen
      Src: /src/nccl/src/debug.cc:148,1
    - Dst: strtoll
      Src: /src/nccl/src/debug.cc:151,1
    - Dst: getEnvFunc
      Src: /src/nccl/src/debug.cc:157,1
    - Dst: strdup
      Src: /src/nccl/src/debug.cc:164,1
    - Dst: strtok
      Src: /src/nccl/src/debug.cc:165,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:168,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:170,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:172,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:174,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:176,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:178,1
    - Dst: strtok
      Src: /src/nccl/src/debug.cc:187,1
    - Dst: free
      Src: /src/nccl/src/debug.cc:189,1
    - Dst: getEnvFunc
      Src: /src/nccl/src/debug.cc:193,1
    - Dst: strlen
      Src: /src/nccl/src/debug.cc:209,1
    - Dst: memcpy
      Src: /src/nccl/src/debug.cc:216,1
    - Dst: strcpy
      Src: /src/nccl/src/debug.cc:221,1
    - Dst: strlen
      Src: /src/nccl/src/debug.cc:226,1
    - Dst: strcpy
      Src: /src/nccl/src/debug.cc:227,1
    - Dst: strcpy
      Src: /src/nccl/src/debug.cc:229,1
    - Dst: getHostNameForLog
      Src: /src/nccl/src/debug.cc:239,1
    - Dst: ncclOsGetPid
      Src: /src/nccl/src/debug.cc:240,1
    - Dst: getEnvFunc
      Src: /src/nccl/src/debug.cc:246,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:261,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:264,1
    - Dst: fopen
      Src: /src/nccl/src/debug.cc:282,1
    - Dst: setlinebuf
      Src: /src/nccl/src/debug.cc:285,1
    - Dst: setvbuf
      Src: /src/nccl/src/debug.cc:287,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/nccl/src/debug.cc:294,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/debug.cc:296,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 212
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 297
    functionName: ncclDebugInit
    functionSourceFile: /src/nccl/src/debug.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - strcasecmp
    - std::chrono::steady_clock::now
    - ncclOsGetPid
    - setlinebuf
    - setvbuf
    - strlen
    - free
    - getHostNameForLog
    - ncclEnvPluginInitialized
    - strcpy
    - fopen
    - getEnvFunc
    - fclose
    - COMPILER_ATOMIC_STORE
    - strdup
    - strtok
    - strtoll
    - snprintf
    linkageType: ''
    returnType: void
    signature: void ncclDebugInit()
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/debug.cc:304,1
    - Dst: va_start
      Src: /src/nccl/src/debug.cc:312,1
    - Dst: vsnprintf
      Src: /src/nccl/src/debug.cc:313,1
    - Dst: va_end
      Src: /src/nccl/src/debug.cc:314,1
    - Dst: ncclDebugInit
      Src: /src/nccl/src/debug.cc:323,1
    - Dst: ncclOsGetTid
      Src: /src/nccl/src/debug.cc:329,1
    - Dst: clockRealtime
      Src: /src/nccl/src/debug.cc:344,1
    - Dst: ncclOsLocaltime
      Src: /src/nccl/src/debug.cc:348,1
    - Dst: memcpy
      Src: /src/nccl/src/debug.cc:355,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:356,1
    - Dst: strcpy
      Src: /src/nccl/src/debug.cc:360,1
    - Dst: std::strftime
      Src: /src/nccl/src/debug.cc:365,1
    - Dst: std::strftime
      Src: /src/nccl/src/debug.cc:368,1
    - Dst: min
      Src: /src/nccl/src/debug.cc:373,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:377,1
    - Dst: min
      Src: /src/nccl/src/debug.cc:378,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/debug.cc:383,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:388,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/debug.cc:389,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/debug.cc:389,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:391,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:393,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/nccl/src/debug.cc:395,1
    - Dst: std::chrono::duration_cast<std::chrono::duration<double>>
      Src: /src/nccl/src/debug.cc:396,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:397,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:399,1
    - Dst: va_start
      Src: /src/nccl/src/debug.cc:411,1
    - Dst: vfprintf
      Src: /src/nccl/src/debug.cc:412,1
    - Dst: va_end
      Src: /src/nccl/src/debug.cc:413,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 5
    argNames:
    - level
    - flags
    - filefunc
    - line
    - fmt
    argTypes:
    - ncclDebugLogLevel
    - unsigned long
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 414
    functionName: ncclDebugLog
    functionSourceFile: /src/nccl/src/debug.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - ncclOsGetTid
    - COMPILER_ATOMIC_LOAD
    - std::chrono::steady_clock::now
    - vfprintf
    - static_cast<int>
    - va_start
    - ncclDebugInit
    - ncclOsLocaltime
    - min
    - strcpy
    - std::strftime
    - cudaGetDevice
    - COMPILER_ATOMIC_STORE
    - clockRealtime
    - va_end
    - std::chrono::duration_cast<std::chrono::duration<double>>
    - snprintf
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void ncclDebugLog(ncclDebugLogLevel level, unsigned long flags, const
      char *filefunc, int line, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: visibility
      Src: /src/nccl/src/debug.cc:419,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/debug.cc:426,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/debug.cc:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 427
    functionName: ncclResetDebugInitInternal
    functionSourceFile: /src/nccl/src/debug.cc
    functionUses: 0
    functionsReached:
    - visibility
    - static_cast<int>
    - COMPILER_ATOMIC_STORE
    linkageType: ''
    returnType: void
    signature: void ncclResetDebugInitInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResetDebugInitInternal
      Src: /src/nccl/src/debug.cc:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 451
    functionName: ncclResetDebugInit
    functionSourceFile: /src/nccl/src/debug.cc
    functionUses: 0
    functionsReached:
    - ncclResetDebugInitInternal
    linkageType: ''
    returnType: void
    signature: void ncclResetDebugInit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamSetThreadName
      Src: /src/nccl/src/debug.cc:460,1
    - Dst: va_start
      Src: /src/nccl/src/debug.cc:463,1
    - Dst: vsnprintf
      Src: /src/nccl/src/debug.cc:464,1
    - Dst: va_end
      Src: /src/nccl/src/debug.cc:465,1
    - Dst: pthread_setname_np
      Src: /src/nccl/src/debug.cc:466,1
    - Dst: native_handle
      Src: /src/nccl/src/debug.cc:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' thread'
    - fmt
    argTypes:
    - std::thread
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: ncclSetThreadName
    functionSourceFile: /src/nccl/src/debug.cc
    functionUses: 3
    functionsReached:
    - ncclParamSetThreadName
    - va_start
    - va_end
    - pthread_setname_np
    - native_handle
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void ncclSetThreadName(std::thread& thread, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamNvtxDisable
      Src: /src/nccl/src/init_nvtx.cc:25,1
    - Dst: nvtxPayloadEnumRegister
      Src: /src/nccl/src/init_nvtx.cc:40,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/init_nvtx.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: initNvtxRegisteredEnums
    functionSourceFile: /src/nccl/src/init_nvtx.cc
    functionUses: 1
    functionsReached:
    - nvtxPayloadEnumRegister
    - ncclParamNvtxDisable
    - 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: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    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: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    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: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    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: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    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: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    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:46,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/op128.h:46,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:54,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/op128.h:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ptr
    - v0
    - v1
    argTypes:
    - T*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 69
    functionName: loadShmemMisaligned128
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - __funnelshift_r
    - reinterpret_cast<uint32_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:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    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: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    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: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    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: 178
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 178
    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: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    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: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    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: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    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: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    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: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    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: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    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: 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_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: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    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: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    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: 231
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 231
    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: 252
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 252
    functionName: DEFINE_ld_st_gpu_relaxed__size
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    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: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    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: 285
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 285
    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: 294
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 294
    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: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    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:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 309
    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:313,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 318
    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:322,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 327
    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:331,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 336
    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:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - val
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 340
    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:343,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - val
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 347
    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:350,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - val
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 354
    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: 362
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 362
    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: 369
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 369
    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: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    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: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    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: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    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: 393
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 393
    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: 397
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 397
    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: 403
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 403
    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: 408
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 408
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/op128.h:421,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/nccl/src/device/op128.h:422,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/op128.h:422,1
    - Dst: min
      Src: /src/nccl/src/device/op128.h:425,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:434,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - ptr
    - ix
    - end
    argTypes:
    - T*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 446
    functionName: loadPack
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - __funnelshift_r
    - reinterpret_cast<uint32_t*>
    - min
    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: 460
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 460
    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:471,1
    - Dst: min
      Src: /src/nccl/src/device/op128.h:472,1
    - Dst: ld_shared<EltSize>
      Src: /src/nccl/src/device/op128.h:481,1
    - Dst: st_global<EltSize>
      Src: /src/nccl/src/device/op128.h:483,1
    - Dst: divUp
      Src: /src/nccl/src/device/op128.h:493,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:500,1
    - Dst: ld_shared<4>
      Src: /src/nccl/src/device/op128.h:501,1
    - Dst: ld_shared<4>
      Src: /src/nccl/src/device/op128.h:502,1
    - Dst: ld_shared<4>
      Src: /src/nccl/src/device/op128.h:504,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:505,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:506,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:507,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:508,1
    - Dst: multimem_st_global
      Src: /src/nccl/src/device/op128.h:510,1
    - Dst: st_global<16>
      Src: /src/nccl/src/device/op128.h:511,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: 517
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 517
    functionName: copyGlobalShared_WarpUnrolled
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - __funnelshift_r
    - divUp
    - min
    - st_global<EltSize>
    - ld_shared<4>
    - ld_shared<EltSize>
    - multimem_st_global
    - st_global<16>
    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:19,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:46,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_gather.h:54,1
    - Dst: Primitives::directCopySend
      Src: /src/nccl/src/device/all_gather.h:56,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_gather.h:63,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_gather.h:71,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/all_gather.h:76,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/all_gather.h:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 84
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - Primitives::directSend
    - Primitives::directCopySend
    - Primitives::directRecv
    - reduceCopy
    - min
    - barrier_sync
    - ncclCollCbdPart
    - Primitives::directRecvCopyDirectSend
    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:19,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:46,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_gather.h:54,1
    - Dst: Primitives::directCopySend
      Src: /src/nccl/src/device/all_gather.h:56,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_gather.h:63,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_gather.h:71,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/all_gather.h:76,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/all_gather.h:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 84
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - Primitives::directSend
    - Primitives::directCopySend
    - Primitives::directRecv
    - reduceCopy
    - min
    - barrier_sync
    - ncclCollCbdPart
    - Primitives::directRecvCopyDirectSend
    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:92,1
    - Dst: runRing
      Src: /src/nccl/src/device/all_gather.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    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:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:120,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/all_gather.h:123,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/all_gather.h:125,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/all_gather.h:129,1
    - Dst: PatAGAlgorithm::getParallelFactor
      Src: /src/nccl/src/device/all_gather.h:133,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/device/all_gather.h:138,1
    - Dst: PatAGAlgorithm::getNextOp
      Src: /src/nccl/src/device/all_gather.h:139,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/device/all_gather.h:163,1
    - Dst: Primitives::patCopy
      Src: /src/nccl/src/device/all_gather.h:165,1
    - Dst: cuda::atomic_ref::store
      Src: /src/nccl/src/device/all_gather.h:166,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 172
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - ncclScratchForWarp
    - cuda::atomic_ref::load
    - Primitives::patCopy
    - PatAGAlgorithm::getParallelFactor
    - PatAGAlgorithm::getNextOp
    - __syncthreads
    - ncclCollCbdPart
    - cuda::atomic_ref::store
    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:199,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:200,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:219,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/all_gather.h:224,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_gather.h:229,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_gather.h:232,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: 244
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 244
    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:
    - reduceCopy
    - __device__
    - min
    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:252,1
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_gather.h:262,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:272,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/all_gather.h:273,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:284,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/all_gather.h:285,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/all_gather.h:297,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/all_gather.h:300,1
    - Dst: Primitives::recv
      Src: /src/nccl/src/device/all_gather.h:308,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:313,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_gather.h:314,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/0>
      Src: /src/nccl/src/device/all_gather.h:335,1
    - Dst: divUp
      Src: /src/nccl/src/device/all_gather.h:341,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:347,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:348,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/1>
      Src: /src/nccl/src/device/all_gather.h:358,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:361,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:372,1
    - Dst: max
      Src: /src/nccl/src/device/all_gather.h:375,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:376,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/all_gather.h:377,1
    - Dst: max
      Src: /src/nccl/src/device/all_gather.h:377,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/1>
      Src: /src/nccl/src/device/all_gather.h:389,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 395
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - Primitives::gather
    - Primitives::directSend
    - Primitives::send
    - Primitives::scatter
    - divUp
    - min
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
    - max
    - Primitives::template process</*Recv=*/1, /*Send=*/1>
    - ncclCollCbdPart
    - roundUp
    - Primitives::recv
    - Primitives::template process</*Recv=*/1, /*Send=*/0>
    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:423,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:424,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:443,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/all_gather.h:448,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_gather.h:453,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_gather.h:456,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: 470
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 470
    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:
    - reduceCopy
    - __device__
    - min
    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:499,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:500,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_gather.h:502,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:510,1
    - Dst: max
      Src: /src/nccl/src/device/all_gather.h:513,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:514,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/all_gather.h:515,1
    - Dst: max
      Src: /src/nccl/src/device/all_gather.h:515,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:526,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_gather.h:528,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/1>
      Src: /src/nccl/src/device/all_gather.h:539,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/0>
      Src: /src/nccl/src/device/all_gather.h:557,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 561
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - Primitives::send
    - divUp
    - min
    - __syncwarp
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
    - max
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
    - Primitives::template process</*Recv=*/1, /*Send=*/1>
    - Primitives::template process</*Recv=*/1, /*Send=*/0>
    linkageType: ''
    returnType: void
    signature: void run(int tid, int/*nthreads*/, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setDataPtrs
      Src: /src/nccl/src/device/all_gather_v.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' prims'
    - srcBuf
    - dstBuf
    - redOpArg
    argTypes:
    - Primitives<T, RedOp, FanSymmetric<1>, 0, Proto, 0, 0>
    - void*
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: setDataPtrsHelper
    functionSourceFile: /src/nccl/src/device/all_gather_v.h
    functionUses: 0
    functionsReached:
    - setDataPtrs
    linkageType: ''
    returnType: __device__
    signature: "__device__ setDataPtrsHelper(Primitives<T, RedOp, FanSymmetric<1>,
      0, Proto, 0, 0>& prims,\n                                                    void
      const* srcBuf, void* dstBuf, uint64_t redOpArg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setDataPtrs
      Src: /src/nccl/src/device/all_gather_v.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' prims'
    - srcBuf
    - dstBuf
    - redOpArg
    argTypes:
    - Primitives<T, RedOp, FanSymmetric<1>, 0, ProtoSimple<1,1>, 0, 0>
    - void*
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: setDataPtrsHelper
    functionSourceFile: /src/nccl/src/device/all_gather_v.h
    functionUses: 0
    functionsReached:
    - setDataPtrs
    linkageType: ''
    returnType: __device__
    signature: "__device__ setDataPtrsHelper(Primitives<T, RedOp, FanSymmetric<1>,
      0, ProtoSimple<1,1>, 0, 0>& prims,\n                                                    void
      const* srcBuf, void* dstBuf, uint64_t redOpArg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setDataPtrs
      Src: /src/nccl/src/device/all_gather_v.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' prims'
    - srcBuf
    - dstBuf
    - redOpArg
    argTypes:
    - Primitives<T, RedOp, FanSymmetric<1>, 0, Proto, 0, 0>
    - void*
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: setDataPtrsHelper
    functionSourceFile: /src/nccl/src/device/all_gather_v.h
    functionUses: 0
    functionsReached:
    - setDataPtrs
    linkageType: ''
    returnType: __device__
    signature: "__device__ setDataPtrsHelper(Primitives<T, RedOp, FanSymmetric<1>,
      0, Proto, 0, 0>& prims,\n                                                    void
      const* srcBuf, void* dstBuf, uint64_t redOpArg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setDataPtrs
      Src: /src/nccl/src/device/all_gather_v.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' prims'
    - srcBuf
    - dstBuf
    - redOpArg
    argTypes:
    - Primitives<T, RedOp, FanSymmetric<1>, 0, ProtoSimple<1,1>, 0, 0>
    - void*
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: setDataPtrsHelper
    functionSourceFile: /src/nccl/src/device/all_gather_v.h
    functionUses: 0
    functionsReached:
    - setDataPtrs
    linkageType: ''
    returnType: __device__
    signature: "__device__ setDataPtrsHelper(Primitives<T, RedOp, FanSymmetric<1>,
      0, ProtoSimple<1,1>, 0, 0>& prims,\n                                                    void
      const* srcBuf, void* dstBuf, uint64_t redOpArg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: setDataPtrsHelper
      Src: /src/nccl/src/device/all_gather_v.h:47,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/all_gather_v.h:49,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather_v.h:54,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/all_gather_v.h:59,1
    - Dst: Primitives::copySend
      Src: /src/nccl/src/device/all_gather_v.h:61,1
    - Dst: Primitives::recv
      Src: /src/nccl/src/device/all_gather_v.h:64,1
    - Dst: Primitives::recvCopySend
      Src: /src/nccl/src/device/all_gather_v.h:66,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/all_gather_v.h:74,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 87
    functionName: runAllGatherV
    functionSourceFile: /src/nccl/src/device/all_gather_v.h
    functionUses: 0
    functionsReached:
    - setDataPtrsHelper
    - Primitives::recvCopySend
    - Primitives::send
    - Primitives::copySend
    - min
    - __syncthreads
    - Primitives::recv
    linkageType: ''
    returnType: __device__
    signature: __device__ runAllGatherV()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runAllGatherV
      Src: /src/nccl/src/device/all_gather_v.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather_v.h
    functionUses: 0
    functionsReached:
    - runAllGatherV
    linkageType: ''
    returnType: void
    signature: void run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runAllGatherV
      Src: /src/nccl/src/device/all_gather_v.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather_v.h
    functionUses: 0
    functionsReached:
    - runAllGatherV
    linkageType: ''
    returnType: void
    signature: void run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runAllGatherV
      Src: /src/nccl/src/device/all_gather_v.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather_v.h
    functionUses: 0
    functionsReached:
    - runAllGatherV
    linkageType: ''
    returnType: void
    signature: void run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/reduce.h:23,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:36,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/reduce.h:37,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:43,1
    - Dst: Primitives::recvReduceCopy
      Src: /src/nccl/src/device/reduce.h:44,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:50,1
    - Dst: Primitives::recvReduceSend
      Src: /src/nccl/src/device/reduce.h:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 54
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/reduce.h
    functionUses: 3
    functionsReached:
    - Primitives::recvReduceSend
    - Primitives::recvReduceCopy
    - Primitives::send
    - min
    - ncclCollCbdPart
    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:23,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:36,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/reduce.h:37,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:43,1
    - Dst: Primitives::recvReduceCopy
      Src: /src/nccl/src/device/reduce.h:44,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:50,1
    - Dst: Primitives::recvReduceSend
      Src: /src/nccl/src/device/reduce.h:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 54
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/reduce.h
    functionUses: 3
    functionsReached:
    - Primitives::recvReduceSend
    - Primitives::recvReduceCopy
    - Primitives::send
    - min
    - ncclCollCbdPart
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    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: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: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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: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/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: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    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: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    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: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    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: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    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: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    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: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - nrecv
    - nsend
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    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: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    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: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    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:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    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:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    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:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    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:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    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: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    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:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    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:136,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: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    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:139,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: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    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: 153
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 153
    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:21,1
    - Dst: alignUp
      Src: /src/nccl/src/device/all_reduce.h:37,1
    - Dst: divUp
      Src: /src/nccl/src/device/all_reduce.h:37,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_reduce.h:39,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:44,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:47,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:48,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:52,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:55,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:56,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:64,1
    - Dst: Primitives::directRecvReduceCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:65,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:69,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:72,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:73,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:77,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:80,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 84
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 6
    functionsReached:
    - ncclCollCbdPart
    - Primitives::directSend
    - Primitives::directRecv
    - divUp
    - min
    - Primitives::directRecvReduceDirectSend
    - modRanks
    - alignUp
    - Primitives::directRecvReduceCopyDirectSend
    - __device__
    - Primitives::directRecvCopyDirectSend
    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:92,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:102,1
    - Dst: Primitives::directRecvReduceCopy
      Src: /src/nccl/src/device/all_reduce.h:103,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:109,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:110,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:116,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:117,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:128,1
    - Dst: Primitives::directSendFromOutput
      Src: /src/nccl/src/device/all_reduce.h:129,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:135,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:136,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:142,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 147
    functionName: runTreeUpDown
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - Primitives::directSend
    - Primitives::directRecvReduceCopy
    - Primitives::directRecv
    - min
    - Primitives::directRecvReduceDirectSend
    - Primitives::directSendFromOutput
    - ncclCollCbdPart
    - Primitives::directRecvCopyDirectSend
    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:155,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:174,1
    - Dst: Primitives::directRecvReduceCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:175,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:195,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:196,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:202,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:203,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:218,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:219,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:225,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:226,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 230
    functionName: runTreeSplit
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - Primitives::directSend
    - Primitives::directRecv
    - min
    - Primitives::directRecvReduceDirectSend
    - ncclCollCbdPart
    - Primitives::directRecvReduceCopyDirectSend
    - Primitives::directRecvCopyDirectSend
    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:21,1
    - Dst: alignUp
      Src: /src/nccl/src/device/all_reduce.h:37,1
    - Dst: divUp
      Src: /src/nccl/src/device/all_reduce.h:37,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_reduce.h:39,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:44,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:47,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:48,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:52,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:55,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:56,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:64,1
    - Dst: Primitives::directRecvReduceCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:65,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:69,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:72,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:73,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:77,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:80,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 84
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 6
    functionsReached:
    - ncclCollCbdPart
    - Primitives::directSend
    - Primitives::directRecv
    - divUp
    - min
    - Primitives::directRecvReduceDirectSend
    - modRanks
    - alignUp
    - Primitives::directRecvReduceCopyDirectSend
    - __device__
    - Primitives::directRecvCopyDirectSend
    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:92,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:102,1
    - Dst: Primitives::directRecvReduceCopy
      Src: /src/nccl/src/device/all_reduce.h:103,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:109,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:110,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:116,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:117,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:128,1
    - Dst: Primitives::directSendFromOutput
      Src: /src/nccl/src/device/all_reduce.h:129,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:135,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:136,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:142,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 147
    functionName: runTreeUpDown
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - Primitives::directSend
    - Primitives::directRecvReduceCopy
    - Primitives::directRecv
    - min
    - Primitives::directRecvReduceDirectSend
    - Primitives::directSendFromOutput
    - ncclCollCbdPart
    - Primitives::directRecvCopyDirectSend
    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:155,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:174,1
    - Dst: Primitives::directRecvReduceCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:175,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:195,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:196,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:202,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:203,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:218,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:219,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:225,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:226,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 230
    functionName: runTreeSplit
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - Primitives::directSend
    - Primitives::directRecv
    - min
    - Primitives::directRecvReduceDirectSend
    - ncclCollCbdPart
    - Primitives::directRecvReduceCopyDirectSend
    - Primitives::directRecvCopyDirectSend
    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:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    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:245,1
    - Dst: runTreeSplit
      Src: /src/nccl/src/device/all_reduce.h:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - runTreeUpDown
    - runTreeSplit
    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:294,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/all_reduce.h:295,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:309,1
    - Dst: Primitives::recvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:310,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:316,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_reduce.h:318,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:325,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/all_reduce.h:326,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:348,1
    - Dst: Primitives::directGather
      Src: /src/nccl/src/device/all_reduce.h:349,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:363,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:364,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:369,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_reduce.h:371,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:379,1
    - Dst: Primitives::recv
      Src: /src/nccl/src/device/all_reduce.h:380,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 65
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 385
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - Primitives::directGather
    - Primitives::send
    - Primitives::scatter
    - Primitives::recvReduceDirectSend
    - min
    - __syncwarp
    - "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::directRecvCopyDirectSend
    - 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:411,1
    - Dst: alignUp
      Src: /src/nccl/src/device/all_reduce.h:414,1
    - Dst: divUp
      Src: /src/nccl/src/device/all_reduce.h:414,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:425,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/all_reduce.h:426,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:437,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/all_reduce.h:438,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:452,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:453,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:471,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/all_reduce.h:472,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:483,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/all_reduce.h:484,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:498,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:499,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:513,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:514,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 518
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - Primitives::gather
    - ncclCollCbdPart
    - Primitives::scatter
    - divUp
    - min
    - alignUp
    - Primitives::directRecvDirectSend
    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:528,1
    - Dst: alignUp
      Src: /src/nccl/src/device/all_reduce.h:540,1
    - Dst: divUp
      Src: /src/nccl/src/device/all_reduce.h:540,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:560,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/all_reduce.h:561,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:572,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/all_reduce.h:573,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:587,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:588,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:604,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:605,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:622,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:623,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 626
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - Primitives::gather
    - ncclCollCbdPart
    - Primitives::scatter
    - divUp
    - min
    - alignUp
    - Primitives::directRecvDirectSend
    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:667,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_reduce.h:669,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:676,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:678,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:688,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:690,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:701,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_reduce.h:703,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:713,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:714,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:726,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:727,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:740,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:741,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:746,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:747,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 752
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - Primitives::directSend
    - Primitives::directRecv
    - min
    - Primitives::directRecvReduceDirectSend
    - __syncwarp
    - "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::directRecvCopyDirectSend
    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:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 759
    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:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 766
    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:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 773
    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:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 780
    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:22,1
    - Dst: min
      Src: /src/nccl/src/device/broadcast.h:41,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/broadcast.h:45,1
    - Dst: Primitives::directCopySend
      Src: /src/nccl/src/device/broadcast.h:47,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/broadcast.h:50,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/broadcast.h:52,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/broadcast.h:58,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/broadcast.h:61,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 62
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/broadcast.h
    functionUses: 9
    functionsReached:
    - Primitives::directSend
    - Primitives::directCopySend
    - Primitives::directRecv
    - reduceCopy
    - min
    - barrier_sync
    - ncclCollCbdPart
    - Primitives::directRecvCopyDirectSend
    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:22,1
    - Dst: min
      Src: /src/nccl/src/device/broadcast.h:41,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/broadcast.h:45,1
    - Dst: Primitives::directCopySend
      Src: /src/nccl/src/device/broadcast.h:47,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/broadcast.h:50,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/broadcast.h:52,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/broadcast.h:58,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/broadcast.h:61,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 62
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/broadcast.h
    functionUses: 9
    functionsReached:
    - Primitives::directSend
    - Primitives::directCopySend
    - Primitives::directRecv
    - reduceCopy
    - min
    - barrier_sync
    - ncclCollCbdPart
    - Primitives::directRecvCopyDirectSend
    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: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: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    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: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/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:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    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:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - warp
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    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: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    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: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    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: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    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: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    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: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    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: 121
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 121
    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:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - tid
    - dst
    - src
    - bytes
    argTypes:
    - int
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 132
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/common.h:147,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/common.h:148,1
    - Dst: __popc
      Src: /src/nccl/src/device/common.h:150,1
    - Dst: __popc
      Src: /src/nccl/src/device/common.h:153,1
    - Dst: __popc
      Src: /src/nccl/src/device/common.h:156,1
    - Dst: __popc
      Src: /src/nccl/src/device/common.h:159,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/common.h:160,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 4
    argNames:
    - tid
    - tn
    - args
    - batchIx
    argTypes:
    - int
    - int
    - struct ncclDevKernelArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 252
    functionName: loadWorkBatchToShmem
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached:
    - __syncwarp
    - ncclScratchForWarp
    - __popc
    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: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    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: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    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:291,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/device/common.h:291,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:294,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:302,1
    - Dst: RunWorkColl<Fn, T, RedOp, Algo, Proto>
      Src: /src/nccl/src/device/common.h:308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 310
    functionName: run
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached:
    - loadArg
    - RunWorkColl<Fn, T, RedOp, Algo, Proto>
    - reinterpret_cast<void*>
    - __syncthreads
    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: 321
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 321
    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:329,1
    - Dst: globaltimer
      Src: /src/nccl/src/device/common.h:330,1
    - Dst: profilerEnabled
      Src: /src/nccl/src/device/common.h:335,1
    - Dst: globaltimer
      Src: /src/nccl/src/device/common.h:336,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - action
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 343
    functionName: profiler
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached:
    - globaltimer
    - profilerEnabled
    linkageType: ''
    returnType: __device__
    signature: __device__ profiler(int action)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __popcll
      Src: /src/nccl/src/device/common.h:361,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:364,1
    - Dst: copyToShmem16
      Src: /src/nccl/src/device/common.h:378,1
    - Dst: copyToShmem16
      Src: /src/nccl/src/device/common.h:386,1
    - Dst: loadWorkBatchToShmem
      Src: /src/nccl/src/device/common.h:394,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:397,1
    - Dst: profiler
      Src: /src/nccl/src/device/common.h:400,1
    - Dst: SpecializedRunWorkBatch
      Src: /src/nccl/src/device/common.h:402,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:409,1
    - Dst: profiler
      Src: /src/nccl/src/device/common.h:410,1
    - Dst: loadWorkBatchToShmem
      Src: /src/nccl/src/device/common.h:411,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:412,1
    - Dst: profiler
      Src: /src/nccl/src/device/common.h:414,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct ncclDevKernelArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 415
    functionName: ncclKernelMain
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached:
    - loadWorkBatchToShmem
    - profiler
    - copyToShmem16
    - __syncthreads
    - __popcll
    - SpecializedRunWorkBatch
    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: 424
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 424
    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: 427
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 427
    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: 432
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 432
    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:60,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:63,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_simple.h:67,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:70,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:76,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_simple.h:81,1
    - Dst: barrier_red_or
      Src: /src/nccl/src/device/prims_simple.h:84,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_simple.h:89,1
    - Dst: barrier_red_or
      Src: /src/nccl/src/device/prims_simple.h:92,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/prims_simple.h:100,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/prims_simple.h:106,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:117,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:118,1
    - Dst: loadInt
      Src: /src/nccl/src/device/prims_simple.h:143,1
    - Dst: ncclNetDeviceIncrementHead
      Src: /src/nccl/src/device/prims_simple.h:167,1
    - Dst: fence_acq_rel_sys
      Src: /src/nccl/src/device/prims_simple.h:178,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:180,1
    - Dst: max
      Src: /src/nccl/src/device/prims_simple.h:195,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_simple.h:195,1
    - Dst: waitPeer<DirectRecv, DirectSend, Recv, Send, Src, Dst>
      Src: /src/nccl/src/device/prims_simple.h:237,1
    - Dst: subBarrier
      Src: /src/nccl/src/device/prims_simple.h:238,1
    - Dst: ncclNetDeviceUnpack
      Src: /src/nccl/src/device/prims_simple.h:243,1
    - Dst: subBarrier
      Src: /src/nccl/src/device/prims_simple.h:245,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:254,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:257,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:262,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: setDataPtrs
      Src: /src/nccl/src/device/prims_simple.h:652,1
    - Dst: barrierAny
      Src: /src/nccl/src/device/prims_simple.h:655,1
    - Dst: __ballot_sync
      Src: /src/nccl/src/device/prims_simple.h:659,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: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 735
    functionName: ~Primitives()
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - ncclNetDeviceIncrementHead
    - divUp
    - template operator()<SlicePerChunk, 0, Recv*MaxRecv, 0, Send*MaxSend, MultimemSrcs,
      MultimemDsts>
    - assert
    - __syncwarp
    - barrier_sync
    - postPeer<Recv, Send>
    - ld_volatile_global
    - loadRecvConn
    - waitPeer<DirectRecv, DirectSend, Recv, Send, Src, Dst>
    - nsend
    - ncclNetDeviceSaveHead
    - ncclNetDeviceUnpackSetup
    - patBarrier
    - cvta_to_global
    - loadStepValue
    - waitPeer<0, DirectSend, 0, 1, 1, 0>
    - tid
    - DIVUP
    - st_relaxed_sys_global
    - loadSendConn
    - waitPeer<DirectRecv, 0, 1, 0, 0, 1>
    - subBarrier
    - reduceCopy
    - min
    - setDataPtrs
    - fence_acq_rel_sys
    - max
    - barrier_red_or
    - nrecv
    - checkAbort
    - __ballot_sync
    - roundUp
    - Fan
    - barrier
    - __any_sync
    - barrierAny
    - loadInt
    - ncclNetDeviceUnpack
    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, /*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.groups[group].redOpArgs,
      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 : 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.groups[group].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.groups[group].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.groups[group].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.groups[group].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      // 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\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    } 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.groups[group].redOpArgs
      = 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, /*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.groups[group].redOpArgs,
      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 : 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.groups[group].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.groups[group].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.groups[group].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.groups[group].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      // 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\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    } 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.groups[group].redOpArgs
      = 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:60,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    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:
    - __syncwarp
    - barrier_sync
    linkageType: ''
    returnType: __device__
    signature: __device__ barrier()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_simple.h:67,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    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:
    - __syncwarp
    - barrier_sync
    linkageType: ''
    returnType: __device__
    signature: __device__ subBarrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    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:81,1
    - Dst: barrier_red_or
      Src: /src/nccl/src/device/prims_simple.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vote
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 86
    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:89,1
    - Dst: barrier_red_or
      Src: /src/nccl/src/device/prims_simple.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vote
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    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:100,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/prims_simple.h:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 107
    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:117,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:118,1
    - Dst: loadInt
      Src: /src/nccl/src/device/prims_simple.h:143,1
    - Dst: ncclNetDeviceIncrementHead
      Src: /src/nccl/src/device/prims_simple.h:167,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: 171
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 171
    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:
    - ncclNetDeviceIncrementHead
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
    - loadInt
    - 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:178,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - dataStored
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 182
    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:195,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_simple.h:195,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:237,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:238,1
    - Dst: ncclNetDeviceUnpack
      Src: /src/nccl/src/device/prims_simple.h:243,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:245,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:254,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:257,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:262,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: 185
    functionDepth: 4
    functionLinenumber: 185
    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:
    - reduceCopy
    - divUp
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::postPeer"
    - nsend
    - "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  >::barrier"
    - max
    - ncclNetDeviceUnpack
    - nrecv
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::waitPeer"
    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:
    - ld_volatile_global
    - st_relaxed_sys_global
    - checkAbort
    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"
    - nsend
    - "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  >::barrier"
    - loadInt
    - fence_acq_rel_sys
    - st_relaxed_sys_global
    - nrecv
    - checkAbort
    - Fn::template operator()<SlicePerChunk, 0, Recv*MaxRecv, 0, Send*MaxSend, MultimemSrcs,
      MultimemDsts>
    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:
    - reduceCopy
    - min
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::postPeer"
    - nsend
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrier"
    - max
    - DIVUP
    - nrecv
    - "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"
    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:
    - ncclNetDeviceUnpackSetup
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
    - roundUp
    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: setDataPtrs
      Src: /src/nccl/src/device/prims_simple.h:652,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:655,1
    - Dst: __ballot_sync
      Src: /src/nccl/src/device/prims_simple.h:659,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:
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadSendConn"
    - setDataPtrs
    - assert
    - "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  >::barrierAny"
    - __ballot_sync
    - Fan
    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  >::patBarrier"
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
    linkageType: ''
    returnType: else
    signature: else if (mode == primsModePatRs || mode == primsModePatAg)
  - BBCount: 16
    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:765,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:774,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/device/prims_simple.h:778,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:791,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/device/prims_simple.h:809,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:818,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/device/prims_simple.h:822,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 62
    argCount: 6
    argNames:
    - inputBuf
    - outputBuf
    - redOpArg
    - work
    - ipcReg
    - peer
    argTypes:
    - void*
    - void*
    - uint64_t
    - struct ncclDevWorkCollReg*
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 833
    functionName: setDataPtrs
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 6
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<void*>
    - 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: 840
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 840
    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:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 844
    functionName: send
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 12
    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:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 847
    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:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 850
    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:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 853
    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:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 857
    functionName: recv
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 9
    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:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 860
    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:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 863
    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:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 867
    functionName: copySend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 1
    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:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 870
    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:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eltN
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 874
    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:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 877
    functionName: recvCopySend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 1
    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:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 880
    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:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 883
    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:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 886
    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:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 889
    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: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: 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:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 896
    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:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 899
    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:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 903
    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:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 906
    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:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 909
    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:911,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: 912
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 912
    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:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 916
    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:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 920
    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:922,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: 923
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 923
    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:927,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: 928
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 928
    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:931,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: 932
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 932
    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:936,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: 937
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 937
    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:940,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: 941
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 941
    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:944,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:944,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:967,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:968,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:974,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:975,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:998,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:1005,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1015,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1019,1
    - Dst: atomicMax
      Src: /src/nccl/src/device/prims_simple.h:1023,1
    - Dst: atomicMax
      Src: /src/nccl/src/device/prims_simple.h:1024,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:1026,1
    - Dst: fence_acq_rel_sys
      Src: /src/nccl/src/device/prims_simple.h:1029,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:1033,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 74
    argCount: 2
    argNames:
    - ps
    - shmem
    argTypes:
    - struct ncclPatStep*
    - struct ncclPatShmem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 943
    functionDepth: 2
    functionLinenumber: 943
    functionLinenumberEnd: 1035
    functionName: patReduce
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - loadStepValue
    - reduceCopy
    - fence_acq_rel_sys
    - atomicMax
    - st_relaxed_sys_global
    - checkAbort
    - patBarrier
    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:1038,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:1038,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:1061,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:1062,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:1074,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:1075,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:1091,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:1099,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1109,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1113,1
    - Dst: atomicMax
      Src: /src/nccl/src/device/prims_simple.h:1117,1
    - Dst: atomicMax
      Src: /src/nccl/src/device/prims_simple.h:1118,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:1120,1
    - Dst: fence_acq_rel_sys
      Src: /src/nccl/src/device/prims_simple.h:1123,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:1127,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 76
    argCount: 2
    argNames:
    - ps
    - shmem
    argTypes:
    - struct ncclPatStep*
    - struct ncclPatShmem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1129
    functionName: patCopy
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 1
    functionsReached:
    - loadStepValue
    - reduceCopy
    - fence_acq_rel_sys
    - atomicMax
    - st_relaxed_sys_global
    - checkAbort
    - patBarrier
    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:47,1
    - Dst: sendOffset
      Src: /src/nccl/src/device/prims_ll.h:48,1
    - Dst: NCCL_LL_FLAG
      Src: /src/nccl/src/device/prims_ll.h:49,1
    - Dst: NCCL_LL_FLAG
      Src: /src/nccl/src/device/prims_ll.h:50,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll.h:54,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_ll.h:56,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:67,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll.h:75,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll.h:82,1
    - Dst: storeLL
      Src: /src/nccl/src/device/prims_ll.h:90,1
    - Dst: sendPtr
      Src: /src/nccl/src/device/prims_ll.h:90,1
    - Dst: sendFlag
      Src: /src/nccl/src/device/prims_ll.h:90,1
    - Dst: recvPtr
      Src: /src/nccl/src/device/prims_ll.h:96,1
    - Dst: recvFlag
      Src: /src/nccl/src/device/prims_ll.h:97,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:102,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:114,1
    - Dst: recvPtr
      Src: /src/nccl/src/device/prims_ll.h:115,1
    - Dst: recvPtr
      Src: /src/nccl/src/device/prims_ll.h:121,1
    - Dst: recvFlag
      Src: /src/nccl/src/device/prims_ll.h:122,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:126,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll.h:186,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/nccl/src/device/prims_ll.h:187,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll.h:187,1
    - Dst: load
      Src: /src/nccl/src/device/prims_ll.h:188,1
    - Dst: load
      Src: /src/nccl/src/device/prims_ll.h:189,1
    - Dst: load
      Src: /src/nccl/src/device/prims_ll.h:191,1
    - Dst: load
      Src: /src/nccl/src/device/prims_ll.h:199,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/prims_ll.h:206,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/prims_ll.h:208,1
    - Dst: waitSend
      Src: /src/nccl/src/device/prims_ll.h:239,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_ll.h:239,1
    - Dst: DataLoader::loadBegin
      Src: /src/nccl/src/device/prims_ll.h:253,1
    - Dst: readLLBeginAll<1>
      Src: /src/nccl/src/device/prims_ll.h:257,1
    - Dst: readLL
      Src: /src/nccl/src/device/prims_ll.h:258,1
    - Dst: DataLoader::loadFinish
      Src: /src/nccl/src/device/prims_ll.h:261,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll.h:262,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll.h:265,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:269,1
    - Dst: readLLFinish
      Src: /src/nccl/src/device/prims_ll.h:270,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll.h:271,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll.h:275,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:281,1
    - Dst: storeLL
      Src: /src/nccl/src/device/prims_ll.h:282,1
    - Dst: sendPtr
      Src: /src/nccl/src/device/prims_ll.h:282,1
    - Dst: sendFlag
      Src: /src/nccl/src/device/prims_ll.h:282,1
    - Dst: storeLL
      Src: /src/nccl/src/device/prims_ll.h:283,1
    - Dst: sendPtr
      Src: /src/nccl/src/device/prims_ll.h:283,1
    - Dst: sendFlag
      Src: /src/nccl/src/device/prims_ll.h:283,1
    - Dst: storeData
      Src: /src/nccl/src/device/prims_ll.h:286,1
    - Dst: incRecv
      Src: /src/nccl/src/device/prims_ll.h:294,1
    - Dst: postRecv
      Src: /src/nccl/src/device/prims_ll.h:295,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:300,1
    - Dst: incSend
      Src: /src/nccl/src/device/prims_ll.h:301,1
    - Dst: incSend
      Src: /src/nccl/src/device/prims_ll.h:302,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:312,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:324,1
    - Dst: redOp
      Src: /src/nccl/src/device/prims_ll.h:339,1
    - Dst: loadRecvConn
      Src: /src/nccl/src/device/prims_ll.h:349,1
    - Dst: loadSendConn
      Src: /src/nccl/src/device/prims_ll.h:354,1
    - Dst: Fan
      Src: /src/nccl/src/device/prims_ll.h:357,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:369,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:371,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll.h:374,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 193
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 375
    functionName: ~Primitives()
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - divUp
    - __syncwarp
    - barrier_sync
    - loadRecvConn
    - nsend
    - recvPtr
    - storeData
    - recvFlag
    - loadSendConn
    - incSend
    - applyReduce
    - redOp
    - sendFlag
    - applyPostOp
    - reinterpret_cast<uintptr_t>
    - NCCL_LL_FLAG
    - storeLL
    - waitSend
    - nrecv
    - checkAbort
    - load
    - incRecv
    - Fan
    - reinterpret_cast<uint32_t*>
    - readLLFinish
    - barrier
    - postRecv
    - __funnelshift_r
    - sendPtr
    - DataLoader::loadBegin
    - readLL
    - DataLoader::loadFinish
    - sendOffset
    - applyPreOp
    - recvOffset
    - readLLBeginAll<1>
    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#if defined(NCCL_OS_WINDOWS)\n  // MSVC
      rejects zero-length arrays; clamp to 1 on Windows only.\n  static constexpr
      int MaxSend = Fan::MaxSend > 1 ? Fan::MaxSend : 1;\n#else\n  static constexpr
      int MaxSend = Fan::MaxSend;\n#endif\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#if defined(NCCL_OS_WINDOWS)\n  // MSVC
      rejects zero-length arrays; clamp to 1 on Windows only.\n  static constexpr
      int MaxSend = Fan::MaxSend > 1 ? Fan::MaxSend : 1;\n#else\n  static constexpr
      int MaxSend = Fan::MaxSend;\n#endif\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: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: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, 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: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, 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:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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:54,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_ll.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::barrier
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - __syncwarp
    - barrier_sync
    linkageType: ''
    returnType: __device__
    signature: __device__ barrier()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:67,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::barrier
      Src: /src/nccl/src/device/prims_ll.h:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - nbytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 76
    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: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    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:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 84
    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:90,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendPtr
      Src: /src/nccl/src/device/prims_ll.h:90,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendFlag
      Src: /src/nccl/src/device/prims_ll.h:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - i
    - offset
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 93
    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>::storeLL
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendFlag
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendPtr
    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:96,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvFlag
      Src: /src/nccl/src/device/prims_ll.h:97,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - offset
    - i
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLL
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvFlag
    - checkAbort
    linkageType: ''
    returnType: __device__
    signature: __device__ readLL(int offset, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:114,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
      Src: /src/nccl/src/device/prims_ll.h:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - (line)
    argTypes:
    - int
    - ncclLLFifoLine[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLBeginAll
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
    - nrecv
    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:121,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvFlag
      Src: /src/nccl/src/device/prims_ll.h:122,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - offset
    - (line)
    - i
    argTypes:
    - int
    - ncclLLFifoLine[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLFinish
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvFlag
    - checkAbort
    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: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    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: 155
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 155
    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: 174
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 174
    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:186,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/nccl/src/device/prims_ll.h:187,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll.h:187,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
      Src: /src/nccl/src/device/prims_ll.h:188,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
      Src: /src/nccl/src/device/prims_ll.h:189,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
      Src: /src/nccl/src/device/prims_ll.h:191,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
      Src: /src/nccl/src/device/prims_ll.h:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - src
    - eltN
    argTypes:
    - T*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 202
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadBegin
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
    - reinterpret_cast<uint32_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:206,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/prims_ll.h:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 211
    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: 228
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 228
    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:239,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_ll.h:239,1
    - Dst: DataLoader::loadBegin
      Src: /src/nccl/src/device/prims_ll.h:253,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLBeginAll
      Src: /src/nccl/src/device/prims_ll.h:257,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLL
      Src: /src/nccl/src/device/prims_ll.h:258,1
    - Dst: DataLoader::loadFinish
      Src: /src/nccl/src/device/prims_ll.h:261,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll.h:262,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll.h:265,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:269,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLFinish
      Src: /src/nccl/src/device/prims_ll.h:270,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll.h:271,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll.h:275,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:281,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeLL
      Src: /src/nccl/src/device/prims_ll.h:282,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendPtr
      Src: /src/nccl/src/device/prims_ll.h:282,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendFlag
      Src: /src/nccl/src/device/prims_ll.h:282,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeLL
      Src: /src/nccl/src/device/prims_ll.h:283,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendPtr
      Src: /src/nccl/src/device/prims_ll.h:283,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendFlag
      Src: /src/nccl/src/device/prims_ll.h:283,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeData
      Src: /src/nccl/src/device/prims_ll.h:286,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incRecv
      Src: /src/nccl/src/device/prims_ll.h:294,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::postRecv
      Src: /src/nccl/src/device/prims_ll.h:295,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:300,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incSend
      Src: /src/nccl/src/device/prims_ll.h:301,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incSend
      Src: /src/nccl/src/device/prims_ll.h:302,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: 304
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 304
    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>::readLLFinish
    - divUp
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incSend
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::postRecv
    - nsend
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incRecv
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::waitSend
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeData
    - applyReduce
    - applyPostOp
    - nrecv
    - 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>::readLL
    - DataLoader::loadBegin
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeLL
    - DataLoader::loadFinish
    - applyPreOp
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLBeginAll
    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: 310
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 310
    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:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 316
    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: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    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:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 330
    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:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 351
    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:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 356
    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: 380
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: setDataPtrs
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 6
    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: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    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:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: send
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 15
    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:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 392
    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:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: recv
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 13
    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:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 398
    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:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    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: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: copySend
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 1
    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:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: recvCopySend
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 1
    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:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 410
    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:48,1
    - Dst: sendOffset
      Src: /src/nccl/src/device/prims_ll128.h:49,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_ll128.h:54,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll128.h:64,1
    - Dst: __threadfence_system
      Src: /src/nccl/src/device/prims_ll128.h:79,1
    - Dst: __threadfence
      Src: /src/nccl/src/device/prims_ll128.h:81,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:90,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:102,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:109,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/nccl/src/device/prims_ll128.h:110,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:110,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/prims_ll128.h:111,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:111,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:115,1
    - Dst: storeShmem128
      Src: /src/nccl/src/device/prims_ll128.h:118,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll128.h:120,1
    - Dst: loadShmemMisaligned128
      Src: /src/nccl/src/device/prims_ll128.h:130,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:154,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/prims_ll128.h:155,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:155,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:161,1
    - Dst: storeShmem128
      Src: /src/nccl/src/device/prims_ll128.h:163,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll128.h:166,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:169,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll128.h:182,1
    - Dst: recvPtr
      Src: /src/nccl/src/device/prims_ll128.h:185,1
    - Dst: recvFlag
      Src: /src/nccl/src/device/prims_ll128.h:186,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:193,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll128.h:196,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_ll128.h:197,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:201,1
    - Dst: loadRegsFinish
      Src: /src/nccl/src/device/prims_ll128.h:208,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll128.h:212,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll128.h:214,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:224,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:225,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll128.h:231,1
    - Dst: recvFlag
      Src: /src/nccl/src/device/prims_ll128.h:232,1
    - Dst: recvPtr
      Src: /src/nccl/src/device/prims_ll128.h:233,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:240,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll128.h:243,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_ll128.h:244,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:248,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:252,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:253,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll128.h:262,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll128.h:263,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:271,1
    - Dst: sendFlag
      Src: /src/nccl/src/device/prims_ll128.h:272,1
    - Dst: sendPtr
      Src: /src/nccl/src/device/prims_ll128.h:273,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:276,1
    - Dst: sendFlag
      Src: /src/nccl/src/device/prims_ll128.h:279,1
    - Dst: sendPtr
      Src: /src/nccl/src/device/prims_ll128.h:280,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:283,1
    - Dst: waitSend
      Src: /src/nccl/src/device/prims_ll128.h:302,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_ll128.h:302,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll128.h:303,1
    - Dst: min
      Src: /src/nccl/src/device/prims_ll128.h:308,1
    - Dst: loadRegsBegin
      Src: /src/nccl/src/device/prims_ll128.h:310,1
    - Dst: recvReduceSendCopy<NCCL_LL128_SHMEM_ELEMS_PER_THREAD, RECV, SEND, SrcBuf,
        DstBuf>
      Src: /src/nccl/src/device/prims_ll128.h:311,1
    - Dst: storeRegs
      Src: /src/nccl/src/device/prims_ll128.h:312,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll128.h:320,1
    - Dst: postSend
      Src: /src/nccl/src/device/prims_ll128.h:322,1
    - Dst: postRecv
      Src: /src/nccl/src/device/prims_ll128.h:324,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll128.h:333,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:345,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:351,1
    - Dst: redOp
      Src: /src/nccl/src/device/prims_ll128.h:366,1
    - Dst: loadRecvConn
      Src: /src/nccl/src/device/prims_ll128.h:374,1
    - Dst: loadSendConn
      Src: /src/nccl/src/device/prims_ll128.h:378,1
    - Dst: Fan
      Src: /src/nccl/src/device/prims_ll128.h:381,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll128.h:393,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:395,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll128.h:398,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 210
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 399
    functionName: ~Primitives()
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint64_t*>
    - ncclScratchForWarp
    - __threadfence_system
    - divUp
    - __syncwarp
    - barrier_sync
    - loadRegsBegin
    - loadRecvConn
    - nsend
    - recvPtr
    - __threadfence
    - recvFlag
    - loadSendConn
    - applyReduce
    - redOp
    - sendFlag
    - loadShmemMisaligned128
    - applyPostOp
    - reinterpret_cast<uintptr_t>
    - min
    - store128
    - loadRegsFinish
    - waitSend
    - nrecv
    - checkAbort
    - recvReduceSendCopy<NCCL_LL128_SHMEM_ELEMS_PER_THREAD, RECV, SEND, SrcBuf, DstBuf>
    - postSend
    - Fan
    - barrier
    - shmemCvtPtr
    - __any_sync
    - postRecv
    - sendPtr
    - load128
    - sendOffset
    - storeShmem128
    - applyPreOp
    - recvOffset
    - storeRegs
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: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>::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:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - nbytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 71
    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: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    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:79,1
    - Dst: __threadfence
      Src: /src/nccl/src/device/prims_ll128.h:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postSend
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - __threadfence
    - __threadfence_system
    linkageType: ''
    returnType: __device__
    signature: __device__ postSend()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:90,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:102,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:109,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/nccl/src/device/prims_ll128.h:110,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:110,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/prims_ll128.h:111,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:111,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:115,1
    - Dst: storeShmem128
      Src: /src/nccl/src/device/prims_ll128.h:118,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll128.h:120,1
    - Dst: loadShmemMisaligned128
      Src: /src/nccl/src/device/prims_ll128.h:130,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - (regs)
    - src
    - eltN
    argTypes:
    - uint64_t[]
    - T*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 134
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsBegin
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint64_t*>
    - loadShmemMisaligned128
    - ncclScratchForWarp
    - shmemCvtPtr
    - load128
    - reinterpret_cast<uintptr_t>
    - __syncwarp
    - storeShmem128
    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: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    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:154,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/prims_ll128.h:155,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:155,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:161,1
    - Dst: storeShmem128
      Src: /src/nccl/src/device/prims_ll128.h:163,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll128.h:166,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:169,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - dst
    - (regs)
    - eltN
    argTypes:
    - T*
    - uint64_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 173
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::storeRegs
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - shmemCvtPtr
    - ncclScratchForWarp
    - reinterpret_cast<uintptr_t>
    - __syncwarp
    - store128
    - storeShmem128
    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:182,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvPtr
      Src: /src/nccl/src/device/prims_ll128.h:185,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvFlag
      Src: /src/nccl/src/device/prims_ll128.h:186,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:193,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll128.h:196,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_ll128.h:197,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:201,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsFinish
      Src: /src/nccl/src/device/prims_ll128.h:208,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll128.h:212,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll128.h:214,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:224,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:225,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll128.h:231,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvFlag
      Src: /src/nccl/src/device/prims_ll128.h:232,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvPtr
      Src: /src/nccl/src/device/prims_ll128.h:233,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:240,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll128.h:243,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_ll128.h:244,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:248,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:252,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:253,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll128.h:262,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll128.h:263,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:271,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendFlag
      Src: /src/nccl/src/device/prims_ll128.h:272,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendPtr
      Src: /src/nccl/src/device/prims_ll128.h:273,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:276,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendFlag
      Src: /src/nccl/src/device/prims_ll128.h:279,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendPtr
      Src: /src/nccl/src/device/prims_ll128.h:280,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:283,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 3
    argNames:
    - (v)
    - ll128Offset
    - postOp
    argTypes:
    - uint64_t[]
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 287
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvReduceSendCopy
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - __any_sync
    - applyPreOp
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsFinish
    - applyPostOp
    - load128
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendPtr
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendFlag
    - __syncwarp
    - nsend
    - store128
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvFlag
    - nrecv
    - checkAbort
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvPtr
    - applyReduce
    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:302,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_ll128.h:302,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::barrier
      Src: /src/nccl/src/device/prims_ll128.h:303,1
    - Dst: min
      Src: /src/nccl/src/device/prims_ll128.h:308,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsBegin
      Src: /src/nccl/src/device/prims_ll128.h:310,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvReduceSendCopy
      Src: /src/nccl/src/device/prims_ll128.h:311,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::storeRegs
      Src: /src/nccl/src/device/prims_ll128.h:312,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::barrier
      Src: /src/nccl/src/device/prims_ll128.h:320,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postSend
      Src: /src/nccl/src/device/prims_ll128.h:322,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postRecv
      Src: /src/nccl/src/device/prims_ll128.h:324,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: 325
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 325
    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>::waitSend
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postSend
    - divUp
    - min
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::storeRegs
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::barrier
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postRecv
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvReduceSendCopy
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsBegin
    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: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    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:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 337
    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: 343
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 343
    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:345,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 357
    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:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 376
    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:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 380
    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: 404
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: setDataPtrs
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 6
    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: 409
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 409
    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:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: send
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 18
    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:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 416
    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:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 419
    functionName: recv
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 16
    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:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    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:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 425
    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:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: copySend
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 1
    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:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: recvCopySend
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 1
    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:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 434
    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:22,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:35,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/reduce_scatter.h:42,1
    - Dst: Primitives::recvReduceSend
      Src: /src/nccl/src/device/reduce_scatter.h:48,1
    - Dst: Primitives::recvReduceCopy
      Src: /src/nccl/src/device/reduce_scatter.h:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 56
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 12
    functionsReached:
    - Primitives::recvReduceSend
    - Primitives::recvReduceCopy
    - Primitives::send
    - min
    - ncclCollCbdPart
    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:22,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:35,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/reduce_scatter.h:42,1
    - Dst: Primitives::recvReduceSend
      Src: /src/nccl/src/device/reduce_scatter.h:48,1
    - Dst: Primitives::recvReduceCopy
      Src: /src/nccl/src/device/reduce_scatter.h:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 56
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 12
    functionsReached:
    - Primitives::recvReduceSend
    - Primitives::recvReduceCopy
    - Primitives::send
    - min
    - ncclCollCbdPart
    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:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    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:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    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:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    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:89,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/reduce_scatter.h:92,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/reduce_scatter.h:94,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/reduce_scatter.h:98,1
    - Dst: PatRSAlgorithm::getParallelFactor
      Src: /src/nccl/src/device/reduce_scatter.h:102,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/device/reduce_scatter.h:107,1
    - Dst: PatRSAlgorithm::getNextOp
      Src: /src/nccl/src/device/reduce_scatter.h:108,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/device/reduce_scatter.h:132,1
    - Dst: Primitives::patReduce
      Src: /src/nccl/src/device/reduce_scatter.h:134,1
    - Dst: cuda::atomic_ref::store
      Src: /src/nccl/src/device/reduce_scatter.h:135,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 141
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 0
    functionsReached:
    - ncclScratchForWarp
    - cuda::atomic_ref::load
    - PatRSAlgorithm::getNextOp
    - __syncthreads
    - PatRSAlgorithm::getParallelFactor
    - ncclCollCbdPart
    - Primitives::patReduce
    - cuda::atomic_ref::store
    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:167,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:168,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:187,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/reduce_scatter.h:191,1
    - Dst: __device__
      Src: /src/nccl/src/device/reduce_scatter.h:196,1
    - Dst: __device__
      Src: /src/nccl/src/device/reduce_scatter.h:201,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: 211
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 211
    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:
    - reduceCopy
    - __device__
    - min
    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:222,1
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/reduce_scatter.h:232,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:242,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/reduce_scatter.h:243,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:254,1
    - Dst: Primitives::recv
      Src: /src/nccl/src/device/reduce_scatter.h:255,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/reduce_scatter.h:266,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/reduce_scatter.h:270,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:280,1
    - Dst: Primitives::directRecvCopy
      Src: /src/nccl/src/device/reduce_scatter.h:284,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/reduce_scatter.h:288,1
    - Dst: divUp
      Src: /src/nccl/src/device/reduce_scatter.h:302,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:303,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/reduce_scatter.h:305,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:312,1
    - Dst: max
      Src: /src/nccl/src/device/reduce_scatter.h:315,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:316,1
    - Dst: Primitives::recv
      Src: /src/nccl/src/device/reduce_scatter.h:317,1
    - Dst: max
      Src: /src/nccl/src/device/reduce_scatter.h:317,1
    - Dst: Primitives::template process</*Recv=*/0, /*Send=*/1>
      Src: /src/nccl/src/device/reduce_scatter.h:331,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/1>
      Src: /src/nccl/src/device/reduce_scatter.h:343,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 348
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 0
    functionsReached:
    - Primitives::gather
    - Primitives::send
    - Primitives::scatter
    - divUp
    - min
    - __syncwarp
    - max
    - Primitives::directRecvCopy
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
    - Primitives::template process</*Recv=*/0, /*Send=*/1>
    - ncclCollCbdPart
    - Primitives::template process</*Recv=*/1, /*Send=*/1>
    - roundUp
    - 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:374,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:375,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:394,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/reduce_scatter.h:398,1
    - Dst: __device__
      Src: /src/nccl/src/device/reduce_scatter.h:403,1
    - Dst: __device__
      Src: /src/nccl/src/device/reduce_scatter.h:409,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: 421
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 421
    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:
    - reduceCopy
    - __device__
    - min
    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:433,1
    - Dst: Primitives::template process</*Recv=*/0, /*Send=*/1>
      Src: /src/nccl/src/device/reduce_scatter.h:456,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:466,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/reduce_scatter.h:468,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/1>
      Src: /src/nccl/src/device/reduce_scatter.h:479,1
    - Dst: divUp
      Src: /src/nccl/src/device/reduce_scatter.h:490,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:491,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/reduce_scatter.h:493,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:501,1
    - Dst: max
      Src: /src/nccl/src/device/reduce_scatter.h:504,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:505,1
    - Dst: Primitives::recv
      Src: /src/nccl/src/device/reduce_scatter.h:506,1
    - Dst: max
      Src: /src/nccl/src/device/reduce_scatter.h:506,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 511
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 0
    functionsReached:
    - divUp
    - min
    - __syncwarp
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
    - max
    - __trap
    - Primitives::template process</*Recv=*/0, /*Send=*/1>
    - Primitives::template process</*Recv=*/1, /*Send=*/1>
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
    - 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:20,1
    - Dst: min
      Src: /src/nccl/src/device/sendrecv.h:27,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/sendrecv.h:28,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: 31
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: runSend
    functionSourceFile: /src/nccl/src/device/sendrecv.h
    functionUses: 0
    functionsReached:
    - Primitives::directSend
    - min
    - u32fp8Decode
    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:37,1
    - Dst: min
      Src: /src/nccl/src/device/sendrecv.h:44,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/sendrecv.h:45,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: 48
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 48
    functionName: runRecv
    functionSourceFile: /src/nccl/src/device/sendrecv.h
    functionUses: 0
    functionsReached:
    - Primitives::directRecv
    - min
    - u32fp8Decode
    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:61,1
    - Dst: ncclP2pChannelToPart
      Src: /src/nccl/src/device/sendrecv.h:77,1
    - Dst: ncclP2pPartBounds
      Src: /src/nccl/src/device/sendrecv.h:81,1
    - Dst: __ballot_sync
      Src: /src/nccl/src/device/sendrecv.h:89,1
    - Dst: __popc
      Src: /src/nccl/src/device/sendrecv.h:105,1
    - Dst: __ballot_sync
      Src: /src/nccl/src/device/sendrecv.h:105,1
    - Dst: __popc
      Src: /src/nccl/src/device/sendrecv.h:113,1
    - Dst: __ballot_sync
      Src: /src/nccl/src/device/sendrecv.h:113,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/sendrecv.h:115,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/sendrecv.h:120,1
    - Dst: __popc
      Src: /src/nccl/src/device/sendrecv.h:132,1
    - Dst: __popc
      Src: /src/nccl/src/device/sendrecv.h:135,1
    - Dst: __popc
      Src: /src/nccl/src/device/sendrecv.h:138,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/sendrecv.h:158,1
    - Dst: runSend
      Src: /src/nccl/src/device/sendrecv.h:162,1
    - Dst: runSend
      Src: /src/nccl/src/device/sendrecv.h:164,1
    - Dst: runRecv
      Src: /src/nccl/src/device/sendrecv.h:168,1
    - Dst: runRecv
      Src: /src/nccl/src/device/sendrecv.h:170,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 173
    functionName: run
    functionSourceFile: /src/nccl/src/device/sendrecv.h
    functionUses: 0
    functionsReached:
    - __popc
    - ncclScratchForWarp
    - reduceCopy
    - ncclP2pChannelToPart
    - __syncthreads
    - runSend
    - __ballot_sync
    - ncclP2pPartBounds
    - runRecv
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 4
    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: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    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:168,1
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - PackA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: __forceinline__ BytePack<BytePackOf<PackA>::Size*sizeof(B)/sizeof(A)>::applyCast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached:
    - toPack
    - ncclBroadcast
    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:173,1
    - Dst: reduce
      Src: /src/nccl/src/device/reduce_kernel.h:174,1
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:175,1
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - Fn
    - Pack
    - Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: applyReduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 4
    functionsReached:
    - fromPack
    - reduce
    - toPack
    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:181,1
    - Dst: preOp
      Src: /src/nccl/src/device/reduce_kernel.h:182,1
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: applyPreOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 4
    functionsReached:
    - fromPack
    - toPack
    - preOp
    linkageType: ''
    returnType: __device__
    signature: __device__ applyPreOp(Fn fn, Pack a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:189,1
    - Dst: postOp
      Src: /src/nccl/src/device/reduce_kernel.h:190,1
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: applyPostOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 4
    functionsReached:
    - fromPack
    - toPack
    - postOp
    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:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - addr
    argTypes:
    - Fn
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    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:207,1
    - Dst: ncclBroadcast
      Src: /src/nccl/src/device/reduce_kernel.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<EltPerPack*sizeof(A)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 6
    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:216,1
    - Dst: B
      Src: /src/nccl/src/device/reduce_kernel.h:216,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<sizeof(A)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 6
    functionsReached:
    - fromPack
    - toPack
    - B
    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:223,1
    - Dst: __half2float
      Src: /src/nccl/src/device/reduce_kernel.h:223,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<sizeof(__half)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 6
    functionsReached:
    - fromPack
    - toPack
    - __half2float
    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:229,1
    - Dst: __float2half_rn
      Src: /src/nccl/src/device/reduce_kernel.h:229,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<sizeof(float)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 6
    functionsReached:
    - fromPack
    - toPack
    - __float2half_rn
    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:236,1
    - Dst: __half22float2
      Src: /src/nccl/src/device/reduce_kernel.h:236,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<2*2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 6
    functionsReached:
    - fromPack
    - toPack
    - __half22float2
    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:242,1
    - Dst: __float22half2_rn
      Src: /src/nccl/src/device/reduce_kernel.h:242,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<4*2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 6
    functionsReached:
    - fromPack
    - __float22half2_rn
    - toPack
    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:250,1
    - Dst: __bfloat1622float2
      Src: /src/nccl/src/device/reduce_kernel.h:250,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<2*2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 6
    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:256,1
    - Dst: __float22bfloat162_rn
      Src: /src/nccl/src/device/reduce_kernel.h:256,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<4*2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 6
    functionsReached:
    - fromPack
    - toPack
    - __float22bfloat162_rn
    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: 274
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 274
    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: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    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:303,1
    - Dst: __forceinline__ static BytePack<Size>::reduce
      Src: /src/nccl/src/device/reduce_kernel.h:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - Fn
    - BytePack<Size>
    - BytePack<Size>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 306
    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: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    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:319,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:319,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:319,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: 320
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - toPack<T>
    - fromPack
    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:325,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:325,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:325,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: 326
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 326
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - toPack<T>
    - fromPack
    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: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    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:343,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: 345
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 345
    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:363,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: 369
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 369
    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:382,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: 384
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 384
    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: 398
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 398
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: __forceinline__ static BytePack<Size>::preOp
      Src: /src/nccl/src/device/reduce_kernel.h:475,1
    - Dst: __forceinline__ static BytePack<Size>::preOp
      Src: /src/nccl/src/device/reduce_kernel.h:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - BytePack<Size>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 479
    functionName: __forceinline__ static BytePack<Size>::preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - __forceinline__ static BytePack<Size>::preOp
    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<Size>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 488
    functionName: __forceinline__ static BytePack<Size>::preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    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: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BytePack<0>
    signature: BytePack<0> preOp(Fn fn, BytePack<0> a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __forceinline__ static BytePack<Size>::postOp
      Src: /src/nccl/src/device/reduce_kernel.h:512,1
    - Dst: __forceinline__ static BytePack<Size>::postOp
      Src: /src/nccl/src/device/reduce_kernel.h:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - BytePack<Size>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 516
    functionName: __forceinline__ static BytePack<Size>::postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - __forceinline__ static BytePack<Size>::postOp
    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<Size>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 525
    functionName: __forceinline__ static BytePack<Size>::postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    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: 533
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    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: 548
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 548
    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: 560
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 560
    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: 576
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 576
    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: 583
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 583
    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: 601
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 601
    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:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 608
    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:622,1
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/device/reduce_kernel.h:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - opArg
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 624
    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:634,1
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/device/reduce_kernel.h:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - opArg
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 636
    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:645,1
    - Dst: FuncSum
      Src: /src/nccl/src/device/reduce_kernel.h:645,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: 646
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 646
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 3
    functionsReached:
    - reduce
    - FuncSum
    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:654,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<T>
    - BytePack<sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 655
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - toPack<T>
    - fromPack
    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:666,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:666,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:666,1
    - Dst: toPack<half>
      Src: /src/nccl/src/device/reduce_kernel.h:668,1
    - Dst: __float2half
      Src: /src/nccl/src/device/reduce_kernel.h:668,1
    - Dst: __half2float
      Src: /src/nccl/src/device/reduce_kernel.h:668,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<half>
    - BytePack<sizeof(half)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 670
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - __hmul
    - __half2float
    - fromPack
    - toPack<half>
    - __float2half
    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:677,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:677,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<half>
    - BytePack<sizeof(half2)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 678
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - fromPack
    - toPack<half2>
    - __hmul2
    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:693,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:693,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:693,1
    - Dst: toPack<__nv_bfloat16>
      Src: /src/nccl/src/device/reduce_kernel.h:695,1
    - Dst: __float2bfloat16
      Src: /src/nccl/src/device/reduce_kernel.h:695,1
    - Dst: __bfloat162float
      Src: /src/nccl/src/device/reduce_kernel.h:695,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:695,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: 697
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 697
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - __hmul
    - __float2bfloat16
    - fromPack
    - 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:706,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:706,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:706,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: 707
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 707
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - fromPack
    - __hmul2
    - toPack<__nv_bfloat162>
    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:723,1
    - Dst: __nv_fp8_e4m3
      Src: /src/nccl/src/device/reduce_kernel.h:723,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:723,1
    - Dst: __half
      Src: /src/nccl/src/device/reduce_kernel.h:723,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:723,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: 724
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - __nv_fp8_e4m3
    - __hmul
    - __half
    - toPack<__nv_fp8_e4m3>
    - fromPack
    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:732,1
    - Dst: __nv_fp8x2_e4m3
      Src: /src/nccl/src/device/reduce_kernel.h:732,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:732,1
    - Dst: __half2
      Src: /src/nccl/src/device/reduce_kernel.h:732,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:732,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: 733
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 733
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - fromPack
    - __nv_fp8x2_e4m3
    - toPack<__nv_fp8x2_e4m3>
    - __half2
    - __hmul2
    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:742,1
    - Dst: __nv_fp8_e5m2
      Src: /src/nccl/src/device/reduce_kernel.h:742,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:742,1
    - Dst: __half
      Src: /src/nccl/src/device/reduce_kernel.h:742,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:742,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: 743
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - __hmul
    - __half
    - fromPack
    - toPack<__nv_fp8_e5m2>
    - __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:751,1
    - Dst: __nv_fp8x2_e5m2
      Src: /src/nccl/src/device/reduce_kernel.h:751,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:751,1
    - Dst: __half2
      Src: /src/nccl/src/device/reduce_kernel.h:751,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:751,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: 752
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 752
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - toPack<__nv_fp8x2_e5m2>
    - __nv_fp8x2_e5m2
    - fromPack
    - __half2
    - __hmul2
    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: 765
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 765
    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:
    - opArg
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 779
    functionName: FuncSumPostDiv
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncSumPostDiv(uint64_t opArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __bfloat162float
      Src: /src/nccl/src/device/reduce_kernel.h:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - opArg
    argTypes:
    - uint64_t
    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:
    - __bfloat162float
    linkageType: ''
    returnType: void
    signature: void FuncSumPostDiv(uint64_t opArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 801
    functionName: FuncSumPostDiv
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncSumPostDiv(uint64_t opArg=0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 808
    functionName: FuncSumPostDiv
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncSumPostDiv(uint64_t opArg=0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - opArg
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 820
    functionName: FuncSumPostDiv
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncSumPostDiv(uint64_t opArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - opArg
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 831
    functionName: FuncSumPostDiv
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncSumPostDiv(uint64_t opArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __half
      Src: /src/nccl/src/device/reduce_kernel.h:843,1
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/device/reduce_kernel.h:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - opArg
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 845
    functionName: FuncSumPostDiv
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - __half
    linkageType: ''
    returnType: void
    signature: void FuncSumPostDiv(uint64_t opArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __half
      Src: /src/nccl/src/device/reduce_kernel.h:855,1
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/device/reduce_kernel.h:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - opArg
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 857
    functionName: FuncSumPostDiv
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - __half
    linkageType: ''
    returnType: void
    signature: void FuncSumPostDiv(uint64_t opArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UintType
      Src: /src/nccl/src/device/reduce_kernel.h:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 874
    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:877,1
    - Dst: T
      Src: /src/nccl/src/device/reduce_kernel.h:883,1
    - Dst: __umul64hi
      Src: /src/nccl/src/device/reduce_kernel.h:885,1
    - Dst: __umulhi
      Src: /src/nccl/src/device/reduce_kernel.h:885,1
    - Dst: T
      Src: /src/nccl/src/device/reduce_kernel.h:890,1
    - Dst: T
      Src: /src/nccl/src/device/reduce_kernel.h:890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 891
    functionName: divide
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached:
    - __umulhi
    - T
    - __umul64hi
    linkageType: ''
    returnType: T
    signature: T divide(T x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/nccl/src/device/reduce_kernel.h:899,1
    - Dst: FuncSum
      Src: /src/nccl/src/device/reduce_kernel.h:899,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: 900
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 900
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 4
    functionsReached:
    - reduce
    - FuncSum
    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<float>
      Src: /src/nccl/src/device/reduce_kernel.h:910,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<float>
    - BytePack<sizeof(float)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 911
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - fromPack
    - toPack<float>
    linkageType: ''
    returnType: BytePack<sizeof(float)>
    signature: BytePack<sizeof(float)> postOp(FuncSumPostDiv<float> fn, BytePack<sizeof(float)>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<double>
      Src: /src/nccl/src/device/reduce_kernel.h:918,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<double>
    - BytePack<sizeof(double)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 919
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - fromPack
    - toPack<double>
    linkageType: ''
    returnType: BytePack<sizeof(double)>
    signature: BytePack<sizeof(double)> postOp(FuncSumPostDiv<double> fn, BytePack<sizeof(double)>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<__nv_bfloat16>
      Src: /src/nccl/src/device/reduce_kernel.h:928,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:928,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:928,1
    - Dst: toPack<__nv_bfloat16>
      Src: /src/nccl/src/device/reduce_kernel.h:930,1
    - Dst: __float2bfloat16
      Src: /src/nccl/src/device/reduce_kernel.h:930,1
    - Dst: __bfloat162float
      Src: /src/nccl/src/device/reduce_kernel.h:930,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<__nv_bfloat16>
    - BytePack<sizeof(__nv_bfloat16)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 932
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - __hmul
    - __float2bfloat16
    - fromPack
    - toPack<__nv_bfloat16>
    - __bfloat162float
    linkageType: ''
    returnType: BytePack<sizeof(__nv_bfloat16)>
    signature: BytePack<sizeof(__nv_bfloat16)> postOp(FuncSumPostDiv<__nv_bfloat16>
      fn, BytePack<sizeof(__nv_bfloat16)> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<__nv_bfloat162>
      Src: /src/nccl/src/device/reduce_kernel.h:940,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:940,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<__nv_bfloat16>
    - BytePack<sizeof(__nv_bfloat162)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 941
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - fromPack
    - __hmul2
    - toPack<__nv_bfloat162>
    linkageType: ''
    returnType: BytePack<sizeof(__nv_bfloat162)>
    signature: BytePack<sizeof(__nv_bfloat162)> postOp(FuncSumPostDiv<__nv_bfloat16>
      fn, BytePack<sizeof(__nv_bfloat162)> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<half>
      Src: /src/nccl/src/device/reduce_kernel.h:951,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:951,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:951,1
    - Dst: toPack<half>
      Src: /src/nccl/src/device/reduce_kernel.h:953,1
    - Dst: __float2half
      Src: /src/nccl/src/device/reduce_kernel.h:953,1
    - Dst: __half2float
      Src: /src/nccl/src/device/reduce_kernel.h:953,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<half>
    - BytePack<sizeof(half)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 955
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - __hmul
    - __half2float
    - fromPack
    - toPack<half>
    - __float2half
    linkageType: ''
    returnType: BytePack<sizeof(half)>
    signature: BytePack<sizeof(half)> postOp(FuncSumPostDiv<half> fn, BytePack<sizeof(half)>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<half2>
      Src: /src/nccl/src/device/reduce_kernel.h:963,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:963,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<half>
    - BytePack<sizeof(half2)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 964
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - fromPack
    - toPack<half2>
    - __hmul2
    linkageType: ''
    returnType: BytePack<sizeof(half2)>
    signature: BytePack<sizeof(half2)> postOp(FuncSumPostDiv<half> fn, BytePack<sizeof(half2)>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<__nv_fp8_e4m3>
      Src: /src/nccl/src/device/reduce_kernel.h:976,1
    - Dst: __nv_fp8_e4m3
      Src: /src/nccl/src/device/reduce_kernel.h:976,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:976,1
    - Dst: __half
      Src: /src/nccl/src/device/reduce_kernel.h:976,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<__nv_fp8_e4m3>
    - BytePack<sizeof(__nv_fp8_e4m3)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 977
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - __nv_fp8_e4m3
    - __hmul
    - __half
    - toPack<__nv_fp8_e4m3>
    - fromPack
    linkageType: ''
    returnType: BytePack<sizeof(__nv_fp8_e4m3)>
    signature: "BytePack<sizeof(__nv_fp8_e4m3)> postOp(\n        FuncSumPostDiv<__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:985,1
    - Dst: __nv_fp8x2_e4m3
      Src: /src/nccl/src/device/reduce_kernel.h:985,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:985,1
    - Dst: __half2
      Src: /src/nccl/src/device/reduce_kernel.h:985,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<__nv_fp8_e4m3>
    - BytePack<sizeof(__nv_fp8x2_e4m3)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 986
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - fromPack
    - __nv_fp8x2_e4m3
    - toPack<__nv_fp8x2_e4m3>
    - __half2
    - __hmul2
    linkageType: ''
    returnType: BytePack<sizeof(__nv_fp8x2_e4m3)>
    signature: "BytePack<sizeof(__nv_fp8x2_e4m3)> postOp(\n        FuncSumPostDiv<__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:995,1
    - Dst: __nv_fp8_e5m2
      Src: /src/nccl/src/device/reduce_kernel.h:995,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:995,1
    - Dst: __half
      Src: /src/nccl/src/device/reduce_kernel.h:995,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<__nv_fp8_e5m2>
    - BytePack<sizeof(__nv_fp8_e5m2)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 996
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - __hmul
    - __half
    - fromPack
    - toPack<__nv_fp8_e5m2>
    - __nv_fp8_e5m2
    linkageType: ''
    returnType: BytePack<sizeof(__nv_fp8_e5m2)>
    signature: "BytePack<sizeof(__nv_fp8_e5m2)> postOp(\n        FuncSumPostDiv<__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:1004,1
    - Dst: __nv_fp8x2_e5m2
      Src: /src/nccl/src/device/reduce_kernel.h:1004,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:1004,1
    - Dst: __half2
      Src: /src/nccl/src/device/reduce_kernel.h:1004,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<__nv_fp8_e5m2>
    - BytePack<sizeof(__nv_fp8x2_e5m2)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1005
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - toPack<__nv_fp8x2_e5m2>
    - __nv_fp8x2_e5m2
    - fromPack
    - __half2
    - __hmul2
    linkageType: ''
    returnType: BytePack<sizeof(__nv_fp8x2_e5m2)>
    signature: "BytePack<sizeof(__nv_fp8x2_e5m2)> postOp(\n        FuncSumPostDiv<__nv_fp8_e5m2>
      fn, BytePack<sizeof(__nv_fp8x2_e5m2)> a\n      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<T>
      Src: /src/nccl/src/device/reduce_kernel.h:1014,1
    - Dst: FuncSumPostDiv<T>::divide
      Src: /src/nccl/src/device/reduce_kernel.h:1014,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<T>
    - BytePack<sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1015
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - toPack<T>
    - FuncSumPostDiv<T>::divide
    - 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: 1066
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1066
    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: 1085
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1085
    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: 1101
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1101
    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: 1125
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1125
    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: 1138
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1138
    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: 1156
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1156
    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:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fn
    - addr
    argTypes:
    - Fn
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1162
    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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: min
    functionSourceFile: /src/nccl/src/device/common_kernel.h
    functionUses: 55
    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: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: loadInt
    functionSourceFile: /src/nccl/src/device/common_kernel.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ loadInt(int* ptr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __trap
      Src: /src/nccl/src/device/common_kernel.h:42,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/common_kernel.h:72,1
    - Dst: srcPtrFn
      Src: /src/nccl/src/device/common_kernel.h:72,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/common_kernel.h:79,1
    - Dst: dstPtrFn
      Src: /src/nccl/src/device/common_kernel.h:79,1
    - Dst: applyLoadMultimem<RedFn, BytePerPack>
      Src: /src/nccl/src/device/common_kernel.h:93,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/common_kernel.h:96,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/common_kernel.h:97,1
    - Dst: applyLoadMultimem<RedFn, BytePerPack>
      Src: /src/nccl/src/device/common_kernel.h:114,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/common_kernel.h:117,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/common_kernel.h:124,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/common_kernel.h:129,1
    - Dst: srcPtrFn
      Src: /src/nccl/src/device/common_kernel.h:129,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/common_kernel.h:136,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/common_kernel.h:143,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/common_kernel.h:150,1
    - Dst: multimem_st_global
      Src: /src/nccl/src/device/common_kernel.h:161,1
    - Dst: st_global<BytePerPack>
      Src: /src/nccl/src/device/common_kernel.h:163,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/common_kernel.h:169,1
    - Dst: dstPtrFn
      Src: /src/nccl/src/device/common_kernel.h:169,1
    - Dst: st_global<BytePerPack>
      Src: /src/nccl/src/device/common_kernel.h:173,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 89
    argCount: 10
    argNames:
    - nThreads
    - thread
    - redArg
    - postOp
    - nSrcs
    - srcPtrFn
    - nDsts
    - dstPtrFn
    - nBytesBehind
    - nBytesAhead
    argTypes:
    - int
    - int
    - uint64_t
    - bool
    - int
    - SrcPtrFn
    - int
    - DstPtrFn
    - IntBytes
    - IntBytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 205
    functionName: reduceCopyPacks
    functionSourceFile: /src/nccl/src/device/common_kernel.h
    functionUses: 0
    functionsReached:
    - cvta_to_global
    - applyLoadMultimem<RedFn, BytePerPack>
    - applyPostOp
    - __trap
    - ld_volatile_global
    - st_global<BytePerPack>
    - applyPreOp
    - srcPtrFn
    - dstPtrFn
    - applyReduce
    - multimem_st_global
    linkageType: ''
    returnType: __device__
    signature: "__device__ reduceCopyPacks(\n    int nThreads, int &thread,\n    uint64_t
      redArg, bool postOp,\n    int nSrcs, SrcPtrFn const &srcPtrFn, int nDsts, DstPtrFn
      const &dstPtrFn,\n    IntBytes &nBytesBehind, IntBytes &nBytesAhead\n  )"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/common_kernel.h:234,1
    - Dst: srcPtrFn
      Src: /src/nccl/src/device/common_kernel.h:234,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/common_kernel.h:235,1
    - Dst: dstPtrFn
      Src: /src/nccl/src/device/common_kernel.h:235,1
    - Dst: __all_sync
      Src: /src/nccl/src/device/common_kernel.h:236,1
    - Dst: reduceCopyPacks
      Src: /src/nccl/src/device/common_kernel.h:238,1
    - Dst: reduceCopyPacks
      Src: /src/nccl/src/device/common_kernel.h:244,1
    - Dst: reduceCopyPacks
      Src: /src/nccl/src/device/common_kernel.h:252,1
    - Dst: reduceCopyPacks
      Src: /src/nccl/src/device/common_kernel.h:258,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 9
    argNames:
    - thread
    - nThreads
    - redArg
    - postOp
    - nSrcs
    - srcPtrFn
    - nDsts
    - dstPtrFn
    - nElts
    argTypes:
    - int
    - int
    - uint64_t
    - bool
    - int
    - SrcPtrFn
    - int
    - DstPtrFn
    - IntBytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 262
    functionName: reduceCopy
    functionSourceFile: /src/nccl/src/device/common_kernel.h
    functionUses: 14
    functionsReached:
    - cvta_to_global
    - reduceCopyPacks
    - __all_sync
    - srcPtrFn
    - dstPtrFn
    linkageType: ''
    returnType: __device__
    signature: "__device__ reduceCopy(\n    int thread, int nThreads,\n    uint64_t
      redArg, bool postOp,\n    int nSrcs, SrcPtrFn const &srcPtrFn, int nDsts, DstPtrFn
      const &dstPtrFn,\n    IntBytes nElts\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduceCopy
      Src: /src/nccl/src/device/common_kernel.h:274,1
    - Dst: __device__
      Src: /src/nccl/src/device/common_kernel.h:278,1
    - Dst: __device__
      Src: /src/nccl/src/device/common_kernel.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - thread
    - nThreads
    - redArg
    - postOp
    - nSrcs
    - srcPtrs
    - nDsts
    - dstPtrs
    - nElts
    argTypes:
    - int
    - int
    - uint64_t
    - bool
    - int
    - void**
    - int
    - void**
    - IntBytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 280
    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, bool postOp,\n    int nSrcs, void** srcPtrs, int nDsts, void** dstPtrs,\n
      \   IntBytes nElts\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: ncclGinOutboxSession
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclGinOutboxSession(ncclGinOutboxSession const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: ncclGinInboxA2ASession
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclGinInboxA2ASession(ncclGinInboxA2ASession const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinOutboxSession<Coop, ginBackendMask>::coop::thread_rank
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:28,1
    - Dst: ncclGinOutboxSession<Coop, ginBackendMask>::getStatePtr
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:29,1
    - Dst: ncclGinOutboxSession<Coop, ginBackendMask>::coop::sync
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: ncclGinOutboxSession<Coop, ginBackendMask>::~ncclGinOutboxSession()
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinOutboxSession<Coop, ginBackendMask>::coop::thread_rank
    - ncclGinOutboxSession<Coop, ginBackendMask>::coop::sync
    - ncclGinOutboxSession<Coop, ginBackendMask>::getStatePtr
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinOutboxSession<Coop, ginBackendMask>::~ncclGinOutboxSession()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SubCoop::thread_rank
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:45,1
    - Dst: SubCoop::size
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:45,1
    - Dst: ncclGinOutboxSession<Coop, ginBackendMask>::gin::waitCounter
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:50,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:50,1
    - Dst: ncclGinOutboxSession<Coop, ginBackendMask>::gin::resetCounter
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:51,1
    - Dst: ncclGinOutboxSession<Coop, ginBackendMask>::coop::sync
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - subcoop
    - subcoopIsNonTrivial
    - nBufs_log2_next
    - deferSync
    argTypes:
    - SubCoop
    - bool
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 58
    functionName: ncclGinOutboxSession<Coop, ginBackendMask>::apportion
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - SubCoop::thread_rank
    - ncclGinOutboxSession<Coop, ginBackendMask>::coop::sync
    - ncclGinOutboxSession<Coop, ginBackendMask>::gin::waitCounter
    - ncclGinOutboxSession<Coop, ginBackendMask>::gin::resetCounter
    - ncclCoopThread
    - SubCoop::size
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinOutboxSession<Coop, ginBackendMask>::apportion(\n
      \   Coop, SubCoop subcoop, bool subcoopIsNonTrivial, int nBufs_log2_next, bool
      deferSync\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SubCoop::thread_rank
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:66,1
    - Dst: SubCoop::size
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:66,1
    - Dst: ncclGinOutboxSession<Coop, ginBackendMask>::gin::waitCounter
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:71,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - subcoop
    - i0
    - n
    argTypes:
    - SubCoop
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: ncclGinOutboxSession<Coop, ginBackendMask>::waitBufs
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinOutboxSession<Coop, ginBackendMask>::gin::waitCounter
    - ncclCoopThread
    - SubCoop::size
    - SubCoop::thread_rank
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinOutboxSession<Coop, ginBackendMask>::waitBufs(SubCoop
      subcoop, int i0, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<char> ncclGinOutboxSession<Coop, ginBackendMask>::getStateSymPtr
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: ncclSymPtr<char> ncclGinOutboxSession<Coop, ginBackendMask>::getBuf(int
      i) const
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - ncclSymPtr<char> ncclGinOutboxSession<Coop, ginBackendMask>::getStateSymPtr
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclSymPtr<char> ncclGinOutboxSession<Coop, ginBackendMask>::getBuf(int
      i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinScratch_GetBufPtr ncclGinOutboxSession<Coop, ginBackendMask>::getStatePtr
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - i0
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: ncclGinScratch_GetBufPtr ncclGinOutboxSession<Coop, ginBackendMask>::make_getBufPtr(int
      i0) const
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinScratch_GetBufPtr ncclGinOutboxSession<Coop, ginBackendMask>::getStatePtr
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinScratch_GetBufPtr ncclGinOutboxSession<Coop,
      ginBackendMask>::make_getBufPtr(int i0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: ncclGinCounter_t ncclGinOutboxSession<Coop, ginBackendMask>::getCounter(int
      i) const
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinCounter_t ncclGinOutboxSession<Coop, ginBackendMask>::getCounter(int
      i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: ncclGinOutboxSession<Coop, ginBackendMask>::advance
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinOutboxSession<Coop, ginBackendMask>::advance(Coop,
      int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::coop::thread_rank
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:136,1
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::getStatePtr
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:137,1
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::coop::sync
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: ncclGinInboxA2ASession<Coop, ginBackendMask>::~ncclGinInboxA2ASession()
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::getStatePtr
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::coop::thread_rank
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::coop::sync
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinInboxA2ASession<Coop, ginBackendMask>::~ncclGinInboxA2ASession()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: idivmodFast32
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:156,1
    - Dst: SubCoop::thread_rank
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:158,1
    - Dst: min
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:158,1
    - Dst: SubCoop::size
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:158,1
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::sendC2S
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:160,1
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::resetSignals
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - coop
    - subcoop
    - subcoopIsNonTrivial
    - nBufs_log2_next
    argTypes:
    - Coop
    - SubCoop
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 174
    functionName: ncclGinInboxA2ASession<Coop, ginBackendMask>::apportion
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::resetSignals
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::sendC2S
    - idivmodFast32
    - SubCoop::thread_rank
    - min
    - SubCoop::size
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinInboxA2ASession<Coop, ginBackendMask>::apportion(\n
      \   Coop coop, SubCoop subcoop, bool subcoopIsNonTrivial, int nBufs_log2_next\n
      \ )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::getPeer
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - step
    - step_lt_nPeers
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: ncclGinInboxA2ASession<Coop, ginBackendMask>::getSendPeer
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::getPeer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinInboxA2ASession<Coop, ginBackendMask>::getSendPeer(int
      step, bool step_lt_nPeers) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::getPeer
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - step
    - step_lt_nPeers
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: ncclGinInboxA2ASession<Coop, ginBackendMask>::getRecvPeer
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::getPeer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinInboxA2ASession<Coop, ginBackendMask>::getRecvPeer(int
      step, bool step_lt_nPeers) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<char> ncclGinInboxA2ASession<Coop, ginBackendMask>::getBufSymPtr
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - step
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: ncclSymPtr<char> ncclGinInboxA2ASession<Coop, ginBackendMask>::getBuf(int
      step) const
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - ncclSymPtr<char> ncclGinInboxA2ASession<Coop, ginBackendMask>::getBufSymPtr
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclSymPtr<char> ncclGinInboxA2ASession<Coop, ginBackendMask>::getBuf(int
      step) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinScratch_GetBufPtr ncclGinInboxA2ASession<Coop, ginBackendMask>::getBufsPtr
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - step0
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: ncclGinScratch_GetBufPtr ncclGinInboxA2ASession<Coop, ginBackendMask>::make_getBufPtr(int
      step0) const
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinScratch_GetBufPtr ncclGinInboxA2ASession<Coop, ginBackendMask>::getBufsPtr
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinScratch_GetBufPtr ncclGinInboxA2ASession<Coop,
      ginBackendMask>::make_getBufPtr(int step0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SubCoop::thread_rank
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:218,1
    - Dst: SubCoop::size
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:218,1
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::waitC2S
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:221,1
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::getSendPeer
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:223,1
    - Dst: getPtr
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:224,1
    - Dst: getEltCount
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:225,1
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::gin::put
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:226,1
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::getBufSymPtr
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:227,1
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::getR2RSignal
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:229,1
    - Dst: getCompletion
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - subcoop
    - step0
    - nSteps
    - getPtr
    - getEltCount
    - getCompletion
    argTypes:
    - SubCoop
    - int
    - int
    - GetPtr
    - GetEltCount
    - GetCompletion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 232
    functionName: ncclGinInboxA2ASession<Coop, ginBackendMask>::postSends
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::gin::put
    - getCompletion
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::getR2RSignal
    - getPtr
    - SubCoop::thread_rank
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::getSendPeer
    - getEltCount
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::waitC2S
    - SubCoop::size
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::getBufSymPtr
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinInboxA2ASession<Coop, ginBackendMask>::postSends(\n
      \   SubCoop subcoop, int step0, int nSteps, GetPtr getPtr, GetEltCount getEltCount,
      GetCompletion getCompletion\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SubCoop::thread_rank
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:242,1
    - Dst: SubCoop::size
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:242,1
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::waitR2R
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - subcoop
    - step0
    - nSteps
    argTypes:
    - SubCoop
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: ncclGinInboxA2ASession<Coop, ginBackendMask>::waitRecvs
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - SubCoop::size
    - SubCoop::thread_rank
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::waitR2R
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinInboxA2ASession<Coop, ginBackendMask>::waitRecvs(\n
      \   SubCoop subcoop, int step0, int nSteps\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imodFast32
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:255,1
    - Dst: SubCoop::thread_rank
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:257,1
    - Dst: SubCoop::size
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:257,1
    - Dst: ncclGinInboxA2ASession<Coop, ginBackendMask>::sendC2S
      Src: /src/nccl/src/device/symmetric/gin_scratch__funcs.h:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - subcoop
    - step0
    - nSteps
    argTypes:
    - SubCoop
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: ncclGinInboxA2ASession<Coop, ginBackendMask>::finishRecvs
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached:
    - imodFast32
    - SubCoop::size
    - SubCoop::thread_rank
    - ncclGinInboxA2ASession<Coop, ginBackendMask>::sendC2S
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinInboxA2ASession<Coop, ginBackendMask>::finishRecvs(\n
      \   SubCoop subcoop, int step0, int nSteps\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - coop
    argTypes:
    - Coop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: ncclGinInboxA2ASession<Coop, ginBackendMask>::endRound
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinInboxA2ASession<Coop, ginBackendMask>::endRound(Coop
      coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: '* operator()(int i) const'
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * operator()(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBufferLocalPointer
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:83,1
    - Dst: alignUp
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: getStatePtr
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 3
    functionsReached:
    - ncclGetResourceBufferLocalPointer
    - alignUp
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * getStatePtr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBuffer
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:88,1
    - Dst: alignUp
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: getStateSymPtr
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 1
    functionsReached:
    - ncclGetResourceBuffer
    - alignUp
    linkageType: ''
    returnType: void
    signature: void getStateSymPtr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBufferLocalPointer
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:108,1
    - Dst: alignUp
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: getStatePtr
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 3
    functionsReached:
    - ncclGetResourceBufferLocalPointer
    - alignUp
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * getStatePtr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBuffer
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:114,1
    - Dst: alignUp
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - monoStep
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: getBufSymPtr
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 2
    functionsReached:
    - ncclGetResourceBuffer
    - alignUp
    linkageType: ''
    returnType: void
    signature: void getBufSymPtr(uint32_t monoStep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBufferLocalPointer
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:123,1
    - Dst: alignUp
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: getBufsPtr
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 1
    functionsReached:
    - ncclGetResourceBufferLocalPointer
    - alignUp
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * getBufsPtr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unsigned
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - phaseDelta
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: getSignal0
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 0
    functionsReached:
    - unsigned
    linkageType: ''
    returnType: void
    signature: void getSignal0(int phaseDelta) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSignal0
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:137,1
    - Dst: SubCoop::thread_rank
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:139,1
    - Dst: SubCoop::size
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:139,1
    - Dst: gin::resetSignal
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - subcoop
    - phaseDelta
    argTypes:
    - SubCoop
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: resetSignals
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 1
    functionsReached:
    - gin::resetSignal
    - SubCoop::size
    - SubCoop::thread_rank
    - getSignal0
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE resetSignals(SubCoop subcoop, int phaseDelta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSignal0
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - phaseDelta
    - step
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: getC2SSignal
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 0
    functionsReached:
    - getSignal0
    linkageType: ''
    returnType: void
    signature: void getC2SSignal(int phaseDelta, uint32_t step) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSignal0
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - monoStep
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: getR2RSignal
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 1
    functionsReached:
    - getSignal0
    linkageType: ''
    returnType: void
    signature: void getR2RSignal(uint32_t monoStep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getC2SSignal
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:153,1
    - Dst: waitSignal
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:155,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - step
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: waitC2S
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 1
    functionsReached:
    - ncclCoopThread
    - getC2SSignal
    - waitSignal
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE waitC2S(uint32_t step) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: waitSignal
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:161,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:161,1
    - Dst: getR2RSignal
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - monoStep
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: waitR2R
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 1
    functionsReached:
    - ncclCoopThread
    - getR2RSignal
    - waitSignal
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE waitR2R(uint32_t monoStep) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: imodFast32
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:166,1
    - Dst: unsigned
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - sendNotRecv
    - step
    - step_lt_nPeers
    argTypes:
    - bool
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: getPeer
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 2
    functionsReached:
    - imodFast32
    - unsigned
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE getPeer(bool sendNotRecv, int step, bool step_lt_nPeers)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getPeer
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:174,1
    - Dst: getC2SSignal
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:175,1
    - Dst: signal
      Src: /src/nccl/src/device/symmetric/gin_scratch__types.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - phaseDelta
    - step
    - step_lt_nPeers
    - credits
    argTypes:
    - int
    - int
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: sendC2S
    functionSourceFile: /src/nccl/src/device/symmetric/gin_scratch__types.h
    functionUses: 2
    functionsReached:
    - getPeer
    - signal
    - getC2SSignal
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE sendC2S(int phaseDelta, int step, bool step_lt_nPeers,
      int credits)
  - 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: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    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: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    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: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    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: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    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:58,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: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    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:67,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/network/unpack/unpack.h:71,1
    - Dst: st_global<1>
      Src: /src/nccl/src/device/network/unpack/unpack.h:77,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: 80
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: bulkLoad
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - load128
    - ld_volatile_global
    - st_global<1>
    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:87,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/network/unpack/unpack.h:91,1
    - Dst: st_global<2>
      Src: /src/nccl/src/device/network/unpack/unpack.h:98,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: 101
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: bulkLoad
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - st_global<2>
    - load128
    - 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:108,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/network/unpack/unpack.h:112,1
    - Dst: st_global<4>
      Src: /src/nccl/src/device/network/unpack/unpack.h:118,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: 121
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 121
    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:128,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/network/unpack/unpack.h:132,1
    - Dst: st_global<8>
      Src: /src/nccl/src/device/network/unpack/unpack.h:138,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: 141
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: bulkLoad
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - load128
    - ld_volatile_global
    - st_global<8>
    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:147,1
    - Dst: st_global<16>
      Src: /src/nccl/src/device/network/unpack/unpack.h:148,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: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: bulkLoad
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - ld_volatile_global
    - st_global<16>
    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:156,1
    - Dst: DIVUP
      Src: /src/nccl/src/device/network/unpack/unpack.h:157,1
    - Dst: DIVUP
      Src: /src/nccl/src/device/network/unpack/unpack.h:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nbytes
    - nw
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 162
    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: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    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:186,1
    - Dst: ncclNetDeviceUnpackInner
      Src: /src/nccl/src/device/network/unpack/unpack.h:191,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: 194
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 194
    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:220,1
    - Dst: ncclShmemScratchWarpSize
      Src: /src/nccl/src/device/network/unpack/unpack.h:228,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/network/unpack/unpack.h:229,1
    - Dst: load64gpu
      Src: /src/nccl/src/device/network/unpack/unpack.h:231,1
    - Dst: ppw
      Src: /src/nccl/src/device/network/unpack/unpack.h:233,1
    - Dst: load128
      Src: /src/nccl/src/device/network/unpack/unpack.h:244,1
    - Dst: storeShmem128
      Src: /src/nccl/src/device/network/unpack/unpack.h:246,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/network/unpack/unpack.h:246,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/network/unpack/unpack.h:249,1
    - Dst: loadShmem128
      Src: /src/nccl/src/device/network/unpack/unpack.h:255,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/network/unpack/unpack.h:255,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: bulkLoad
      Src: /src/nccl/src/device/network/unpack/unpack.h:272,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/network/unpack/unpack.h:284,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: 286
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 286
    functionName: ncclNetDeviceUnpackInner
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - ncclScratchForWarp
    - shmemCvtPtr
    - load128
    - load64gpu
    - __syncwarp
    - storeShmem128
    - ppw
    - ncclShmemScratchWarpSize
    - bulkLoad
    - 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: 16
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 16
    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:37,1
    - Dst: ncclProfilerStopKernelChEvent
      Src: /src/nccl/src/transport/profiler.cc:42,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 50
    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: 2
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logFunction
    - profFunction
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 9
    functionName: stubInit
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubInit(void** ctx, uint64_t commId, ncclNetCommConfig_t*
      config, 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: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: stubDevices
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubDevices(int* ndev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: stubGetProperties
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubGetProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - dev
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: stubListen
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubListen(void* ctx, int dev, void* handle, void** listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - dev
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: stubConnect
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubConnect(void* ctx, int dev, 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: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: stubAccept
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubAccept(void* listenComm, void** recvComm, ncclNetDeviceHandle_t**
      recvDevComm)
  - 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: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: stubRegMr
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubRegMr(void* comm, void* data, size_t size, int type,
      void** mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - comm
    - data
    - size
    - type
    - offset
    - fd
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: stubRegMrDmaBuf
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubRegMrDmaBuf(void* comm, 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:
    - comm
    - mhandle
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: stubDeregMr
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubDeregMr(void* comm, 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: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: stubIsend
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubIsend(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: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: stubIrecv
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubIrecv(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: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: stubIflush
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubIflush(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
    - sizes
    argTypes:
    - void*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: stubTest
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubTest(void* request, int* done, int* sizes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sendComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: stubCloseSend
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubCloseSend(void* sendComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - recvComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: stubCloseRecv
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubCloseRecv(void* recvComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - listenComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: stubCloseListen
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubCloseListen(void* listenComm)
  - 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: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: stubGetDeviceMr
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubGetDeviceMr(void* comm, void* mhandle, void** dptr_mhandle)
  - 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: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: stubIrecvConsumed
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubIrecvConsumed(void* recvComm, int n, void* request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: stubMakeVDevice
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubMakeVDevice(int* d, ncclNetVDeviceProps_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: stubFinalize
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubFinalize(void* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - netAttr
    argTypes:
    - void*
    - ncclNetAttr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: stubSetNetAttr
    functionSourceFile: /src/nccl/src/transport/net_socket_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubSetNetAttr(void* ctx, ncclNetAttr_t* netAttr)
  - 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: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    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: 2
    argNames:
    - comm
    - send
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: nvlsSendFree
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t nvlsSendFree(struct ncclComm* comm, struct ncclConnector*
      send)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comm
    - recv
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: nvlsRecvFree
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t nvlsRecvFree(struct ncclComm* comm, struct ncclConnector*
      recv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:59,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:60,1
    - Dst: cuMulticastCreate
      Src: /src/nccl/src/transport/nvls.cc:60,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:64,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/nvls.cc:64,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/nvls.cc:67,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:70,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: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: ncclNvlsGroupCreate
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - INFO
    - cuMulticastCreate
    - memcpy
    - cuMemExportToShareableHandle
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsGroupCreate(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:79,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/nvls.cc:84,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/nvls.cc:85,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:86,1
    - Dst: ncclProxyClientGetFdBlocking
      Src: /src/nccl/src/transport/nvls.cc:86,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/nvls.cc:87,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:88,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/nvls.cc:88,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/transport/nvls.cc:89,1
    - Dst: close
      Src: /src/nccl/src/transport/nvls.cc:89,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:92,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/nvls.cc:92,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/nvls.cc:94,1
    - Dst: close
      Src: /src/nccl/src/transport/nvls.cc:100,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: 102
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 102
    functionName: ncclNvlsGroupConnect
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - TRACE
    - INFO
    - close
    - memcpy
    - CUCHECKGOTO
    - ncclProxyClientGetFdBlocking
    - NCCLCHECKGOTO
    - SYSCHECK
    - cuMemImportFromShareableHandle
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsGroupConnect(struct ncclComm *comm, char *shareableHandle,
      int rank, CUmemGenericAllocationHandle *mcHandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:106,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:109,1
    - Dst: cuMulticastUnbind
      Src: /src/nccl/src/transport/nvls.cc:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - comm
    - size
    - mcHandle
    argTypes:
    - struct ncclComm*
    - size_t
    - CUmemGenericAllocationHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    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:117,1
    - Dst: cuMulticastUnbind
      Src: /src/nccl/src/transport/nvls.cc:117,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:118,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/nvls.cc:118,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:119,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/nvls.cc:119,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:120,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:120,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:121,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: 123
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: ncclNvlsDeregBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - cuMemAddressFree
    - INFO
    - CUCALL
    - cuMemRelease
    - cuMemUnmap
    - CUCHECK
    - cuMulticastUnbind
    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:126,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:130,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/nvls.cc:130,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:131,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/nvls.cc:131,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:132,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:132,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:137,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/nvls.cc:137,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:138,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/nvls.cc:138,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:139,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:139,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: 143
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 143
    functionName: nvlsGroupUnmapMem
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - cuMemAddressFree
    - INFO
    - 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: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - comm
    - nChannels
    - chunkSize
    - treeMaxChunkSize
    argTypes:
    - struct ncclComm*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 193
    functionName: ncclNvlsTreeSm100Tuning
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsTreeSm100Tuning(struct ncclComm* comm, int* nChannels,
      int* chunkSize, int* treeMaxChunkSize)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/transport/nvls.cc:199,1
    - Dst: strlen
      Src: /src/nccl/src/transport/nvls.cc:200,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:211,1
    - Dst: ncclNvlsTreeSm100Tuning
      Src: /src/nccl/src/transport/nvls.cc:211,1
    - Dst: ncclParamNvlsChunkSize
      Src: /src/nccl/src/transport/nvls.cc:217,1
    - Dst: ncclParamNvlsTreeMaxChunkSize
      Src: /src/nccl/src/transport/nvls.cc:220,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:228,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:228,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:235,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 239
    functionName: ncclNvlsTuning
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - ncclGetEnv
    - ncclNvlsTreeSm100Tuning
    - INFO
    - std::max
    - ncclParamNvlsChunkSize
    - min
    - ncclParamNvlsTreeMaxChunkSize
    - strlen
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsTuning(struct ncclComm* comm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:246,1
    - Dst: ncclTopoGetGpuCount
      Src: /src/nccl/src/transport/nvls.cc:246,1
    - Dst: ncclParamNvlsEnable
      Src: /src/nccl/src/transport/nvls.cc:247,1
    - Dst: CUPFN
      Src: /src/nccl/src/transport/nvls.cc:252,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:253,1
    - Dst: cuCtxGetDevice
      Src: /src/nccl/src/transport/nvls.cc:253,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/nvls.cc:254,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/transport/nvls.cc:254,1
    - Dst: ncclParamNvlsEnable
      Src: /src/nccl/src/transport/nvls.cc:255,1
    - Dst: CUPFN
      Src: /src/nccl/src/transport/nvls.cc:257,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:258,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/transport/nvls.cc:258,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 267
    functionName: ncclNvlsInit
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - CUPFN
    - cudaDriverGetVersion
    - INFO
    - cuCtxGetDevice
    - cuDeviceGetAttribute
    - ncclTopoGetGpuCount
    - CUDACHECK
    - ncclParamNvlsEnable
    - CUCHECK
    - 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:274,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/nvls.cc:274,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:275,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/nvls.cc:275,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:277,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/nvls.cc:277,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 284
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:299,1
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:300,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:305,1
    - Dst: cuMulticastGetGranularity
      Src: /src/nccl/src/transport/nvls.cc:305,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/nvls.cc:306,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:310,1
    - Dst: ncclNvlsGroupCreate
      Src: /src/nccl/src/transport/nvls.cc:310,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:312,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:312,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:314,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:314,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:315,1
    - Dst: ncclNvlsGroupConnect
      Src: /src/nccl/src/transport/nvls.cc:315,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:319,1
    - Dst: cuMulticastAddDevice
      Src: /src/nccl/src/transport/nvls.cc:319,1
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:321,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:326,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/transport/nvls.cc:326,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/nvls.cc:327,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:329,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/nvls.cc:329,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:332,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/transport/nvls.cc:332,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:333,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/nvls.cc:333,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:334,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/nvls.cc:334,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:335,1
    - Dst: cudaMemset
      Src: /src/nccl/src/transport/nvls.cc:335,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:337,1
    - Dst: ncclMemTrack
      Src: /src/nccl/src/transport/nvls.cc:337,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:340,1
    - Dst: bootstrapIntraNodeBarrier
      Src: /src/nccl/src/transport/nvls.cc:340,1
    - Dst: CUPFN
      Src: /src/nccl/src/transport/nvls.cc:344,1
    - Dst: cuMulticastBindMem
      Src: /src/nccl/src/transport/nvls.cc:344,1
    - Dst: pfn_cuGetErrorString
      Src: /src/nccl/src/transport/nvls.cc:347,1
    - Dst: WARN
      Src: /src/nccl/src/transport/nvls.cc:349,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:355,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/nvls.cc:355,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:356,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/nvls.cc:356,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:357,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/nvls.cc:357,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:361,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:366,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/nvls.cc:366,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:368,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:368,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:370,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/nvls.cc:370,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:372,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 68
    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: 374
      start: 286
    functionDepth: 6
    functionLinenumber: 286
    functionLinenumberEnd: 374
    functionName: nvlsAllocateMem
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - CUPFN
    - cuMulticastAddDevice
    - NCCLCHECKGOTO
    - cuMemSetAccess
    - pfn_cuGetErrorString
    - cuMemUnmap
    - cuMemRelease
    - WARN
    - cuMemGetAllocationGranularity
    - bootstrapIntraNodeBarrier
    - CUCHECKGOTO
    - CUCHECK
    - ncclNvlsGroupConnect
    - INFO
    - cuMemAddressFree
    - ncclNvlsGroupCreate
    - memset
    - cuMemAddressReserve
    - CUDACHECKGOTO
    - cuMulticastGetGranularity
    - cuMulticastBindMem
    - bootstrapIntraNodeBroadcast
    - cudaMemset
    - cuMemCreate
    - cuMemMap
    - ALIGN_SIZE
    - ncclMemTrack
    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:399,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:402,1
    - Dst: nvlsAllocateMem
      Src: /src/nccl/src/transport/nvls.cc:402,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:404,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/nvls.cc:404,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:404,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:405,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/nvls.cc:405,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:405,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:420,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:420,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:421,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:421,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:422,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:422,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:423,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:423,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:427,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/transport/nvls.cc:427,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:428,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/nvls.cc:428,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:428,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:429,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/nvls.cc:429,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:429,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:431,1
    - Dst: bootstrapIntraNodeBarrier
      Src: /src/nccl/src/transport/nvls.cc:431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 376
    functionDepth: 7
    functionLinenumber: 376
    functionLinenumberEnd: 439
    functionName: ncclNvlsBufferSetup
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 2
    functionsReached:
    - ncclCudaGraphNone
    - INFO
    - cudaMemcpyAsync
    - bootstrapIntraNodeBarrier
    - nvlsAllocateMem
    - ncclStreamWaitStream
    - ncclStrongStreamAcquire
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - ncclStrongStreamRelease
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsBufferSetup(struct ncclComm* comm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:452,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:458,1
    - Dst: initNvlsChannel
      Src: /src/nccl/src/transport/nvls.cc:458,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/transport/nvls.cc:462,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:472,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:481,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/nvls.cc:481,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:491,1
    - Dst: initNvlsChannel
      Src: /src/nccl/src/transport/nvls.cc:491,1
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:494,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:500,1
    - Dst: nvlsAllocateMem
      Src: /src/nccl/src/transport/nvls.cc:500,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:503,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/nvls.cc:503,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:503,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:504,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/nvls.cc:504,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:504,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:542,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:542,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:543,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:543,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:544,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:544,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:545,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:545,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:548,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/transport/nvls.cc:548,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:549,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/nvls.cc:549,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:549,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:550,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/nvls.cc:550,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:550,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:556,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:560,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/nvls.cc:560,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:561,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:561,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:563,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:563,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:564,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/nvls.cc:564,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 100
    argCount: 2
    argNames:
    - comm
    - parent
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 441
    functionDepth: 7
    functionLinenumber: 441
    functionLinenumberEnd: 580
    functionName: ncclNvlsSetup
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - ncclCudaGraphNone
    - ncclCalloc
    - cudaMemcpyAsync
    - nvlsAllocateMem
    - ncclStreamWaitStream
    - ncclStrongStreamAcquire
    - bootstrapIntraNodeBroadcast
    - min
    - ncclAtomicRefCountIncrement
    - DIVUP
    - NCCLCHECKGOTO
    - memset
    - CUDACHECKGOTO
    - initNvlsChannel
    - ncclStrongStreamRelease
    - ncclShmOpen
    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:586,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:588,1
    - Dst: ncclShmClose
      Src: /src/nccl/src/transport/nvls.cc:588,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:591,1
    - Dst: nvlsGroupUnbind
      Src: /src/nccl/src/transport/nvls.cc:591,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:592,1
    - Dst: nvlsGroupUnmapMem
      Src: /src/nccl/src/transport/nvls.cc:592,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:596,1
    - Dst: nvlsGroupUnbind
      Src: /src/nccl/src/transport/nvls.cc:596,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:597,1
    - Dst: nvlsGroupUnmapMem
      Src: /src/nccl/src/transport/nvls.cc:597,1
    - Dst: free
      Src: /src/nccl/src/transport/nvls.cc:599,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 603
    functionName: ncclNvlsFree
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - ncclAtomicRefCountDecrement
    - free
    - nvlsGroupUnbind
    - nvlsGroupUnmapMem
    - ncclShmClose
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsFree(struct ncclComm* comm)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:619,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/nvls.cc:619,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:622,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/nvls.cc:622,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:624,1
    - Dst: cudaPointerGetAttributes
      Src: /src/nccl/src/transport/nvls.cc:624,1
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:627,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:632,1
    - Dst: cuMulticastGetGranularity
      Src: /src/nccl/src/transport/nvls.cc:632,1
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:634,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:639,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/transport/nvls.cc:639,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/nvls.cc:643,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/nvls.cc:648,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:659,1
    - Dst: ncclShmemAllgather
      Src: /src/nccl/src/transport/nvls.cc:659,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:677,1
    - Dst: cuMulticastGetGranularity
      Src: /src/nccl/src/transport/nvls.cc:677,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/nvls.cc:678,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:682,1
    - Dst: ncclNvlsGroupCreate
      Src: /src/nccl/src/transport/nvls.cc:682,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:683,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:683,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:685,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:685,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:686,1
    - Dst: ncclNvlsGroupConnect
      Src: /src/nccl/src/transport/nvls.cc:686,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:689,1
    - Dst: cuMulticastAddDevice
      Src: /src/nccl/src/transport/nvls.cc:689,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:692,1
    - Dst: bootstrapIntraNodeBarrier
      Src: /src/nccl/src/transport/nvls.cc:692,1
    - Dst: CUPFN
      Src: /src/nccl/src/transport/nvls.cc:697,1
    - Dst: cuMulticastBindAddr
      Src: /src/nccl/src/transport/nvls.cc:697,1
    - Dst: CUCALL
      Src: /src/nccl/src/transport/nvls.cc:702,1
    - Dst: cuGetErrorString
      Src: /src/nccl/src/transport/nvls.cc:702,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:703,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:710,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/nvls.cc:710,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:712,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/nvls.cc:712,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:714,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/nvls.cc:714,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:718,1
    - Dst: ncclShmemAllgather
      Src: /src/nccl/src/transport/nvls.cc:718,1
    - Dst: free
      Src: /src/nccl/src/transport/nvls.cc:730,1
    - Dst: CUCALL
      Src: /src/nccl/src/transport/nvls.cc:734,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/nvls.cc:734,1
    - Dst: CUCALL
      Src: /src/nccl/src/transport/nvls.cc:735,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/nvls.cc:735,1
    - Dst: CUCALL
      Src: /src/nccl/src/transport/nvls.cc:738,1
    - Dst: cuMulticastUnbind
      Src: /src/nccl/src/transport/nvls.cc:738,1
    - Dst: CUCALL
      Src: /src/nccl/src/transport/nvls.cc:739,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:739,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 105
    argCount: 5
    argNames:
    - comm
    - userBuff
    - buffSize
    - regAddr
    - regUsed
    argTypes:
    - struct ncclComm*
    - uintptr_t
    - size_t
    - CUdeviceptr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 605
    functionDepth: 6
    functionLinenumber: 605
    functionLinenumberEnd: 743
    functionName: tryRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - CUPFN
    - cuMulticastAddDevice
    - memcpy
    - NCCLCHECKGOTO
    - cuMemSetAccess
    - cuMemUnmap
    - cuMemRelease
    - cuMulticastUnbind
    - cudaPointerGetAttributes
    - ncclCalloc
    - cuMemGetAllocationGranularity
    - bootstrapIntraNodeBarrier
    - cuMulticastBindAddr
    - CUCHECKGOTO
    - free
    - ncclNvlsGroupConnect
    - INFO
    - cuMemAddressFree
    - ncclShmemAllgather
    - CUCALL
    - ncclNvlsGroupCreate
    - memset
    - cuMemAddressReserve
    - cuMulticastGetGranularity
    - CUDACHECKGOTO
    - bootstrapIntraNodeBroadcast
    - cuMemMap
    - ncclRegFind
    - ALIGN_SIZE
    - cuGetErrorString
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t tryRegisterBuffer(struct ncclComm *comm, uintptr_t userBuff,
      size_t buffSize, CUdeviceptr *regAddr, int *regUsed)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:753,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/nvls.cc:753,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/nvls.cc:756,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:760,1
    - Dst: cuPointerGetAttribute
      Src: /src/nccl/src/transport/nvls.cc:760,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/nvls.cc:765,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:769,1
    - Dst: cuPointerGetAttribute
      Src: /src/nccl/src/transport/nvls.cc:769,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:773,1
    - Dst: ncclShmemAllgather
      Src: /src/nccl/src/transport/nvls.cc:773,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:821,1
    - Dst: tryRegisterBuffer
      Src: /src/nccl/src/transport/nvls.cc:828,1
    - Dst: tryRegisterBuffer
      Src: /src/nccl/src/transport/nvls.cc:833,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:837,1
    - Dst: free
      Src: /src/nccl/src/transport/nvls.cc:843,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:847,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 85
    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: 849
      start: 745
    functionDepth: 7
    functionLinenumber: 745
    functionLinenumberEnd: 849
    functionName: nvlsRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - INFO
    - ncclShmemAllgather
    - memcpy
    - CUCHECKGOTO
    - cuPointerGetAttribute
    - free
    - tryRegisterBuffer
    - NCCLCHECKGOTO
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:863,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/nvls.cc:863,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:864,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/transport/nvls.cc:864,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:867,1
    - Dst: ncclCuMemGetAddressRange
      Src: /src/nccl/src/transport/nvls.cc:867,1
    - Dst: ncclParamMultiSegmentRegister
      Src: /src/nccl/src/transport/nvls.cc:868,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:875,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/nvls.cc:875,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:876,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/transport/nvls.cc:876,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:879,1
    - Dst: ncclCuMemGetAddressRange
      Src: /src/nccl/src/transport/nvls.cc:879,1
    - Dst: ncclParamMultiSegmentRegister
      Src: /src/nccl/src/transport/nvls.cc:880,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:887,1
    - Dst: nvlsRegisterBuffer
      Src: /src/nccl/src/transport/nvls.cc:887,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    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: 891
      start: 851
    functionDepth: 8
    functionLinenumber: 851
    functionLinenumberEnd: 891
    functionName: ncclNvlsLocalRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - ncclRegLocalIsValid
    - ncclParamMultiSegmentRegister
    - nvlsRegisterBuffer
    - ncclRegFind
    - ncclCuMemGetAddressRange
    - 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:901,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/nvls.cc:901,1
    - Dst: free
      Src: /src/nccl/src/transport/nvls.cc:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 904
    functionName: cleanupNvls
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - ncclCommGraphDeregister
    - free
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t cleanupNvls(struct ncclComm* comm, struct ncclCommCallback*
      cb)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:923,1
    - Dst: ncclCuMemGetAddressRange
      Src: /src/nccl/src/transport/nvls.cc:923,1
    - Dst: ncclParamMultiSegmentRegister
      Src: /src/nccl/src/transport/nvls.cc:924,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:925,1
    - Dst: ncclCommGraphRegister
      Src: /src/nccl/src/transport/nvls.cc:925,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:930,1
    - Dst: ncclCuMemGetAddressRange
      Src: /src/nccl/src/transport/nvls.cc:930,1
    - Dst: ncclParamMultiSegmentRegister
      Src: /src/nccl/src/transport/nvls.cc:931,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:932,1
    - Dst: ncclCommGraphRegister
      Src: /src/nccl/src/transport/nvls.cc:932,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:935,1
    - Dst: nvlsRegisterBuffer
      Src: /src/nccl/src/transport/nvls.cc:935,1
    - Dst: malloc
      Src: /src/nccl/src/transport/nvls.cc:939,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/nvls.cc:943,1
    - Dst: malloc
      Src: /src/nccl/src/transport/nvls.cc:948,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/nvls.cc:952,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:956,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/nvls.cc:956,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:957,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/nvls.cc:957,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    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: 962
      start: 906
    functionDepth: 8
    functionLinenumber: 906
    functionLinenumberEnd: 962
    functionName: ncclNvlsGraphRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclParamMultiSegmentRegister
    - ncclCommGraphRegister
    - nvlsRegisterBuffer
    - ncclCommGraphDeregister
    - malloc
    - ncclCuMemGetAddressRange
    - 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:970,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:970,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:970,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:973,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:973,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:973,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:980,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:980,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:980,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:988,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:988,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:988,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:991,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:991,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:991,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:994,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:994,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:994,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 3
    argNames:
    - comm
    - info
    - recChannels
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 1005
    functionName: ncclNvlsRegResourcesQuery
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - DIVUP
    - min
    - std::max
    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: 1016
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1016
    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: 1020
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1020
    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: 1024
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1024
    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: 1028
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1028
    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: 1032
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1032
    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: 1041
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1041
    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: 1046
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1046
    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: 1050
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1050
    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: 1054
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1054
    functionName: ncclNvlsSymmetricInit
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    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: 1058
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1058
    functionName: ncclNvlsSymmetricMap
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    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: 1062
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1062
    functionName: ncclNvlsSymmetricFree
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    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: 1066
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1066
    functionName: ncclNvlsSymmetricFinalize
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    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: 1071
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1071
    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: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    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: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    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: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    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: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    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: 76
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 76
    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: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    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: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    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:174,1
    - Dst: ncclTopoGetNetDev
      Src: /src/nccl/src/transport/coll_net.cc:174,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:175,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/transport/coll_net.cc:175,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:179,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/coll_net.cc:179,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/transport/coll_net.cc:180,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:182,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:182,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:184,1
    - Dst: collNetName
      Src: /src/nccl/src/transport/coll_net.cc:184,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: 187
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: sendSetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclTopoCheckGdr
    - INFO
    - collNetName
    - ncclProxyCallBlocking
    - ncclAtomicRefCountIncrement
    - ncclTopoGetNetDev
    - ncclProxyConnect
    - NCCLCHECK
    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:194,1
    - Dst: ncclTopoGetNetDev
      Src: /src/nccl/src/transport/coll_net.cc:194,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:195,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/transport/coll_net.cc:195,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:198,1
    - Dst: ncclTopoNeedFlush
      Src: /src/nccl/src/transport/coll_net.cc:198,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:201,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/coll_net.cc:201,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/transport/coll_net.cc:204,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:206,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:206,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:208,1
    - Dst: collNetName
      Src: /src/nccl/src/transport/coll_net.cc:208,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: 211
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 211
    functionName: recvSetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclTopoCheckGdr
    - INFO
    - collNetName
    - ncclProxyCallBlocking
    - ncclTopoNeedFlush
    - ncclAtomicRefCountIncrement
    - ncclTopoGetNetDev
    - ncclProxyConnect
    - NCCLCHECK
    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: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:222,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:223,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/coll_net.cc:225,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:226,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:226,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:227,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/coll_net.cc:229,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:230,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:230,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:232,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/coll_net.cc:234,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:235,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:235,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct connectMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 239
    functionName: collNetDumpMap
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - NCCL_NET_MAP_GET_POINTER
    - NCCL_NET_MAP_OFFSET_BANK
    - printf
    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:253,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:253,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:260,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:264,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:273,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: 278
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 278
    functionName: sendConnect
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - NCCL_NET_MAP_GET_POINTER
    - NCCLCHECK
    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:286,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:286,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:293,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:296,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:305,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: 311
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 311
    functionName: recvConnect
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - NCCL_NET_MAP_GET_POINTER
    - NCCLCHECK
    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: 2
    argNames:
    - comm
    - send
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: sendFree
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendFree(struct ncclComm* comm, struct ncclConnector*
      send)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comm
    - recv
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: recvFree
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvFree(struct ncclComm* comm, struct ncclConnector*
      recv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:326,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:326,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:333,1
    - Dst: struct ncclProxyState*::ncclCollNet::getProperties
      Src: /src/nccl/src/transport/coll_net.cc:333,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:340,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: 345
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 345
    functionName: sendProxySetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - WARN
    - struct ncclProxyState*::ncclCollNet::getProperties
    - NCCLCHECK
    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:356,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:356,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:360,1
    - Dst: struct ncclProxyState*::ncclCollNet::listen
      Src: /src/nccl/src/transport/coll_net.cc:360,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: 362
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 362
    functionName: sharedListen
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclCollNet::listen
    - ncclCalloc
    - 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:369,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:369,1
    - Dst: struct ncclProxyState*::ncclCollNet::connect
      Src: /src/nccl/src/transport/coll_net.cc:374,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:377,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:380,1
    - Dst: struct ncclProxyState*::ncclCollNet::closeListen
      Src: /src/nccl/src/transport/coll_net.cc:380,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: 388
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 388
    functionName: sharedConnect
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - struct ncclProxyState*::ncclCollNet::connect
    - free
    - struct ncclProxyState*::ncclCollNet::closeListen
    - 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:394,1
    - Dst: struct ncclProxyState*::ncclCollNet::closeColl
      Src: /src/nccl/src/transport/coll_net.cc:394,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - proxyState
    - collNet
    - netDev
    argTypes:
    - struct ncclProxyState*
    - struct ncclCollNetSharedRes*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 400
    functionName: sharedFree
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - free
    - struct ncclProxyState*::ncclCollNet::closeColl
    - NCCLCHECK
    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:410,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/coll_net.cc:410,1
    - Dst: cudaMemset
      Src: /src/nccl/src/transport/coll_net.cc:411,1
    - Dst: cudaMemset
      Src: /src/nccl/src/transport/coll_net.cc:412,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:415,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/coll_net.cc:415,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - collNet
    - cuda
    - gpuPtr
    - cpuPtr
    - size
    - manager
    argTypes:
    - struct ncclCollNetSharedRes*
    - int
    - char**
    - char**
    - int*
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 419
    functionName: sharedBuffersInit
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclCudaCalloc
    - cudaMemset
    - ncclCudaHostCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sharedBuffersInit(struct ncclCollNetSharedRes* collNet,
      int cuda, char** gpuPtr, char** cpuPtr, int* size, struct ncclMemManager* manager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:423,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/coll_net.cc:423,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:424,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/coll_net.cc:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - collNet
    - proxyState
    argTypes:
    - struct ncclCollNetSharedRes*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 428
    functionName: sharedBuffersDestroy
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclCudaHostFree
    - ncclCudaFree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sharedBuffersDestroy(struct ncclCollNetSharedRes* collNet,
      struct ncclProxyState* proxyState)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:435,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:435,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:443,1
    - Dst: struct ncclProxyState*::ncclCollNet::getProperties
      Src: /src/nccl/src/transport/coll_net.cc:443,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:449,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:457,1
    - Dst: sharedListen
      Src: /src/nccl/src/transport/coll_net.cc:457,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: 459
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 459
    functionName: recvProxySetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - struct ncclProxyState*::ncclCollNet::getProperties
    - sharedListen
    - WARN
    - 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:463,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:477,1
    - Dst: sharedConnect
      Src: /src/nccl/src/transport/coll_net.cc:477,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:480,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:489,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:490,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:492,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/coll_net.cc:492,1
    - Dst: ncclParamGdrCopySyncEnable
      Src: /src/nccl/src/transport/coll_net.cc:494,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:496,1
    - Dst: ncclGdrCudaCalloc
      Src: /src/nccl/src/transport/coll_net.cc:496,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:505,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:506,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:513,1
    - Dst: sharedBuffersInit
      Src: /src/nccl/src/transport/coll_net.cc:513,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:514,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/coll_net.cc:520,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/coll_net.cc:520,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/coll_net.cc:520,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:521,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMrDmaBuf
      Src: /src/nccl/src/transport/coll_net.cc:521,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:525,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:529,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMr
      Src: /src/nccl/src/transport/coll_net.cc:529,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:540,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: 543
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 543
    functionName: sendProxyConnect
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECK
    - close
    - NCCL_NET_MAP_GET_POINTER
    - sharedBuffersInit
    - struct ncclProxyState*::ncclCollNet::regMrDmaBuf
    - ncclGdrCudaCalloc
    - getHandleForAddressRangeFlags
    - cuMemGetHandleForAddressRange
    - NCCLCHECKGOTO
    - struct ncclProxyState*::ncclCollNet::regMr
    - sharedConnect
    - CUCHECK
    - WARN
    - ncclCudaHostCalloc
    - ncclParamGdrCopySyncEnable
    - NCCL_NET_MAP_ADD_POINTER
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:547,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:554,1
    - Dst: sharedConnect
      Src: /src/nccl/src/transport/coll_net.cc:554,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:557,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:566,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:567,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:569,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/coll_net.cc:569,1
    - Dst: ncclGdcPinFlag
      Src: /src/nccl/src/transport/coll_net.cc:573,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:574,1
    - Dst: ncclGdrCudaCalloc
      Src: /src/nccl/src/transport/coll_net.cc:574,1
    - Dst: ncclParamGdrCopySyncEnable
      Src: /src/nccl/src/transport/coll_net.cc:576,1
    - Dst: ncclParamGdrCopyFlushEnable
      Src: /src/nccl/src/transport/coll_net.cc:585,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:588,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:589,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:594,1
    - Dst: sharedBuffersInit
      Src: /src/nccl/src/transport/coll_net.cc:594,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:595,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/coll_net.cc:601,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/coll_net.cc:601,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/coll_net.cc:601,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:602,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMrDmaBuf
      Src: /src/nccl/src/transport/coll_net.cc:602,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:606,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:610,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMr
      Src: /src/nccl/src/transport/coll_net.cc:610,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:620,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:627,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    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: 630
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 630
    functionName: recvProxyConnect
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclGdcPinFlag
    - NCCLCHECK
    - close
    - ncclParamGdrCopyFlushEnable
    - NCCL_NET_MAP_GET_POINTER
    - sharedBuffersInit
    - ncclGdrCudaCalloc
    - getHandleForAddressRangeFlags
    - struct ncclProxyState*::ncclCollNet::regMrDmaBuf
    - cuMemGetHandleForAddressRange
    - NCCLCHECKGOTO
    - struct ncclProxyState*::ncclCollNet::regMr
    - sharedConnect
    - CUCHECK
    - WARN
    - ncclCudaHostCalloc
    - ncclParamGdrCopySyncEnable
    - NCCL_NET_MAP_ADD_POINTER
    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: ncclIntruQueueEmpty
      Src: /src/nccl/src/transport/coll_net.cc:636,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/transport/coll_net.cc:637,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:638,1
    - Dst: struct ncclProxyState*::ncclCollNet::deregMr
      Src: /src/nccl/src/transport/coll_net.cc:638,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:639,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:644,1
    - Dst: struct ncclProxyState*::ncclCollNet::deregMr
      Src: /src/nccl/src/transport/coll_net.cc:644,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:648,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/coll_net.cc:648,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:649,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/coll_net.cc:649,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:650,1
    - Dst: ncclGdrCudaFree
      Src: /src/nccl/src/transport/coll_net.cc:650,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:651,1
    - Dst: sharedBuffersDestroy
      Src: /src/nccl/src/transport/coll_net.cc:651,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:652,1
    - Dst: sharedFree
      Src: /src/nccl/src/transport/coll_net.cc:652,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/transport/coll_net.cc:653,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:653,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:654,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 657
    functionName: sendProxyFree
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEmpty
    - ncclCudaHostFree
    - sharedFree
    - ncclAtomicRefCountDecrement
    - sharedBuffersDestroy
    - struct ncclProxyState*::ncclCollNet::deregMr
    - ncclCudaFree
    - free
    - ncclIntruQueueDequeue
    - ncclGdrCudaFree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyFree(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/transport/coll_net.cc:663,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/transport/coll_net.cc:664,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:665,1
    - Dst: struct ncclProxyState*::ncclCollNet::deregMr
      Src: /src/nccl/src/transport/coll_net.cc:665,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:666,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:671,1
    - Dst: struct ncclProxyState*::ncclCollNet::deregMr
      Src: /src/nccl/src/transport/coll_net.cc:671,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:675,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/coll_net.cc:675,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:676,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/coll_net.cc:676,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:677,1
    - Dst: ncclGdrCudaFree
      Src: /src/nccl/src/transport/coll_net.cc:677,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:678,1
    - Dst: sharedBuffersDestroy
      Src: /src/nccl/src/transport/coll_net.cc:678,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:679,1
    - Dst: sharedFree
      Src: /src/nccl/src/transport/coll_net.cc:679,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/transport/coll_net.cc:680,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:680,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 684
    functionName: recvProxyFree
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEmpty
    - ncclCudaHostFree
    - sharedFree
    - ncclAtomicRefCountDecrement
    - sharedBuffersDestroy
    - struct ncclProxyState*::ncclCollNet::deregMr
    - ncclCudaFree
    - free
    - ncclIntruQueueDequeue
    - ncclGdrCudaFree
    - NCCLCHECK
    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:693,1
    - Dst: std::max<size_t>
      Src: /src/nccl/src/transport/coll_net.cc:695,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/transport/coll_net.cc:696,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: 699
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 699
    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:716,1
    - Dst: calcAlgoOffset
      Src: /src/nccl/src/transport/coll_net.cc:717,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: 720
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 720
    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: 724
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 724
    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: 728
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 728
    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:732,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:742,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:746,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:751,1
    - Dst: struct ncclProxyState*::ncclCollNet::iallreduce
      Src: /src/nccl/src/transport/coll_net.cc:751,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:757,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: 762
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 762
    functionName: collNetRegIallreduce
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclCollNet::iallreduce
    - TRACE
    - ncclTypeSize
    - min
    - 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:767,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/transport/coll_net.cc:768,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:771,1
    - Dst: struct ncclProxyState*::ncclCollNet::iallreduce
      Src: /src/nccl/src/transport/coll_net.cc:771,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:773,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: 775
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 775
    functionName: collNetIallreduce
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclCollNet::iallreduce
    - TRACE
    - 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:780,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:791,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:807,1
    - Dst: struct ncclProxyState*::ncclCollNet::iallgather
      Src: /src/nccl/src/transport/coll_net.cc:807,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:814,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: 817
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 817
    functionName: collNetRegIallgather
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - struct ncclProxyState*::ncclCollNet::iallgather
    - NCCL_NET_MAP_GET_POINTER
    - min
    - 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:822,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:830,1
    - Dst: struct ncclProxyState*::ncclCollNet::iallgather
      Src: /src/nccl/src/transport/coll_net.cc:830,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:832,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: 834
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 834
    functionName: collNetIallgather
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - NCCL_NET_MAP_GET_POINTER
    - struct ncclProxyState*::ncclCollNet::iallgather
    - NCCLCHECK
    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:839,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:847,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:863,1
    - Dst: struct ncclProxyState*::ncclCollNet::ireducescatter
      Src: /src/nccl/src/transport/coll_net.cc:863,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:870,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: 873
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 873
    functionName: collNetRegIreducescatter
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - NCCL_NET_MAP_GET_POINTER
    - min
    - 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:878,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:883,1
    - Dst: struct ncclProxyState*::ncclCollNet::ireducescatter
      Src: /src/nccl/src/transport/coll_net.cc:883,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:885,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: 887
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 887
    functionName: collNetIreducescatter
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - NCCL_NET_MAP_GET_POINTER
    - struct ncclProxyState*::ncclCollNet::ireducescatter
    - NCCLCHECK
    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:895,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/coll_net.cc:899,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/coll_net.cc:906,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:919,1
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/transport/coll_net.cc:920,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:923,1
    - Dst: long
      Src: /src/nccl/src/transport/coll_net.cc:923,1
    - Dst: long
      Src: /src/nccl/src/transport/coll_net.cc:923,1
    - Dst: long
      Src: /src/nccl/src/transport/coll_net.cc:923,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/transport/coll_net.cc:927,1
    - Dst: calcStepsPerGroup
      Src: /src/nccl/src/transport/coll_net.cc:929,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:937,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:938,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:940,1
    - Dst: LAST_OF_GROUP
      Src: /src/nccl/src/transport/coll_net.cc:953,1
    - Dst: calcAlgoOffset
      Src: /src/nccl/src/transport/coll_net.cc:957,1
    - Dst: calcAlgoOffset
      Src: /src/nccl/src/transport/coll_net.cc:958,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:959,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:960,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:961,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:962,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:972,1
    - Dst: collNetRegIallreduce
      Src: /src/nccl/src/transport/coll_net.cc:972,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:974,1
    - Dst: collNetIallreduce
      Src: /src/nccl/src/transport/coll_net.cc:974,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:979,1
    - Dst: collNetRegIallgather
      Src: /src/nccl/src/transport/coll_net.cc:979,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:981,1
    - Dst: collNetIallgather
      Src: /src/nccl/src/transport/coll_net.cc:981,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:987,1
    - Dst: collNetRegIreducescatter
      Src: /src/nccl/src/transport/coll_net.cc:987,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:989,1
    - Dst: collNetIreducescatter
      Src: /src/nccl/src/transport/coll_net.cc:989,1
    - Dst: LAST_OF_GROUP
      Src: /src/nccl/src/transport/coll_net.cc:1000,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1004,1
    - Dst: struct ncclProxyState*::ncclCollNet::test
      Src: /src/nccl/src/transport/coll_net.cc:1004,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1006,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1017,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 104
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 889
    functionDepth: 2
    functionLinenumber: 889
    functionLinenumberEnd: 1024
    functionName: sendProxyProgress
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - LAST_OF_GROUP
    - collNetIallreduce
    - std::atomic_thread_fence
    - WARN
    - TRACE
    - calcAlgoOffset
    - collNetIreducescatter
    - calcRegionOffset
    - calcStepsPerGroup
    - DIVUP
    - collNetRegIreducescatter
    - collNetRegIallreduce
    - collNetRegIallgather
    - long
    - ROUNDUP
    - NCCLCHECK
    - wc_store_fence
    - struct ncclProxyState*::ncclCollNet::test
    - collNetIallgather
    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:1027,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:1032,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:1035,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:1048,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1060,1
    - Dst: struct ncclProxyState*::ncclCollNet::iflush
      Src: /src/nccl/src/transport/coll_net.cc:1060,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1067,1
    - Dst: struct ncclProxyState*::ncclCollNet::iflush
      Src: /src/nccl/src/transport/coll_net.cc:1067,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: 1070
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1070
    functionName: collNetRecvFlush
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclCollNet::iflush
    - NCCL_NET_MAP_GET_POINTER
    - min
    - NCCLCHECK
    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:1078,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/coll_net.cc:1082,1
    - Dst: memset
      Src: /src/nccl/src/transport/coll_net.cc:1083,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/coll_net.cc:1089,1
    - Dst: LAST_OF_GROUP
      Src: /src/nccl/src/transport/coll_net.cc:1098,1
    - Dst: calcStepsPerGroup
      Src: /src/nccl/src/transport/coll_net.cc:1098,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1101,1
    - Dst: LAST_OF_GROUP
      Src: /src/nccl/src/transport/coll_net.cc:1106,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:1109,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:1110,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1112,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:1121,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1125,1
    - Dst: collNetRecvFlush
      Src: /src/nccl/src/transport/coll_net.cc:1125,1
    - Dst: LAST_OF_GROUP
      Src: /src/nccl/src/transport/coll_net.cc:1132,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1136,1
    - Dst: struct ncclProxyState*::ncclCollNet::test
      Src: /src/nccl/src/transport/coll_net.cc:1136,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1139,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:1149,1
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/transport/coll_net.cc:1150,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/transport/coll_net.cc:1159,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1176,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 78
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1072
    functionDepth: 2
    functionLinenumber: 1072
    functionLinenumberEnd: 1182
    functionName: recvProxyProgress
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - wc_store_fence
    - calcRegionOffset
    - struct ncclProxyState*::ncclCollNet::test
    - calcStepsPerGroup
    - ROUNDUP
    - DIVUP
    - memset
    - collNetRecvFlush
    - LAST_OF_GROUP
    - std::atomic_thread_fence
    - WARN
    - NCCLCHECK
    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:1197,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1208,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:1208,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:1214,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:1227,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: 1229
      start: 1189
    functionDepth: 4
    functionLinenumber: 1189
    functionLinenumberEnd: 1229
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1241,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/coll_net.cc:1241,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1242,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/transport/coll_net.cc:1242,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1244,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/transport/coll_net.cc:1244,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1247,1
    - Dst: collnetRegisterBuffer
      Src: /src/nccl/src/transport/coll_net.cc:1247,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 6
    argNames:
    - comm
    - userbuff
    - buffSize
    - type
    - outRegBufFlag
    - outHandle
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - int
    - int*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1231
    functionDepth: 5
    functionLinenumber: 1231
    functionLinenumberEnd: 1254
    functionName: ncclCollnetLocalRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclRegLocalIsValid
    - CUCHECKGOTO
    - cuMemGetAddressRange
    - ncclRegFind
    - NCCLCHECKGOTO
    - collnetRegisterBuffer
    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:1264,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/coll_net.cc:1264,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1267
    functionName: cleanupCollnet
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclCommGraphDeregister
    - free
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t cleanupCollnet(struct ncclComm* comm, struct ncclCommCallback*
      cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1278,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/transport/coll_net.cc:1278,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1280,1
    - Dst: ncclCommGraphRegister
      Src: /src/nccl/src/transport/coll_net.cc:1280,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1281,1
    - Dst: collnetRegisterBuffer
      Src: /src/nccl/src/transport/coll_net.cc:1281,1
    - Dst: malloc
      Src: /src/nccl/src/transport/coll_net.cc:1284,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/coll_net.cc:1288,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1291,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/coll_net.cc:1291,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    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: 1301
      start: 1269
    functionDepth: 5
    functionLinenumber: 1269
    functionLinenumberEnd: 1301
    functionName: ncclCollnetGraphRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclCommGraphRegister
    - CUCHECKGOTO
    - cuMemGetAddressRange
    - NCCLCHECKGOTO
    - collnetRegisterBuffer
    - ncclCommGraphDeregister
    - malloc
    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:1304,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:1304,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - comm
    - proxyconn
    - handle
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1303
    functionDepth: 4
    functionLinenumber: 1303
    functionLinenumberEnd: 1307
    functionName: ncclCollnetDeregBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclProxyCallBlocking
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollnetDeregBuffer(struct ncclComm* comm, struct ncclProxyConnector*
      proxyconn, void* handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1316,1
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1317,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1323,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/coll_net.cc:1323,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/coll_net.cc:1323,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1324,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMrDmaBuf
      Src: /src/nccl/src/transport/coll_net.cc:1324,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:1330,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1334,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMr
      Src: /src/nccl/src/transport/coll_net.cc:1334,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1340,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:1340,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/coll_net.cc:1342,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/coll_net.cc:1344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    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: 1315
        line_start: 1315
        source_file: /src/nccl/src/transport/coll_net.cc
    - condition: (respSize == sizeof(void*))
      pos:
        line_end: 1316
        line_start: 1316
        source_file: /src/nccl/src/transport/coll_net.cc
    constantsTouched: []
    func_position:
      end: 1350
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1350
    functionName: sendProxyRegBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclCalloc
    - close
    - struct ncclProxyState*::ncclCollNet::regMrDmaBuf
    - CUCHECKGOTO
    - memcpy
    - getHandleForAddressRangeFlags
    - assert
    - cuMemGetHandleForAddressRange
    - NCCLCHECKGOTO
    - struct ncclProxyState*::ncclCollNet::regMr
    - NCCLCHECK
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1359,1
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1360,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1365,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/coll_net.cc:1365,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/coll_net.cc:1365,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1366,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMrDmaBuf
      Src: /src/nccl/src/transport/coll_net.cc:1366,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:1372,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1376,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMr
      Src: /src/nccl/src/transport/coll_net.cc:1376,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1382,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:1382,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/coll_net.cc:1384,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/coll_net.cc:1386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    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: 1358
        line_start: 1358
        source_file: /src/nccl/src/transport/coll_net.cc
    - condition: (respSize == sizeof(void*))
      pos:
        line_end: 1359
        line_start: 1359
        source_file: /src/nccl/src/transport/coll_net.cc
    constantsTouched: []
    func_position:
      end: 1392
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1392
    functionName: recvProxyRegBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclCalloc
    - close
    - struct ncclProxyState*::ncclCollNet::regMrDmaBuf
    - CUCHECKGOTO
    - memcpy
    - getHandleForAddressRangeFlags
    - assert
    - cuMemGetHandleForAddressRange
    - NCCLCHECKGOTO
    - struct ncclProxyState*::ncclCollNet::regMr
    - NCCLCHECK
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct proxyMemHandle*
    - struct proxyMemHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1396
    functionName: collnetHandleCmp
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool collnetHandleCmp(struct proxyMemHandle* a, struct proxyMemHandle*
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1402,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/coll_net.cc:1403,1
    - Dst: ncclIntruQueueDelete
      Src: /src/nccl/src/transport/coll_net.cc:1408,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:1409,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1411,1
    - Dst: struct ncclProxyState*::ncclCollNet::deregMr
      Src: /src/nccl/src/transport/coll_net.cc:1411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(void*))
      pos:
        line_end: 1401
        line_start: 1401
        source_file: /src/nccl/src/transport/coll_net.cc
    constantsTouched: []
    func_position:
      end: 1414
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1414
    functionName: sendProxyDeregBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueDelete
    - memcpy
    - struct ncclProxyState*::ncclCollNet::deregMr
    - assert
    - free
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyDeregBuffer(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, int* done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1420,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/coll_net.cc:1421,1
    - Dst: ncclIntruQueueDelete
      Src: /src/nccl/src/transport/coll_net.cc:1426,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:1427,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1429,1
    - Dst: struct ncclProxyState*::ncclCollNet::deregMr
      Src: /src/nccl/src/transport/coll_net.cc:1429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(void*))
      pos:
        line_end: 1419
        line_start: 1419
        source_file: /src/nccl/src/transport/coll_net.cc
    constantsTouched: []
    func_position:
      end: 1432
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1432
    functionName: recvProxyDeregBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueDelete
    - memcpy
    - struct ncclProxyState*::ncclCollNet::deregMr
    - assert
    - free
    - 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:1442,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/coll_net.cc:1442,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1444,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/coll_net.cc:1444,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1447,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/coll_net.cc:1447,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1449,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/coll_net.cc:1449,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/coll_net.cc:1454,1
    - Dst: strlen
      Src: /src/nccl/src/transport/coll_net.cc:1454,1
    - Dst: strlen
      Src: /src/nccl/src/transport/coll_net.cc:1454,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:1459,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1434
    functionDepth: 5
    functionLinenumber: 1434
    functionLinenumberEnd: 1465
    functionName: ncclCollNetChainBufferSetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 2
    functionsReached:
    - INFO
    - ncclTransportP2pConnect
    - ncclTransportP2pSetup
    - strlen
    - NCCLCHECKGOTO
    - 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:1475,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/coll_net.cc:1475,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1477,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/coll_net.cc:1477,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1481,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/coll_net.cc:1481,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1483,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/coll_net.cc:1483,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:1485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1467
    functionDepth: 5
    functionLinenumber: 1467
    functionLinenumberEnd: 1491
    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:1497,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/transport/coll_net.cc:1498,1
    - Dst: COMPILER_POPCOUNT64
      Src: /src/nccl/src/transport/coll_net.cc:1506,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1510,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/transport/coll_net.cc:1510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1493
    functionDepth: 4
    functionLinenumber: 1493
    functionLinenumberEnd: 1515
    functionName: collNetInitRailRankMap
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - bootstrapAllGather
    - ncclMemoryStackAlloc
    - COMPILER_POPCOUNT64
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetInitRailRankMap(ncclComm_t comm)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1533,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:1533,1
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1538,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1547,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:1547,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/coll_net.cc:1550,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1558,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:1558,1
    - Dst: memset
      Src: /src/nccl/src/transport/coll_net.cc:1568,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1580,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/transport/coll_net.cc:1580,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1597,1
    - Dst: initCollnetChannel
      Src: /src/nccl/src/transport/coll_net.cc:1597,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1600,1
    - Dst: collNetInitRailRankMap
      Src: /src/nccl/src/transport/coll_net.cc:1600,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:1604,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1612,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:1612,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1616,1
    - Dst: collNetInitRailRankMap
      Src: /src/nccl/src/transport/coll_net.cc:1616,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1620,1
    - Dst: initCollnetChannel
      Src: /src/nccl/src/transport/coll_net.cc:1620,1
    - Dst: ncclTransportCollNetSetup
      Src: /src/nccl/src/transport/coll_net.cc:1624,1
    - Dst: ncclTransportCollNetSetup
      Src: /src/nccl/src/transport/coll_net.cc:1625,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1629,1
    - Dst: ncclTransportCollNetCheck
      Src: /src/nccl/src/transport/coll_net.cc:1629,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/coll_net.cc:1636,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1645,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:1645,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1651,1
    - Dst: collNetReduceSupport
      Src: /src/nccl/src/transport/coll_net.cc:1651,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1657,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/transport/coll_net.cc:1657,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:1667,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1673,1
    - Dst: ncclTransportCollNetCheck
      Src: /src/nccl/src/transport/coll_net.cc:1673,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1674,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:1677,1
    - Dst: ncclTransportCollNetFree
      Src: /src/nccl/src/transport/coll_net.cc:1680,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 127
    argCount: 3
    argNames:
    - comm
    - parent
    - graphs
    argTypes:
    - ncclComm_t
    - ncclComm_t
    - struct ncclTopoGraph*[]
    assertStmts:
    - condition: (comm->rankToNode[head] == comm->node)
      pos:
        line_end: 1537
        line_start: 1537
        source_file: /src/nccl/src/transport/coll_net.cc
    constantsTouched: []
    func_position:
      end: 1683
      start: 1517
    functionDepth: 5
    functionLinenumber: 1517
    functionLinenumberEnd: 1683
    functionName: ncclCollNetSetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 1
    functionsReached:
    - collNetReduceSupport
    - TRACE
    - ncclCalloc
    - ncclTransportCollNetCheck
    - memcpy
    - collNetInitRailRankMap
    - assert
    - bootstrapAllGather
    - ncclTransportCollNetSetup
    - free
    - memset
    - NCCLCHECKGOTO
    - ncclTransportCollNetFree
    - initCollnetChannel
    - WARN
    - NCCLCHECK
    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:26,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/generic.cc:26,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:28,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/generic.cc:28,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/transport/generic.cc:29,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/transport/generic.cc:29,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/generic.cc:30,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/generic.cc:30,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:33,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/transport/generic.cc:33,1
    - Dst: INFO
      Src: /src/nccl/src/transport/generic.cc:40,1
    - Dst: free
      Src: /src/nccl/src/transport/generic.cc:43,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 14
    functionDepth: 5
    functionLinenumber: 14
    functionLinenumberEnd: 47
    functionName: ncclTransportRingConnect
    functionSourceFile: /src/nccl/src/transport/generic.cc
    functionUses: 2
    functionsReached:
    - ncclCalloc
    - INFO
    - ncclTransportP2pConnect
    - ncclTransportP2pSetup
    - bootstrapAllGather
    - ncclParamLocalRegister
    - free
    - NCCLCHECKGOTO
    - ncclParamGraphRegister
    - 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:55,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/generic.cc:55,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:56,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/generic.cc:56,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:58,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/generic.cc:58,1
    - Dst: INFO
      Src: /src/nccl/src/transport/generic.cc:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 65
    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:74,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/generic.cc:74,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:76,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/generic.cc:76,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:78,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/generic.cc:78,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:80,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/generic.cc:80,1
    - Dst: INFO
      Src: /src/nccl/src/transport/generic.cc:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 88
    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:35,1
    - Dst: ncclOsRealpath
      Src: /src/nccl/src/transport/net_socket.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - devName
    - pciPath
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: ncclNetSocketGetPciPath
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - snprintf
    - ncclOsRealpath
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketGetPciPath(char* devName, char** pciPath)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:58,1
    - Dst: ncclFindInterfaces
      Src: /src/nccl/src/transport/net_socket.cc:58,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:60,1
    - Dst: strcpy
      Src: /src/nccl/src/transport/net_socket.cc:69,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:70,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:71,1
    - Dst: ncclNetSocketGetPciPath
      Src: /src/nccl/src/transport/net_socket.cc:71,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_socket.cc:72,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_socket.cc:72,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_socket.cc:72,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_socket.cc:73,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_socket.cc:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logFunction
    - profFunction
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 81
    functionName: ncclNetSocketInit
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - INFO
    - memcpy
    - strlen
    - strcpy
    - ncclFindInterfaces
    - ncclNetSocketGetPciPath
    - snprintf
    - WARN
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketInit(void** ctx, uint64_t commId, ncclNetCommConfig_t*
      config, 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: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: ncclNetSocketDevices
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketDevices(int* ndev)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/src/transport/net_socket.cc:100,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:102,1
    - Dst: GetAdaptersAddresses
      Src: /src/nccl/src/transport/net_socket.cc:107,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:109,1
    - Dst: WideCharToMultiByte
      Src: /src/nccl/src/transport/net_socket.cc:120,1
    - Dst: strstr
      Src: /src/nccl/src/transport/net_socket.cc:123,1
    - Dst: strstr
      Src: /src/nccl/src/transport/net_socket.cc:123,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_socket.cc:127,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:135,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_socket.cc:139,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_socket.cc:144,1
    - Dst: SYSCHECKSYNC
      Src: /src/nccl/src/transport/net_socket.cc:146,1
    - Dst: open
      Src: /src/nccl/src/transport/net_socket.cc:146,1
    - Dst: read
      Src: /src/nccl/src/transport/net_socket.cc:151,1
    - Dst: strtol
      Src: /src/nccl/src/transport/net_socket.cc:153,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_socket.cc:157,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/transport/net_socket.cc:160,1
    - Dst: close
      Src: /src/nccl/src/transport/net_socket.cc:160,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - devName
    - speed
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 163
    functionName: ncclNetSocketGetSpeed
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - SYSCHECKSYNC
    - open
    - INFO
    - read
    - SYSCHECK
    - close
    - WideCharToMultiByte
    - free
    - strstr
    - malloc
    - GetAdaptersAddresses
    - snprintf
    - WARN
    - strtol
    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:172,1
    - Dst: ncclNetSocketGetSpeed
      Src: /src/nccl/src/transport/net_socket.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 187
    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:314,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:317,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_socket.cc:320,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:323,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_socket.cc:330,1
    - Dst: struct ncclNetSocketThreadResources*::threadCond::wait
      Src: /src/nccl/src/transport/net_socket.cc:340,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - args_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 344
    functionName: persistentSocketThread
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclSocketProgress
    - struct ncclNetSocketThreadResources*::threadCond::wait
    - ncclProfilerFunction
    - WARN
    linkageType: ''
    returnType: void
    signature: void * persistentSocketThread(void *args_)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamSocketNsocksPerThread
      Src: /src/nccl/src/transport/net_socket.cc:348,1
    - Dst: ncclParamSocketNthreads
      Src: /src/nccl/src/transport/net_socket.cc:349,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:351,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_socket.cc:360,1
    - Dst: ncclOsRealpath
      Src: /src/nccl/src/transport/net_socket.cc:363,1
    - Dst: open
      Src: /src/nccl/src/transport/net_socket.cc:364,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:365,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_socket.cc:369,1
    - Dst: strerror
      Src: /src/nccl/src/transport/net_socket.cc:369,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_socket.cc:373,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/transport/net_socket.cc:374,1
    - Dst: read
      Src: /src/nccl/src/transport/net_socket.cc:374,1
    - Dst: strcmp
      Src: /src/nccl/src/transport/net_socket.cc:375,1
    - Dst: strcmp
      Src: /src/nccl/src/transport/net_socket.cc:378,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:389,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_socket.cc:394,1
    - Dst: close
      Src: /src/nccl/src/transport/net_socket.cc:396,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - dev
    - ns
    - nt
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 400
    functionName: ncclNetSocketGetNsockNthread
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - open
    - read
    - INFO
    - close
    - strerror
    - free
    - ncclParamSocketNsocksPerThread
    - strncpy
    - strcmp
    - ncclParamSocketNthreads
    - SYSCHECKGOTO
    - snprintf
    - WARN
    - ncclOsRealpath
    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:404,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_socket.cc:409,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:412,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_socket.cc:412,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_socket.cc:414,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_socket.cc:414,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_socket.cc:415,1
    - Dst: ncclSocketListen
      Src: /src/nccl/src/transport/net_socket.cc:415,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_socket.cc:416,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_socket.cc:416,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_socket.cc:417,1
    - Dst: ncclNetSocketGetNsockNthread
      Src: /src/nccl/src/transport/net_socket.cc:417,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_socket.cc:425,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - dev
    - opaqueHandle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 428
    functionName: ncclNetSocketListen
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - ncclSocketListen
    - ncclNetSocketGetNsockNthread
    - ncclSocketInit
    - ncclSocketGetAddr
    - ncclSocketClose
    - free
    - memset
    - NCCLCHECKGOTO
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketListen(void* ctx, int dev, void* opaqueHandle,
      void** listenComm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclNetSocketComm::ncclNetSocketComm
      Src: /src/nccl/src/transport/net_socket.cc:447,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net_socket.cc:452,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/net_socket.cc:452,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:455,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_socket.cc:455,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:460,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/transport/net_socket.cc:460,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:463,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_socket.cc:463,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:469,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:469,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:472,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_socket.cc:472,1
    - Dst: ncclParamSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:472,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - dev
    - opaqueHandle
    - sendComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 475
    functionName: ncclNetSocketConnect
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclSocketConnect
    - ncclSocketProgress
    - ncclCalloc
    - cudaGetDevice
    - ncclSocketInit
    - ncclParamSocketInlineSize
    - ncclNetSocketComm::ncclNetSocketComm
    - CUDACHECK
    - ncclSocketReady
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketConnect(void* ctx, int dev, void* opaqueHandle,
      void** sendComm, ncclNetDeviceHandle_t** /*sendDevComm*/)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclNetSocketComm::ncclNetSocketComm
      Src: /src/nccl/src/transport/net_socket.cc:489,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net_socket.cc:494,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/net_socket.cc:494,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: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:499,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_socket.cc:499,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:503,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/transport/net_socket.cc:503,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:506,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_socket.cc:506,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:512,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:512,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:519,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:521,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_socket.cc:521,1
    - Dst: ncclParamSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:521,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 2
    argNames:
    - listenComm
    - recvComm
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 530
    functionName: ncclNetSocketAccept
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclSocketProgress
    - ncclCalloc
    - cudaGetDevice
    - ncclSocketAccept
    - ncclSocketInit
    - ncclParamSocketInlineSize
    - ncclNetSocketComm::ncclNetSocketComm
    - free
    - CUDACHECK
    - ncclSocketReady
    - 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:543,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:548,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: 550
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 550
    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:561,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:562,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_socket.cc:562,1
    - Dst: std::thread
      Src: /src/nccl/src/transport/net_socket.cc:568,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/transport/net_socket.cc:569,1
    - Dst: struct ncclNetSocketThreadResources*::threadCond::notify_one
      Src: /src/nccl/src/transport/net_socket.cc:584,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 6
    argNames:
    - comm
    - pInfo
    - op
    - data
    - size
    - req
    argTypes:
    - struct ncclNetSocketComm*
    - struct ncclProfilerInfo*
    - int
    - void*
    - int
    - struct ncclNetSocketTask**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 589
    functionName: ncclNetSocketGetTask
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - std::thread
    - ncclCalloc
    - struct ncclNetSocketThreadResources*::threadCond::notify_one
    - DIVUP
    - WARN
    - ncclSetThreadName
    - 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:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dataSize
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 592
    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:598,1
    - Dst: ncclNetSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:606,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:608,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:609,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:614,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:614,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:617,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:621,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_socket.cc:621,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:622,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_socket.cc:624,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:629,1
    - Dst: ncclNetSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:632,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:637,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:637,1
    - Dst: ncclNetSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:642,1
    - Dst: std::max
      Src: /src/nccl/src/transport/net_socket.cc:646,1
    - Dst: ncclParamSocketMinTaskSize
      Src: /src/nccl/src/transport/net_socket.cc:646,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net_socket.cc:646,1
    - Dst: min
      Src: /src/nccl/src/transport/net_socket.cc:648,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:649,1
    - Dst: ncclNetSocketGetTask
      Src: /src/nccl/src/transport/net_socket.cc:649,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_socket.cc:680,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:684,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:684,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_socket.cc:691,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 3
    argNames:
    - request
    - done
    - size
    argTypes:
    - void*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 698
    functionName: ncclNetSocketTest
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclSocketProgress
    - ncclParamSocketMinTaskSize
    - std::max
    - ncclNetSocketInlineSize
    - ncclSocketGetAddr
    - memcpy
    - min
    - DIVUP
    - ncclNetSocketGetTask
    - ncclProfilerFunction
    - WARN
    - ncclSocketToString
    - 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: 702
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 702
    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: 703
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 703
    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:707,1
    - Dst: ncclNetSocketGetRequest
      Src: /src/nccl/src/transport/net_socket.cc:707,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: 714
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 714
    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:719,1
    - Dst: ncclNetSocketGetRequest
      Src: /src/nccl/src/transport/net_socket.cc:719,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: 726
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 726
    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: 731
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 731
    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:737,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_socket.cc:737,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:738,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_socket.cc:738,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - opaqueComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 742
    functionName: ncclNetSocketCloseListen
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - free
    - ncclSocketClose
    - ncclSocketReady
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketCloseListen(void* opaqueComm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: joinable
      Src: /src/nccl/src/transport/net_socket.cc:749,1
    - Dst: struct ncclNetSocketThreadResources*::threadCond::notify_one
      Src: /src/nccl/src/transport/net_socket.cc:753,1
    - Dst: join
      Src: /src/nccl/src/transport/net_socket.cc:755,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:757,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:760,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_socket.cc:760,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:761,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_socket.cc:761,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:763,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_socket.cc:763,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:764,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_socket.cc:764,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:766,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - opaqueComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 770
    functionName: ncclNetSocketClose
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - joinable
    - join
    - ncclSocketClose
    - free
    - struct ncclNetSocketThreadResources*::threadCond::notify_one
    - ncclSocketReady
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketClose(void* opaqueComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 775
    functionName: ncclNetSocketFinalize
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketFinalize(void* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logFunction
    - profFunction
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 10
    functionName: stubInit
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubInit(void** ctx, uint64_t commId, ncclNetCommConfig_t*
      config, 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: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: stubDevices
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubDevices(int* ndev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: stubGetProperties
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubGetProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - dev
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: stubListen
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubListen(void* ctx, int dev, void* handle, void** listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - dev
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: stubConnect
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubConnect(void* ctx, int dev, 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: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: stubAccept
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubAccept(void* listenComm, void** recvComm, ncclNetDeviceHandle_t**
      recvDevComm)
  - 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: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: stubRegMr
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubRegMr(void* comm, void* data, size_t size, int type,
      void** mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - comm
    - data
    - size
    - type
    - offset
    - fd
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: stubRegMrDmaBuf
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubRegMrDmaBuf(void* comm, 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:
    - comm
    - mhandle
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: stubDeregMr
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubDeregMr(void* comm, 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: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: stubIsend
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubIsend(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: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: stubIrecv
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubIrecv(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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: stubIflush
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubIflush(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
    - sizes
    argTypes:
    - void*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: stubTest
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubTest(void* request, int* done, int* sizes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sendComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: stubCloseSend
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubCloseSend(void* sendComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - recvComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: stubCloseRecv
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubCloseRecv(void* recvComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - listenComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: stubCloseListen
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubCloseListen(void* listenComm)
  - 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: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: stubGetDeviceMr
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubGetDeviceMr(void* comm, void* mhandle, void** dptr_mhandle)
  - 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: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: stubIrecvConsumed
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubIrecvConsumed(void* recvComm, int n, void* request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: stubMakeVDevice
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubMakeVDevice(int* d, ncclNetVDeviceProps_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: stubFinalize
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubFinalize(void* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - netAttr
    argTypes:
    - void*
    - ncclNetAttr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: stubSetNetAttr
    functionSourceFile: /src/nccl/src/transport/net_ib_stub.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t stubSetNetAttr(void* ctx, ncclNetAttr_t* netAttr)
  - 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: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    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: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    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: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    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: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    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: 64
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 64
    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:164,1
    - Dst: ncclTopoCheckNet
      Src: /src/nccl/src/transport/net.cc:164,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: 167
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 167
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIT
      Src: /src/nccl/src/transport/net.cc:206,1
    - Dst: BIT
      Src: /src/nccl/src/transport/net.cc:206,1
    - Dst: BIT
      Src: /src/nccl/src/transport/net.cc:207,1
    - Dst: BIT
      Src: /src/nccl/src/transport/net.cc:207,1
    - Dst: BIT
      Src: /src/nccl/src/transport/net.cc:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - comm
    - conn
    - netAttr
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    - ncclNetAttr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 216
    functionName: populateCommNetAttrs
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - BIT
    linkageType: ''
    returnType: void
    signature: void populateCommNetAttrs(struct ncclComm* comm, struct ncclConnector*
      conn, ncclNetAttr_t* netAttr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ncclProxyState*::ncclNet::setNetAttr
      Src: /src/nccl/src/transport/net.cc:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - proxyState
    - netAttr
    argTypes:
    - struct ncclProxyState*
    - ncclNetAttr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: setNetAttrs
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclNet::setNetAttr
    linkageType: ''
    returnType: void
    signature: void setNetAttrs(struct ncclProxyState* proxyState, ncclNetAttr_t*
      netAttr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclBitsToString
      Src: /src/nccl/src/transport/net.cc:236,1
    - Dst: MASK
      Src: /src/nccl/src/transport/net.cc:236,1
    - Dst: ncclBitsToString
      Src: /src/nccl/src/transport/net.cc:237,1
    - Dst: MASK
      Src: /src/nccl/src/transport/net.cc:237,1
    - Dst: ncclBitsToString
      Src: /src/nccl/src/transport/net.cc:238,1
    - Dst: MASK
      Src: /src/nccl/src/transport/net.cc:238,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - netAttr
    - task
    argTypes:
    - ncclNetAttr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: printNetAttrs
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - MASK
    - ncclBitsToString
    linkageType: ''
    returnType: void
    signature: void printNetAttrs(ncclNetAttr_t* netAttr, const char *task)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIT
      Src: /src/nccl/src/transport/net.cc:270,1
    - Dst: BIT
      Src: /src/nccl/src/transport/net.cc:273,1
    - Dst: BIT
      Src: /src/nccl/src/transport/net.cc:274,1
    - Dst: memcmp
      Src: /src/nccl/src/transport/net.cc:277,1
    - Dst: setNetAttrs
      Src: /src/nccl/src/transport/net.cc:278,1
    - Dst: printNetAttrs
      Src: /src/nccl/src/transport/net.cc:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - proxyState
    - args
    - send
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 281
    functionName: setXferNetAttrs
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - setNetAttrs
    - BIT
    - memcmp
    - printNetAttrs
    linkageType: ''
    returnType: void
    signature: void setXferNetAttrs(struct ncclProxyState* proxyState, struct ncclProxyArgs*
      args, int send)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - useGdr
    argTypes:
    - ncclTopoGdrMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 294
    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:301,1
    - Dst: ncclParamNetSharedBuffers
      Src: /src/nccl/src/transport/net.cc:301,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:307,1
    - Dst: ncclTopoGetNetDev
      Src: /src/nccl/src/transport/net.cc:307,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:308,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/transport/net.cc:308,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:313,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/net.cc:313,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:318,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/net.cc:318,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:321,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:325,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:331,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    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: 333
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 333
    functionName: sendSetup
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclTopoCheckGdr
    - INFO
    - ncclProxyCallBlocking
    - memcpy
    - ncclParamNetSharedBuffers
    - ncclTopoGetNetDev
    - ncclProxyConnect
    - NCCLCHECK
    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:344,1
    - Dst: ncclParamNetSharedBuffers
      Src: /src/nccl/src/transport/net.cc:344,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:351,1
    - Dst: ncclTopoGetNetDev
      Src: /src/nccl/src/transport/net.cc:351,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:352,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/transport/net.cc:352,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:357,1
    - Dst: ncclTopoNeedFlush
      Src: /src/nccl/src/transport/net.cc:357,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:360,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/net.cc:360,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:366,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/net.cc:366,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:367,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    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: 372
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 372
    functionName: recvSetup
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclTopoCheckGdr
    - INFO
    - ncclProxyCallBlocking
    - memcpy
    - ncclTopoNeedFlush
    - ncclParamNetSharedBuffers
    - ncclTopoGetNetDev
    - ncclProxyConnect
    - NCCLCHECK
    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:375,1
    - Dst: ncclShmImportShareableBuffer
      Src: /src/nccl/src/transport/net.cc:375,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: 377
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 377
    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:380,1
    - Dst: ncclShmAllocateShareableBuffer
      Src: /src/nccl/src/transport/net.cc:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - proxyState
    - mem
    argTypes:
    - struct ncclProxyState*
    - struct connectMapMem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 382
    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:385,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:387,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:389,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:391,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:393,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:394,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/net.cc:396,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:397,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:397,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:398,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/net.cc:400,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:401,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:401,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:403,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/net.cc:405,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:406,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:406,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct connectMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 410
    functionName: netDumpMap
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - NCCL_NET_MAP_GET_POINTER
    - NCCL_NET_MAP_OFFSET_BANK
    - printf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t netDumpMap(struct connectMap* map)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:427,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:433,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:433,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:436,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:438,1
    - Dst: populateCommNetAttrs
      Src: /src/nccl/src/transport/net.cc:440,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:442,1
    - Dst: ncclProxyCallAsync
      Src: /src/nccl/src/transport/net.cc:442,1
    - Dst: ncclPollProxyResponse
      Src: /src/nccl/src/transport/net.cc:448,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:451,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:456,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:458,1
    - Dst: cudaDeviceEnablePeerAccess
      Src: /src/nccl/src/transport/net.cc:461,1
    - Dst: cudaGetLastError
      Src: /src/nccl/src/transport/net.cc:463,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net.cc:465,1
    - Dst: cudaGetErrorString
      Src: /src/nccl/src/transport/net.cc:465,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:470,1
    - Dst: netMapShm
      Src: /src/nccl/src/transport/net.cc:470,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:474,1
    - Dst: ncclP2pImportShareableBuffer
      Src: /src/nccl/src/transport/net.cc:474,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:486,1
    - Dst: ncclP2pImportShareableBuffer
      Src: /src/nccl/src/transport/net.cc:486,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:498,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:502,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:513,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: 533
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 533
    functionName: sendConnect
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - INFO
    - cudaGetLastError
    - netMapShm
    - ncclCuMemEnable
    - memcpy
    - NCCL_NET_MAP_GET_POINTER
    - free
    - cudaGetErrorString
    - ncclProxyCallAsync
    - ncclP2pImportShareableBuffer
    - cudaDeviceEnablePeerAccess
    - ncclPollProxyResponse
    - WARN
    - populateCommNetAttrs
    - NCCLCHECK
    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:544,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:548,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:548,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:552,1
    - Dst: populateCommNetAttrs
      Src: /src/nccl/src/transport/net.cc:557,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:559,1
    - Dst: ncclProxyCallAsync
      Src: /src/nccl/src/transport/net.cc:559,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:565,1
    - Dst: ncclPollProxyResponse
      Src: /src/nccl/src/transport/net.cc:565,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:568,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:573,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:576,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:579,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:590,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 5
    argNames:
    - comm
    - connectInfo
    - nranks
    - rank
    - recv
    argTypes:
    - struct ncclComm*
    - struct ncclConnect*
    - int
    - int
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 610
    functionName: recvConnect
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - INFO
    - memcpy
    - NCCL_NET_MAP_GET_POINTER
    - free
    - ncclProxyCallAsync
    - ncclPollProxyResponse
    - populateCommNetAttrs
    - NCCLCHECK
    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:616,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/net.cc:616,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:618,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:620,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/net.cc:620,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:621,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/transport/net.cc:621,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net.cc:624,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/net.cc:624,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:628,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/net.cc:628,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:630,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - comm
    - send
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 634
    functionName: sendFree
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclShmIpcClose
    - cudaGetDevice
    - ncclCuMemFree
    - cudaIpcCloseMemHandle
    - ncclCuMemEnable
    - free
    - CUDACHECK
    - ncclP2pFreeShareableBuffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendFree(struct ncclComm* comm, struct ncclConnector*
      send)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - recv
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 639
    functionName: recvFree
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvFree(struct ncclComm* comm, struct ncclConnector*
      recv)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net.cc:645,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:650,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:650,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:654,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:654,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:666,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:667,1
    - Dst: ncclP2pAllocateShareableBuffer
      Src: /src/nccl/src/transport/net.cc:667,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:669,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/net.cc:669,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:673,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/net.cc:673,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:677,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: 679
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 679
    functionName: sharedNetBuffersInit
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclP2pAllocateShareableBuffer
    - ncclCalloc
    - ncclCudaCalloc
    - ncclCuMemEnable
    - memcpy
    - WARN
    - ncclCudaHostCalloc
    - 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: 687
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 687
    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:690,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:692,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:694,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/transport/net.cc:695,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:697,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:698,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/net.cc:698,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:700,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/net.cc:700,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:702,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/net.cc:702,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:707,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:713,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: 716
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 716
    functionName: sharedNetBuffersDestroy
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclCudaHostFree
    - ncclCuMemEnable
    - ncclAtomicRefCountDecrement
    - ncclCudaFree
    - free
    - ncclP2pFreeShareableBuffer
    - 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:719,1
    - Dst: sharedNetBuffersInit
      Src: /src/nccl/src/transport/net.cc:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - connection
    - proxyState
    - nChannels
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 721
    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:728,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:728,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:741,1
    - Dst: struct ncclProxyState*::ncclNet::getProperties
      Src: /src/nccl/src/transport/net.cc:741,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net.cc:751,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: 760
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 760
    functionName: sendProxySetup
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCalloc
    - struct ncclProxyState*::ncclNet::getProperties
    - NCCLCHECK
    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:767,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:767,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:781,1
    - Dst: struct ncclProxyState*::ncclNet::getProperties
      Src: /src/nccl/src/transport/net.cc:781,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net.cc:790,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:796,1
    - Dst: struct ncclProxyState*::ncclNet::listen
      Src: /src/nccl/src/transport/net.cc:796,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    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: 800
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 800
    functionName: recvProxySetup
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - struct ncclProxyState*::ncclNet::listen
    - struct ncclProxyState*::ncclNet::getProperties
    - WARN
    - 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:814,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:814,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: 822
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 822
    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: 25
    BranchProfiles: []
    Callsites:
    - Dst: setNetAttrs
      Src: /src/nccl/src/transport/net.cc:830,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:832,1
    - Dst: ncclNetGetDeviceHandle
      Src: /src/nccl/src/transport/net.cc:832,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:837,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:837,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:841,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:841,1
    - Dst: ncclParamNetSharedComms
      Src: /src/nccl/src/transport/net.cc:845,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:848,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:848,1
    - Dst: struct ncclProxyState*::ncclNet::connect
      Src: /src/nccl/src/transport/net.cc:856,1
    - Dst: struct ncclProxyState*::ncclNet::connect
      Src: /src/nccl/src/transport/net.cc:862,1
    - Dst: struct ncclProxyState*::ncclNet::connect
      Src: /src/nccl/src/transport/net.cc:866,1
    - Dst: struct ncclProxyState*::ncclNet::closeSend
      Src: /src/nccl/src/transport/net.cc:871,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:872,1
    - Dst: printNetAttrs
      Src: /src/nccl/src/transport/net.cc:878,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net.cc:892,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/net.cc:892,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:896,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:903,1
    - Dst: sharedNetBuffersInit
      Src: /src/nccl/src/transport/net.cc:903,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:909,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:913,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:916,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:917,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:921,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/net.cc:922,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:923,1
    - Dst: ncclP2pAllocateShareableBuffer
      Src: /src/nccl/src/transport/net.cc:923,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:926,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/net.cc:926,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:932,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/net.cc:932,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:935,1
    - Dst: netCreateShm
      Src: /src/nccl/src/transport/net.cc:935,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:936,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:937,1
    - Dst: memset
      Src: /src/nccl/src/transport/net.cc:938,1
    - Dst: memset
      Src: /src/nccl/src/transport/net.cc:939,1
    - Dst: ncclParamGdrCopySyncEnable
      Src: /src/nccl/src/transport/net.cc:941,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:943,1
    - Dst: ncclGdrCudaCalloc
      Src: /src/nccl/src/transport/net.cc:943,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:952,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:953,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:961,1
    - Dst: NCCL_NET_MAP_DEV_MEM
      Src: /src/nccl/src/transport/net.cc:965,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/net.cc:968,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/net.cc:968,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/net.cc:968,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:969,1
    - Dst: struct ncclProxyState*::ncclNet::regMrDmaBuf
      Src: /src/nccl/src/transport/net.cc:969,1
    - Dst: close
      Src: /src/nccl/src/transport/net.cc:970,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:974,1
    - Dst: struct ncclProxyState*::ncclNet::regMr
      Src: /src/nccl/src/transport/net.cc:974,1
    - Dst: NCCL_NET_MAP_DEV_MEM
      Src: /src/nccl/src/transport/net.cc:974,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:979,1
    - Dst: struct ncclProxyState*::ncclNet::getDeviceMr
      Src: /src/nccl/src/transport/net.cc:979,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:985,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 117
    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: 987
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 987
    functionName: sendProxyConnect
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclP2pAllocateShareableBuffer
    - ncclNetGetDeviceHandle
    - memcpy
    - CUDACHECK
    - ncclCalloc
    - struct ncclProxyState*::ncclNet::regMr
    - ncclCuMemEnable
    - NCCL_NET_MAP_GET_POINTER
    - getHandleForAddressRangeFlags
    - cuMemGetHandleForAddressRange
    - netCreateShm
    - CUCHECK
    - NCCL_NET_MAP_ADD_POINTER
    - ncclCudaHostCalloc
    - setNetAttrs
    - close
    - struct ncclProxyState*::ncclNet::closeSend
    - ncclParamNetSharedComms
    - printNetAttrs
    - memset
    - NCCL_NET_MAP_DEV_MEM
    - struct ncclProxyState*::ncclNet::regMrDmaBuf
    - NCCLCHECK
    - struct ncclProxyState*::ncclNet::connect
    - ncclParamGdrCopySyncEnable
    - cudaGetDevice
    - ncclCudaCalloc
    - struct ncclProxyState*::ncclNet::getDeviceMr
    - sharedNetBuffersInit
    - ncclGdrCudaCalloc
    - ALIGN_SIZE
    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: 26
    BranchProfiles: []
    Callsites:
    - Dst: setNetAttrs
      Src: /src/nccl/src/transport/net.cc:996,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:998,1
    - Dst: ncclNetGetDeviceHandle
      Src: /src/nccl/src/transport/net.cc:998,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1004,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:1004,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1008,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:1008,1
    - Dst: ncclParamNetSharedComms
      Src: /src/nccl/src/transport/net.cc:1012,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1015,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:1015,1
    - Dst: struct ncclProxyState*::ncclNet::accept
      Src: /src/nccl/src/transport/net.cc:1024,1
    - Dst: struct ncclProxyState*::ncclNet::accept
      Src: /src/nccl/src/transport/net.cc:1030,1
    - Dst: struct ncclProxyState*::ncclNet::accept
      Src: /src/nccl/src/transport/net.cc:1034,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1038,1
    - Dst: printNetAttrs
      Src: /src/nccl/src/transport/net.cc:1043,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1053,1
    - Dst: struct ncclProxyState*::ncclNet::closeListen
      Src: /src/nccl/src/transport/net.cc:1053,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:1063,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1070,1
    - Dst: sharedNetBuffersInit
      Src: /src/nccl/src/transport/net.cc:1070,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:1074,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:1077,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:1078,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:1081,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:1087,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1088,1
    - Dst: ncclP2pAllocateShareableBuffer
      Src: /src/nccl/src/transport/net.cc:1088,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1091,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/net.cc:1091,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1096,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/net.cc:1096,1
    - Dst: ncclGdcPinFlag
      Src: /src/nccl/src/transport/net.cc:1100,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1101,1
    - Dst: ncclGdrCudaCalloc
      Src: /src/nccl/src/transport/net.cc:1101,1
    - Dst: ncclParamGdrCopySyncEnable
      Src: /src/nccl/src/transport/net.cc:1103,1
    - Dst: ncclParamGdrCopyFlushEnable
      Src: /src/nccl/src/transport/net.cc:1112,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:1115,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:1116,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:1119,1
    - Dst: NCCL_NET_MAP_DEV_MEM
      Src: /src/nccl/src/transport/net.cc:1123,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/net.cc:1126,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/net.cc:1126,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/net.cc:1126,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1127,1
    - Dst: struct ncclProxyState*::ncclNet::regMrDmaBuf
      Src: /src/nccl/src/transport/net.cc:1127,1
    - Dst: close
      Src: /src/nccl/src/transport/net.cc:1128,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1132,1
    - Dst: struct ncclProxyState*::ncclNet::regMr
      Src: /src/nccl/src/transport/net.cc:1132,1
    - Dst: NCCL_NET_MAP_DEV_MEM
      Src: /src/nccl/src/transport/net.cc:1132,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1137,1
    - Dst: struct ncclProxyState*::ncclNet::getDeviceMr
      Src: /src/nccl/src/transport/net.cc:1137,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1143,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 114
    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: 1145
      start: 989
    functionDepth: 2
    functionLinenumber: 989
    functionLinenumberEnd: 1145
    functionName: recvProxyConnect
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclP2pAllocateShareableBuffer
    - ncclNetGetDeviceHandle
    - memcpy
    - ncclCalloc
    - struct ncclProxyState*::ncclNet::regMr
    - ncclCuMemEnable
    - NCCL_NET_MAP_GET_POINTER
    - getHandleForAddressRangeFlags
    - cuMemGetHandleForAddressRange
    - CUCHECK
    - NCCL_NET_MAP_ADD_POINTER
    - ncclGdcPinFlag
    - ncclCudaHostCalloc
    - setNetAttrs
    - close
    - ncclParamNetSharedComms
    - ncclParamGdrCopyFlushEnable
    - printNetAttrs
    - NCCL_NET_MAP_DEV_MEM
    - struct ncclProxyState*::ncclNet::regMrDmaBuf
    - ncclParamGdrCopySyncEnable
    - NCCLCHECK
    - ncclCudaCalloc
    - struct ncclProxyState*::ncclNet::getDeviceMr
    - sharedNetBuffersInit
    - ncclGdrCudaCalloc
    - struct ncclProxyState*::ncclNet::accept
    - struct ncclProxyState*::ncclNet::closeListen
    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:1150,1
    - Dst: sharedNetBuffersDestroy
      Src: /src/nccl/src/transport/net.cc:1150,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/transport/net.cc:1155,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/transport/net.cc:1156,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1157,1
    - Dst: struct ncclProxyState*::ncclNet::deregMr
      Src: /src/nccl/src/transport/net.cc:1157,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:1158,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1163,1
    - Dst: struct ncclProxyState*::ncclNet::deregMr
      Src: /src/nccl/src/transport/net.cc:1163,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1168,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/net.cc:1168,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1170,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/net.cc:1170,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1172,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/net.cc:1172,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:1173,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1176,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/net.cc:1176,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1179,1
    - Dst: ncclGdrCudaFree
      Src: /src/nccl/src/transport/net.cc:1179,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1181,1
    - Dst: sharedNetBuffersDestroy
      Src: /src/nccl/src/transport/net.cc:1181,1
    - Dst: ncclParamNetSharedComms
      Src: /src/nccl/src/transport/net.cc:1182,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1185,1
    - Dst: struct ncclProxyState*::ncclNet::closeSend
      Src: /src/nccl/src/transport/net.cc:1185,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1187,1
    - Dst: struct ncclProxyState*::ncclNet::closeSend
      Src: /src/nccl/src/transport/net.cc:1187,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1190,1
    - Dst: struct ncclProxyState*::ncclNet::closeSend
      Src: /src/nccl/src/transport/net.cc:1190,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:1194,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1196
    functionName: sendProxyFree
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclShmIpcClose
    - ncclIntruQueueEmpty
    - ncclCudaHostFree
    - ncclCuMemEnable
    - ncclParamNetSharedComms
    - struct ncclProxyState*::ncclNet::closeSend
    - sharedNetBuffersDestroy
    - ncclCudaFree
    - free
    - struct ncclProxyState*::ncclNet::deregMr
    - ncclIntruQueueDequeue
    - ncclGdrCudaFree
    - ncclP2pFreeShareableBuffer
    - 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:1201,1
    - Dst: sharedNetBuffersDestroy
      Src: /src/nccl/src/transport/net.cc:1201,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/transport/net.cc:1206,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/transport/net.cc:1207,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1208,1
    - Dst: struct ncclProxyState*::ncclNet::deregMr
      Src: /src/nccl/src/transport/net.cc:1208,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:1209,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1214,1
    - Dst: struct ncclProxyState*::ncclNet::deregMr
      Src: /src/nccl/src/transport/net.cc:1214,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1218,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/net.cc:1218,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1219,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/net.cc:1219,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:1220,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1223,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/net.cc:1223,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1226,1
    - Dst: ncclGdrCudaFree
      Src: /src/nccl/src/transport/net.cc:1226,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1228,1
    - Dst: sharedNetBuffersDestroy
      Src: /src/nccl/src/transport/net.cc:1228,1
    - Dst: ncclParamNetSharedComms
      Src: /src/nccl/src/transport/net.cc:1229,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1232,1
    - Dst: struct ncclProxyState*::ncclNet::closeRecv
      Src: /src/nccl/src/transport/net.cc:1232,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1234,1
    - Dst: struct ncclProxyState*::ncclNet::closeRecv
      Src: /src/nccl/src/transport/net.cc:1234,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1237,1
    - Dst: struct ncclProxyState*::ncclNet::closeRecv
      Src: /src/nccl/src/transport/net.cc:1237,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:1241,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1198
    functionDepth: 2
    functionLinenumber: 1198
    functionLinenumberEnd: 1243
    functionName: recvProxyFree
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEmpty
    - ncclCudaHostFree
    - struct ncclProxyState*::ncclNet::closeRecv
    - ncclCuMemEnable
    - ncclParamNetSharedComms
    - sharedNetBuffersDestroy
    - ncclCudaFree
    - free
    - struct ncclProxyState*::ncclNet::deregMr
    - ncclIntruQueueDequeue
    - ncclGdrCudaFree
    - ncclP2pFreeShareableBuffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyFree(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/nccl/src/transport/net.cc:1254,1
    - Dst: ncclProfilerRecordProxyOpEventState
      Src: /src/nccl/src/transport/net.cc:1258,1
    - Dst: min
      Src: /src/nccl/src/transport/net.cc:1267,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:1277,1
    - Dst: ncclProfilerStartSendProxyStepEvent
      Src: /src/nccl/src/transport/net.cc:1280,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1286,1
    - Dst: sharedBuffersGet
      Src: /src/nccl/src/transport/net.cc:1286,1
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/transport/net.cc:1288,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/transport/net.cc:1293,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1297,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net.cc:1318,1
    - Dst: NCCL_LL_FLAG
      Src: /src/nccl/src/transport/net.cc:1326,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net.cc:1327,1
    - Dst: struct ncclProxySubArgs*::ringAlgo::getNextSendAddr
      Src: /src/nccl/src/transport/net.cc:1339,1
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1340,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1344,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net.cc:1349,1
    - Dst: setXferNetAttrs
      Src: /src/nccl/src/transport/net.cc:1351,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1352,1
    - Dst: struct ncclProxyState*::ncclNet::isend
      Src: /src/nccl/src/transport/net.cc:1352,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net.cc:1354,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1357,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1369,1
    - Dst: struct ncclProxyState*::ncclNet::test
      Src: /src/nccl/src/transport/net.cc:1369,1
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/transport/net.cc:1373,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net.cc:1374,1
    - Dst: ncclProfilerStopProxyStepEvent
      Src: /src/nccl/src/transport/net.cc:1376,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/transport/net.cc:1381,1
    - Dst: struct ncclProxySubArgs*::ringAlgo::decRefCount
      Src: /src/nccl/src/transport/net.cc:1386,1
    - Dst: ncclProfilerStopProxyOpEvent
      Src: /src/nccl/src/transport/net.cc:1394,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 114
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts:
    - condition: (sendSize == size)
      pos:
        line_end: 1339
        line_start: 1339
        source_file: /src/nccl/src/transport/net.cc
    constantsTouched: []
    func_position:
      end: 1400
      start: 1247
    functionDepth: 3
    functionLinenumber: 1247
    functionLinenumberEnd: 1400
    functionName: sendProxyProgress
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - assert
    - std::atomic_thread_fence
    - TRACE
    - NCCL_NET_MAP_GET_POINTER
    - ncclProfilerRecordProxyStepEventState
    - DIVUP
    - ncclProfilerStopProxyOpEvent
    - struct ncclProxySubArgs*::ringAlgo::getNextSendAddr
    - struct ncclProxySubArgs*::ringAlgo::decRefCount
    - setXferNetAttrs
    - struct ncclProxyState*::ncclNet::isend
    - ncclProfilerRecordProxyOpEventState
    - min
    - NCCL_LL_FLAG
    - ROUNDUP
    - sharedBuffersGet
    - ncclProfilerStartSendProxyStepEvent
    - NCCLCHECK
    - wc_store_fence
    - struct ncclProxyState*::ncclNet::test
    - ncclProfilerStopProxyStepEvent
    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:1423,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1424,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1425,1
    - Dst: ROUNDUP
      Src: /src/nccl/src/transport/net.cc:1433,1
    - Dst: ncclProfilerRecordProxyOpEventState
      Src: /src/nccl/src/transport/net.cc:1439,1
    - Dst: min
      Src: /src/nccl/src/transport/net.cc:1448,1
    - Dst: ncclProfilerStartRecvProxyStepEvent
      Src: /src/nccl/src/transport/net.cc:1462,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:1465,1
    - Dst: min
      Src: /src/nccl/src/transport/net.cc:1475,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1479,1
    - Dst: sharedBuffersGet
      Src: /src/nccl/src/transport/net.cc:1479,1
    - Dst: struct ncclProxySubArgs*::ringAlgo::getNextRecvAddr
      Src: /src/nccl/src/transport/net.cc:1487,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net.cc:1500,1
    - Dst: ncclParamNetOptionalRecvCompletion
      Src: /src/nccl/src/transport/net.cc:1508,1
    - Dst: setXferNetAttrs
      Src: /src/nccl/src/transport/net.cc:1510,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1512,1
    - Dst: struct ncclProxyState*::ncclNet::irecv
      Src: /src/nccl/src/transport/net.cc:1512,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net.cc:1519,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1521,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1538,1
    - Dst: struct ncclProxyState*::ncclNet::test
      Src: /src/nccl/src/transport/net.cc:1538,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1552,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net.cc:1567,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:1577,1
    - Dst: struct ncclProxySubArgs*::ringAlgo::getNextRecvAddr
      Src: /src/nccl/src/transport/net.cc:1583,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1593,1
    - Dst: struct ncclProxyState*::ncclNet::iflush
      Src: /src/nccl/src/transport/net.cc:1593,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1608,1
    - Dst: struct ncclProxyState*::ncclNet::test
      Src: /src/nccl/src/transport/net.cc:1608,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1615,1
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/transport/net.cc:1617,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/transport/net.cc:1621,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1645,1
    - Dst: struct ncclProxyState*::ncclNet::irecvConsumed
      Src: /src/nccl/src/transport/net.cc:1645,1
    - Dst: ncclProfilerStopProxyStepEvent
      Src: /src/nccl/src/transport/net.cc:1650,1
    - Dst: struct ncclProxySubArgs*::ringAlgo::decRefCount
      Src: /src/nccl/src/transport/net.cc:1654,1
    - Dst: ncclProfilerStopProxyOpEvent
      Src: /src/nccl/src/transport/net.cc:1665,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 202
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1402
    functionDepth: 3
    functionLinenumber: 1402
    functionLinenumberEnd: 1670
    functionName: recvProxyProgress
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - struct ncclProxyState*::ncclNet::irecvConsumed
    - std::atomic_thread_fence
    - WARN
    - ncclParamNetOptionalRecvCompletion
    - struct ncclProxySubArgs*::ringAlgo::getNextRecvAddr
    - TRACE
    - NCCL_NET_MAP_GET_POINTER
    - ncclProfilerRecordProxyStepEventState
    - DIVUP
    - ncclProfilerStopProxyOpEvent
    - struct ncclProxySubArgs*::ringAlgo::decRefCount
    - setXferNetAttrs
    - ncclProfilerRecordProxyOpEventState
    - ncclProfilerStartRecvProxyStepEvent
    - min
    - ROUNDUP
    - struct ncclProxyState*::ncclNet::iflush
    - sharedBuffersGet
    - NCCLCHECK
    - wc_store_fence
    - struct ncclProxyState*::ncclNet::test
    - ncclProfilerStopProxyStepEvent
    - struct ncclProxyState*::ncclNet::irecv
    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:1673,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/net.cc:1673,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:1674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - comm
    - proxyConn
    - handle
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1672
    functionDepth: 4
    functionLinenumber: 1672
    functionLinenumberEnd: 1676
    functionName: ncclNetDeregBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclProxyCallBlocking
    - 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:1701,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1707,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/net.cc:1707,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1711,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:1711,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:1718,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:1734,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 9
    argNames:
    - comm
    - userbuff
    - buffSize
    - peerConns
    - nPeers
    - regRecord
    - outRegBufFlag
    - outHandle
    - numSegments
    argTypes:
    - ncclComm*
    - void*
    - size_t
    - struct ncclConnector**
    - int
    - struct ncclReg*
    - int*
    - void**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1678
    functionDepth: 4
    functionLinenumber: 1678
    functionLinenumberEnd: 1736
    functionName: netRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 2
    functionsReached:
    - ncclCalloc
    - INFO
    - ncclProxyCallBlocking
    - NCCLCHECKGOTO
    - 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, int numSegments)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1747,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/net.cc:1747,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1748,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/transport/net.cc:1748,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1751,1
    - Dst: ncclCuMemGetAddressRange
      Src: /src/nccl/src/transport/net.cc:1751,1
    - Dst: ncclParamMultiSegmentRegister
      Src: /src/nccl/src/transport/net.cc:1752,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1753,1
    - Dst: netRegisterBuffer
      Src: /src/nccl/src/transport/net.cc:1753,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    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: 1762
      start: 1738
    functionDepth: 5
    functionLinenumber: 1738
    functionLinenumberEnd: 1762
    functionName: ncclNetLocalRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclRegLocalIsValid
    - ncclParamMultiSegmentRegister
    - netRegisterBuffer
    - ncclRegFind
    - NCCLCHECKGOTO
    - ncclCuMemGetAddressRange
    - NCCLCHECK
    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:1772,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/net.cc:1772,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1770
    functionDepth: 1
    functionLinenumber: 1770
    functionLinenumberEnd: 1775
    functionName: cleanupNet
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclCommGraphDeregister
    - free
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t cleanupNet(struct ncclComm* comm, struct ncclCommCallback*
      cb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1787,1
    - Dst: ncclCuMemGetAddressRange
      Src: /src/nccl/src/transport/net.cc:1787,1
    - Dst: ncclParamMultiSegmentRegister
      Src: /src/nccl/src/transport/net.cc:1788,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1789,1
    - Dst: ncclCommGraphRegister
      Src: /src/nccl/src/transport/net.cc:1789,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1790,1
    - Dst: netRegisterBuffer
      Src: /src/nccl/src/transport/net.cc:1790,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1792,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:1792,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/net.cc:1796,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1799,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/net.cc:1799,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    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: 1807
      start: 1777
    functionDepth: 5
    functionLinenumber: 1777
    functionLinenumberEnd: 1807
    functionName: ncclNetGraphRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclCommGraphRegister
    - ncclParamMultiSegmentRegister
    - ncclCalloc
    - netRegisterBuffer
    - NCCLCHECKGOTO
    - ncclCommGraphDeregister
    - ncclCuMemGetAddressRange
    - NCCLCHECK
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1818,1
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1819,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1825,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/net.cc:1825,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/net.cc:1825,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1826,1
    - Dst: struct ncclProxyState*::ncclNet::regMrDmaBuf
      Src: /src/nccl/src/transport/net.cc:1826,1
    - Dst: close
      Src: /src/nccl/src/transport/net.cc:1827,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:1835,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1838,1
    - Dst: struct ncclProxyState*::ncclNet::regMr
      Src: /src/nccl/src/transport/net.cc:1838,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1845,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:1845,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/net.cc:1847,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1849,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    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: 1817
        line_start: 1817
        source_file: /src/nccl/src/transport/net.cc
    - condition: (respSize == sizeof(void*))
      pos:
        line_end: 1818
        line_start: 1818
        source_file: /src/nccl/src/transport/net.cc
    constantsTouched: []
    func_position:
      end: 1855
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1855
    functionName: sendProxyRegBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - INFO
    - struct ncclProxyState*::ncclNet::regMr
    - ncclCalloc
    - close
    - memcpy
    - CUCHECKGOTO
    - getHandleForAddressRangeFlags
    - assert
    - cuMemGetHandleForAddressRange
    - NCCLCHECKGOTO
    - struct ncclProxyState*::ncclNet::regMrDmaBuf
    - NCCLCHECK
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1866,1
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1867,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1873,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/net.cc:1873,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/net.cc:1873,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1874,1
    - Dst: struct ncclProxyState*::ncclNet::regMrDmaBuf
      Src: /src/nccl/src/transport/net.cc:1874,1
    - Dst: close
      Src: /src/nccl/src/transport/net.cc:1875,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:1883,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1886,1
    - Dst: struct ncclProxyState*::ncclNet::regMr
      Src: /src/nccl/src/transport/net.cc:1886,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1893,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:1893,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/net.cc:1895,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1897,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    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: 1865
        line_start: 1865
        source_file: /src/nccl/src/transport/net.cc
    - condition: (respSize == sizeof(void*))
      pos:
        line_end: 1866
        line_start: 1866
        source_file: /src/nccl/src/transport/net.cc
    constantsTouched: []
    func_position:
      end: 1903
      start: 1857
    functionDepth: 1
    functionLinenumber: 1857
    functionLinenumberEnd: 1903
    functionName: recvProxyRegBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - INFO
    - struct ncclProxyState*::ncclNet::regMr
    - ncclCalloc
    - close
    - memcpy
    - CUCHECKGOTO
    - getHandleForAddressRangeFlags
    - assert
    - cuMemGetHandleForAddressRange
    - NCCLCHECKGOTO
    - struct ncclProxyState*::ncclNet::regMrDmaBuf
    - NCCLCHECK
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct proxyMemHandle*
    - struct proxyMemHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1905
    functionDepth: 0
    functionLinenumber: 1905
    functionLinenumberEnd: 1907
    functionName: netHandleCmp
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool netHandleCmp(struct proxyMemHandle* a, struct proxyMemHandle*
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1913,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1914,1
    - Dst: ncclIntruQueueDelete
      Src: /src/nccl/src/transport/net.cc:1919,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:1920,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1922,1
    - Dst: struct ncclProxyState*::ncclNet::deregMr
      Src: /src/nccl/src/transport/net.cc:1922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(void*))
      pos:
        line_end: 1912
        line_start: 1912
        source_file: /src/nccl/src/transport/net.cc
    constantsTouched: []
    func_position:
      end: 1925
      start: 1909
    functionDepth: 1
    functionLinenumber: 1909
    functionLinenumberEnd: 1925
    functionName: sendProxyDeregBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueDelete
    - memcpy
    - assert
    - free
    - struct ncclProxyState*::ncclNet::deregMr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyDeregBuffer(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, int* done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1931,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1932,1
    - Dst: ncclIntruQueueDelete
      Src: /src/nccl/src/transport/net.cc:1937,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:1938,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1940,1
    - Dst: struct ncclProxyState*::ncclNet::deregMr
      Src: /src/nccl/src/transport/net.cc:1940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(void*))
      pos:
        line_end: 1930
        line_start: 1930
        source_file: /src/nccl/src/transport/net.cc
    constantsTouched: []
    func_position:
      end: 1943
      start: 1927
    functionDepth: 1
    functionLinenumber: 1927
    functionLinenumberEnd: 1943
    functionName: recvProxyDeregBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueDelete
    - memcpy
    - assert
    - free
    - struct ncclProxyState*::ncclNet::deregMr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyDeregBuffer(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, int* done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/transport/p2p.cc:105,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/src/transport/p2p.cc:105,1
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/transport/p2p.cc:109,1
    - Dst: cudaDeviceGetPCIBusId
      Src: /src/nccl/src/transport/p2p.cc:109,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:113,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/transport/p2p.cc:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - busId
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: busIdToCudaDev
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - cudaGetDeviceCount
    - CUDASUCCESS
    - cudaDeviceGetPCIBusId
    - busIdToInt64
    - NCCLCHECK
    linkageType: ''
    returnType: int
    signature: int busIdToCudaDev(int64_t busId)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: initCeOperation
      Src: /src/nccl/src/transport/p2p.cc:130,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:134,1
    - Dst: ncclTopoCheckP2p
      Src: /src/nccl/src/transport/p2p.cc:134,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:143,1
    - Dst: ncclTopoCheckNet
      Src: /src/nccl/src/transport/p2p.cc:143,1
    - Dst: busIdToCudaDev
      Src: /src/nccl/src/transport/p2p.cc:156,1
    - Dst: busIdToCudaDev
      Src: /src/nccl/src/transport/p2p.cc:157,1
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/transport/p2p.cc:174,1
    - Dst: cudaDeviceCanAccessPeer
      Src: /src/nccl/src/transport/p2p.cc:174,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:175,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:182,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:192,1
    - Dst: ncclCudaMalloc
      Src: /src/nccl/src/transport/p2p.cc:192,1
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/transport/p2p.cc:193,1
    - Dst: cudaIpcGetMemHandle
      Src: /src/nccl/src/transport/p2p.cc:193,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:194,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:197,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:197,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:203,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 5
    argNames:
    - ret
    - comm
    - graph
    - info1
    - info2
    argTypes:
    - int*
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 209
    functionName: p2pCanConnect
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclCudaMalloc
    - busIdToCudaDev
    - INFO
    - cudaIpcGetMemHandle
    - ncclCuMemEnable
    - ncclTopoCheckNet
    - ncclTopoCheckP2p
    - ncclCudaFree
    - initCeOperation
    - CUDASUCCESS
    - cudaDeviceCanAccessPeer
    - 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: 217
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: TRACE_DUMP_IPC
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_DUMP_IPC(DEVIPC)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:220,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:226,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/transport/p2p.cc:226,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:227,1
    - Dst: ncclCudaMemset
      Src: /src/nccl/src/transport/p2p.cc:227,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:229,1
    - Dst: ncclDynMemMarkExportToPeer
      Src: /src/nccl/src/transport/p2p.cc:229,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:233,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:235,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:235,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:238,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:239,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/transport/p2p.cc:239,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:246,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/p2p.cc:246,1
    - Dst: cudaIpcGetMemHandle
      Src: /src/nccl/src/transport/p2p.cc:247,1
    - Dst: WARN
      Src: /src/nccl/src/transport/p2p.cc:249,1
    - Dst: cudaGetErrorString
      Src: /src/nccl/src/transport/p2p.cc:249,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:250,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:251,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 7
    argNames:
    - size
    - refcount
    - ipcDesc
    - ptr
    - peerRank
    - manager
    - memtype
    argTypes:
    - size_t
    - int
    - ncclIpcDesc*
    - void**
    - int
    - struct ncclMemManager*
    - ncclMemType_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 257
    functionName: ncclP2pAllocateShareableBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 3
    functionsReached:
    - ncclCudaMemset
    - INFO
    - cudaIpcGetMemHandle
    - cuMemExportToShareableHandle
    - ncclCuMemEnable
    - cuMemRetainAllocationHandle
    - memcpy
    - ncclCudaCalloc
    - ncclCudaFree
    - cudaGetErrorString
    - CUDACHECK
    - WARN
    - CUCHECK
    - ncclCuMemAlloc
    - ncclDynMemMarkExportToPeer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclP2pAllocateShareableBuffer(size_t size, int refcount,
      ncclIpcDesc *ipcDesc, void **ptr, int peerRank, struct ncclMemManager* manager,
      ncclMemType_t memtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ipcDesc
    argTypes:
    - ncclIpcDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 261
    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:264,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:278,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/transport/p2p.cc:278,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/p2p.cc:279,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:286,1
    - Dst: ncclProxyClientGetFdBlocking
      Src: /src/nccl/src/transport/p2p.cc:286,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:287,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:288,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:288,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/transport/p2p.cc:289,1
    - Dst: close
      Src: /src/nccl/src/transport/p2p.cc:289,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:291,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:291,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:293,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/p2p.cc:293,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:294,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/p2p.cc:294,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/p2p.cc:296,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:303,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/p2p.cc:303,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/p2p.cc:304,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:309,1
    - Dst: ncclMemTrackImportFromPeer
      Src: /src/nccl/src/transport/p2p.cc:309,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:316,1
    - Dst: cudaIpcOpenMemHandle
      Src: /src/nccl/src/transport/p2p.cc:316,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 7
    argNames:
    - comm
    - peer
    - size
    - ipcDesc
    - devMemPtr
    - ownerPtr
    - memType
    argTypes:
    - struct ncclComm*
    - int
    - size_t
    - ncclIpcDesc*
    - void**
    - void*
    - ncclMemType_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 322
    functionName: ncclP2pImportShareableBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 1
    functionsReached:
    - TRACE
    - INFO
    - cuMemGetAllocationGranularity
    - close
    - ncclCuMemEnable
    - ncclMemTrackImportFromPeer
    - ncclProxyClientGetFdBlocking
    - cuMemMap
    - cuMemAddressReserve
    - ALIGN_SIZE
    - cuMemSetAccess
    - CUDACHECK
    - SYSCHECK
    - cudaIpcOpenMemHandle
    - CUCHECK
    - cuMemImportFromShareableHandle
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclP2pImportShareableBuffer(struct ncclComm *comm, int
      peer, size_t size, ncclIpcDesc *ipcDesc, void **devMemPtr, void* ownerPtr, ncclMemType_t
      memType)
  - 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: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    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:334,1
    - Dst: ncclTopoCheckP2p
      Src: /src/nccl/src/transport/p2p.cc:334,1
    - Dst: ncclParamP2pReadEnable
      Src: /src/nccl/src/transport/p2p.cc:336,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: 339
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 339
    functionName: p2pGetInfo
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclTopoCheckP2p
    - ncclParamP2pReadEnable
    - 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:342,1
    - Dst: cudaDeviceEnablePeerAccess
      Src: /src/nccl/src/transport/p2p.cc:346,1
    - Dst: cudaGetLastError
      Src: /src/nccl/src/transport/p2p.cc:348,1
    - Dst: WARN
      Src: /src/nccl/src/transport/p2p.cc:350,1
    - Dst: cudaGetErrorString
      Src: /src/nccl/src/transport/p2p.cc:351,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:354,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:357,1
    - Dst: ncclCuMemAllocAddr
      Src: /src/nccl/src/transport/p2p.cc:357,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:358,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/p2p.cc:358,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:363,1
    - Dst: ncclMemTrackImportFromPeer
      Src: /src/nccl/src/transport/p2p.cc:363,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:377,1
    - Dst: ncclP2pImportShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    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: 381
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 381
    functionName: p2pMap
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - P2P_SAME_PID
    - cudaGetLastError
    - ncclCuMemAllocAddr
    - ncclCuMemEnable
    - ncclMemTrackImportFromPeer
    - cudaGetErrorString
    - ncclP2pImportShareableBuffer
    - cudaDeviceEnablePeerAccess
    - cuMemRelease
    - CUCHECK
    - WARN
    - 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:388,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:388,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:391,1
    - Dst: p2pGetInfo
      Src: /src/nccl/src/transport/p2p.cc:391,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/p2p.cc:404,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:408,1
    - Dst: ncclParamP2pDirectDisable
      Src: /src/nccl/src/transport/p2p.cc:408,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:410,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:414,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:417,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:422,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:430,1
    - Dst: memset
      Src: /src/nccl/src/transport/p2p.cc:435,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:439,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:440,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:441,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/p2p.cc:441,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:443,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:443,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:444,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:446,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:446,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:447,1
    - Dst: p2pMap
      Src: /src/nccl/src/transport/p2p.cc:447,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:448,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    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: 452
      start: 384
    functionDepth: 5
    functionLinenumber: 384
    functionLinenumberEnd: 452
    functionName: p2pSendSetup
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - P2P_SAME_PID
    - INFO
    - p2pGetInfo
    - ncclCuMemEnable
    - ncclParamP2pDirectDisable
    - ncclProxyCallBlocking
    - memcpy
    - p2pMap
    - memset
    - ALIGN_SIZE
    - ncclProxyConnect
    - NCCLCHECK
    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:459,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:459,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:462,1
    - Dst: p2pGetInfo
      Src: /src/nccl/src/transport/p2p.cc:462,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/p2p.cc:473,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:477,1
    - Dst: ncclParamP2pDirectDisable
      Src: /src/nccl/src/transport/p2p.cc:477,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:480,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/p2p.cc:483,1
    - Dst: memset
      Src: /src/nccl/src/transport/p2p.cc:496,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:500,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:501,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:502,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/p2p.cc:502,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:503,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:503,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:505,1
    - Dst: p2pMap
      Src: /src/nccl/src/transport/p2p.cc:505,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:506,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    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: 508
      start: 455
    functionDepth: 5
    functionLinenumber: 455
    functionLinenumberEnd: 508
    functionName: p2pRecvSetup
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclCalloc
    - P2P_SAME_PID
    - p2pGetInfo
    - ncclCuMemEnable
    - ncclParamP2pDirectDisable
    - ncclProxyCallBlocking
    - p2pMap
    - memset
    - ALIGN_SIZE
    - ncclProxyConnect
    - NCCLCHECK
    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:516,1
    - Dst: p2pMap
      Src: /src/nccl/src/transport/p2p.cc:516,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:517,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:537,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:537,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: 548
      start: 511
    functionDepth: 5
    functionLinenumber: 511
    functionLinenumberEnd: 548
    functionName: p2pSendConnect
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - p2pMap
    - P2P_SAME_PID
    - ncclProxyCallBlocking
    - NCCLCHECK
    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:559,1
    - Dst: ncclShmImportShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:559,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:564,1
    - Dst: p2pMap
      Src: /src/nccl/src/transport/p2p.cc:564,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:565,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: 587
      start: 551
    functionDepth: 5
    functionLinenumber: 551
    functionLinenumberEnd: 587
    functionName: p2pRecvConnect
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclShmImportShareableBuffer
    - P2P_SAME_PID
    - p2pMap
    - NCCLCHECK
    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:592,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:596,1
    - Dst: ncclCuMemFreeAddr
      Src: /src/nccl/src/transport/p2p.cc:596,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:598,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:598,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:604,1
    - Dst: ncclCuMemFreeAddr
      Src: /src/nccl/src/transport/p2p.cc:604,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:606,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:606,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:611,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/p2p.cc:611,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:612,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/p2p.cc:612,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - comm
    - send
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 617
    functionName: p2pSendFree
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - cudaIpcCloseMemHandle
    - ncclCuMemEnable
    - ncclCudaFree
    - free
    - CUDACHECK
    - ncclCuMemFreeAddr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pSendFree(struct ncclComm* comm, struct ncclConnector*
      send)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:622,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:626,1
    - Dst: ncclCuMemFreeAddr
      Src: /src/nccl/src/transport/p2p.cc:626,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:628,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:628,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:634,1
    - Dst: ncclCuMemFreeAddr
      Src: /src/nccl/src/transport/p2p.cc:634,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:636,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:636,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:641,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/p2p.cc:641,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:642,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/p2p.cc:642,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:644,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/p2p.cc:644,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:647,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - comm
    - recv
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 650
    functionName: p2pRecvFree
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclShmIpcClose
    - cudaIpcCloseMemHandle
    - ncclCuMemEnable
    - ncclCudaFree
    - free
    - CUDACHECK
    - ncclCuMemFreeAddr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pRecvFree(struct ncclComm* comm, struct ncclConnector*
      recv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:659,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:659,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:662,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/p2p.cc:662,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:666,1
    - Dst: ncclShmAllocateShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:666,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:668,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/p2p.cc:668,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:669,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:676,1
    - Dst: ncclP2pAllocateShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:676,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:678,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:681,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:681,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:682,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: 690
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 690
    functionName: p2pSendProxySetup
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclP2pAllocateShareableBuffer
    - ncclCalloc
    - NCCLCHECK
    - ncclCudaCalloc
    - ncclCuMemEnable
    - memcpy
    - ncclShmAllocateShareableBuffer
    - ncclCudaHostCalloc
    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:698,1
    - Dst: ncclP2pAllocateShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:698,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:700,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:703,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:703,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:704,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: 711
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 711
    functionName: p2pRecvProxySetup
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclP2pAllocateShareableBuffer
    - ncclCalloc
    - ncclCuMemEnable
    - memcpy
    - 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:719,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/transport/p2p.cc:719,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:721,1
    - Dst: cudaEventCreate
      Src: /src/nccl/src/transport/p2p.cc:721,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: 725
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 725
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:729,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/p2p.cc:729,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:732,1
    - Dst: ncclCuMemFreeAddr
      Src: /src/nccl/src/transport/p2p.cc:732,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:734,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - connection
    - proxyState
    - ipcInfo
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - struct ncclIpcImpInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 738
    functionName: p2pDeregisterMemHandle
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - cudaIpcCloseMemHandle
    - ncclCudaFree
    - CUDACHECK
    - ncclCuMemFreeAddr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pDeregisterMemHandle(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, struct ncclIpcImpInfo* ipcInfo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/transport/p2p.cc:741,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/transport/p2p.cc:742,1
    - Dst: p2pDeregisterMemHandle
      Src: /src/nccl/src/transport/p2p.cc:743,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:744,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:745,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:752,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/p2p.cc:752,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:753,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/p2p.cc:753,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:754,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:754,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:755,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/transport/p2p.cc:755,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:757,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/transport/p2p.cc:757,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:759,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:762,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:767,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:768,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:769,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:773,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 777
    functionName: p2pSendProxyFree
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclShmIpcClose
    - cudaStreamDestroy
    - cudaEventDestroy
    - ncclIntruQueueEmpty
    - ncclCudaHostFree
    - ncclCuMemEnable
    - ncclCudaFree
    - free
    - ncclIntruQueueDequeue
    - CUDACHECK
    - p2pDeregisterMemHandle
    - ncclP2pFreeShareableBuffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pSendProxyFree(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/transport/p2p.cc:780,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/transport/p2p.cc:781,1
    - Dst: p2pDeregisterMemHandle
      Src: /src/nccl/src/transport/p2p.cc:782,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:783,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:784,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:787,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:791,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:792,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:793,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 800
    functionName: p2pRecvProxyFree
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEmpty
    - ncclCuMemEnable
    - ncclCudaFree
    - free
    - ncclIntruQueueDequeue
    - p2pDeregisterMemHandle
    - ncclP2pFreeShareableBuffer
    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:809,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:833,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/p2p.cc:833,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:834,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/transport/p2p.cc:834,1
    - Dst: CUDACLEARERROR
      Src: /src/nccl/src/transport/p2p.cc:840,1
    - Dst: cudaEventQuery
      Src: /src/nccl/src/transport/p2p.cc:840,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:841,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 858
    functionName: p2pSendProxyProgress
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - cudaEventQuery
    - cudaMemcpyAsync
    - ROUNDUP
    - cudaEventRecord
    - CUDACLEARERROR
    - CUDACHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pSendProxyProgress(struct ncclProxyState* proxyState,
      struct ncclProxyArgs* args)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:874,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:874,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:876,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:876,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:881,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:881,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:887,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/transport/p2p.cc:887,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:889,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/transport/p2p.cc:889,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:894,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/transport/p2p.cc:894,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:897,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/transport/p2p.cc:897,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:899,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/transport/p2p.cc:899,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:903,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:908,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:911,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:911,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:913,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:913,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:922,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:922,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:923,1
    - Dst: ncclProxyClientBatchQueryFdBlocking
      Src: /src/nccl/src/transport/p2p.cc:923,1
    - Dst: close
      Src: /src/nccl/src/transport/p2p.cc:930,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:934,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/p2p.cc:934,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/p2p.cc:937,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:940,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:941,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:942,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:946,1
    - Dst: close
      Src: /src/nccl/src/transport/p2p.cc:952,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/transport/p2p.cc:956,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/p2p.cc:956,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 83
    argCount: 7
    argNames:
    - userBuff
    - userBuffSize
    - comm
    - proxyConn
    - totalMappedBufferSize
    - numSegments
    - ipcInfos
    argTypes:
    - CUdeviceptr
    - size_t
    - ncclComm*
    - struct ncclProxyConnector*
    - size_t*
    - int*
    - struct p2pIpcExpInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 860
    functionDepth: 3
    functionLinenumber: 860
    functionLinenumberEnd: 959
    functionName: ipcHandleMultiSegmentRegistration
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclCalloc
    - INFO
    - close
    - cuMemRetainAllocationHandle
    - CUCHECKIGNORE
    - memcpy
    - CUCHECKGOTO
    - ncclProxyClientBatchQueryFdBlocking
    - cuMemGetAddressRange
    - free
    - NCCLCHECKGOTO
    - ncclRealloc
    - cuMemRelease
    - cuMemExportToShareableHandle
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ipcHandleMultiSegmentRegistration(CUdeviceptr userBuff,
      size_t userBuffSize, ncclComm* comm, struct ncclProxyConnector* proxyConn, size_t*
      totalMappedBufferSize, int* numSegments, struct p2pIpcExpInfo** ipcInfos)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:986,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/transport/p2p.cc:986,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:998,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1006,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/transport/p2p.cc:1006,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1007,1
    - Dst: cuPointerGetAttribute
      Src: /src/nccl/src/transport/p2p.cc:1007,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:1011,1
    - Dst: ncclParamMultiSegmentRegister
      Src: /src/nccl/src/transport/p2p.cc:1011,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1014,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:1014,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1019,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/p2p.cc:1019,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:1024,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1026,1
    - Dst: ipcHandleMultiSegmentRegistration
      Src: /src/nccl/src/transport/p2p.cc:1026,1
    - Dst: CUPFN
      Src: /src/nccl/src/transport/p2p.cc:1029,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/transport/p2p.cc:1029,1
    - Dst: ncclParamLegacyCudaRegister
      Src: /src/nccl/src/transport/p2p.cc:1031,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1032,1
    - Dst: cudaIpcGetMemHandle
      Src: /src/nccl/src/transport/p2p.cc:1032,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:1040,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1044,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:1044,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1045,1
    - Dst: ncclProxyClientQueryFdBlocking
      Src: /src/nccl/src/transport/p2p.cc:1045,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1046,1
    - Dst: close
      Src: /src/nccl/src/transport/p2p.cc:1046,1
    - Dst: CUPFN
      Src: /src/nccl/src/transport/p2p.cc:1049,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:1049,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1050,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/p2p.cc:1050,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1055,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/p2p.cc:1055,1
    - Dst: ncclParamLegacyCudaRegister
      Src: /src/nccl/src/transport/p2p.cc:1060,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1061,1
    - Dst: cudaIpcGetMemHandle
      Src: /src/nccl/src/transport/p2p.cc:1061,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:1077,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1078,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:1078,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1081,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:1081,1
    - Dst: assert
      Src: /src/nccl/src/transport/p2p.cc:1082,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1093,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:1093,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:1098,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1106,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/p2p.cc:1106,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/p2p.cc:1106,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1107,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/p2p.cc:1107,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/p2p.cc:1107,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1109,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/transport/p2p.cc:1109,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1110,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/transport/p2p.cc:1110,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1111,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/transport/p2p.cc:1111,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1112,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/p2p.cc:1112,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/p2p.cc:1112,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1113,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/p2p.cc:1113,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/p2p.cc:1113,1
    - Dst: assert
      Src: /src/nccl/src/transport/p2p.cc:1119,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:1128,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:1134,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:1135,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 147
    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: (regRecord->ipcInfos[peerIndex] == NULL)
      pos:
        line_end: 1081
        line_start: 1081
        source_file: /src/nccl/src/transport/p2p.cc
    - condition: (nPeers == 1)
      pos:
        line_end: 1118
        line_start: 1118
        source_file: /src/nccl/src/transport/p2p.cc
    constantsTouched: []
    func_position:
      end: 1137
      start: 962
    functionDepth: 4
    functionLinenumber: 962
    functionLinenumberEnd: 1137
    functionName: ipcRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - CUPFN
    - ncclCudaGraphNone
    - ncclStrongStreamAcquire
    - memcpy
    - assert
    - NCCLCHECKGOTO
    - ncclRealloc
    - cuMemRelease
    - ncclParamMultiSegmentRegister
    - ncclCalloc
    - ncclStreamWaitStream
    - ncclCuMemEnable
    - cuMemRetainAllocationHandle
    - CUCHECKGOTO
    - cuPointerGetAttribute
    - free
    - ncclParamLegacyCudaRegister
    - ncclStrongStreamRelease
    - cuMemExportToShareableHandle
    - INFO
    - cudaIpcGetMemHandle
    - close
    - CUDACHECKGOTO
    - SYSCHECKGOTO
    - ncclProxyClientQueryFdBlocking
    - ncclProxyCallBlocking
    - ncclCudaCallocAsync
    - cuMemGetAddressRange
    - ncclCudaMemcpyAsync
    - ipcHandleMultiSegmentRegistration
    - ncclProxyConnect
    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:1147,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/p2p.cc:1147,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1148,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/transport/p2p.cc:1148,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1150,1
    - Dst: ipcRegisterBuffer
      Src: /src/nccl/src/transport/p2p.cc:1150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    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: 1161
      start: 1139
    functionDepth: 5
    functionLinenumber: 1139
    functionLinenumberEnd: 1161
    functionName: ncclIpcLocalRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ipcRegisterBuffer
    - ncclRegFind
    - NCCLCHECKGOTO
    - 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:1171,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/p2p.cc:1171,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1174
    functionName: cleanupIpc
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclCommGraphDeregister
    - free
    - NCCLCHECK
    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:1180,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1188,1
    - Dst: ncclCuMemGetAddressRange
      Src: /src/nccl/src/transport/p2p.cc:1188,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1189,1
    - Dst: ncclCommGraphRegister
      Src: /src/nccl/src/transport/p2p.cc:1189,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1190,1
    - Dst: ipcRegisterBuffer
      Src: /src/nccl/src/transport/p2p.cc:1190,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1193,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:1193,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/p2p.cc:1198,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/p2p.cc:1200,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1204,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/p2p.cc:1204,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: 1216
      start: 1176
    functionDepth: 5
    functionLinenumber: 1176
    functionLinenumberEnd: 1216
    functionName: ncclIpcGraphRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclCommGraphRegister
    - ncclCalloc
    - ipcRegisterBuffer
    - reinterpret_cast<struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*>
    - NCCLCHECKGOTO
    - ncclCommGraphDeregister
    - ncclCuMemGetAddressRange
    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:1219,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:1219,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - regInfo
    argTypes:
    - struct ncclComm*
    - struct ncclIpcRegInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1218
    functionDepth: 4
    functionLinenumber: 1218
    functionLinenumberEnd: 1222
    functionName: ncclIpcDeregBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclProxyCallBlocking
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcDeregBuffer(struct ncclComm* comm, struct ncclIpcRegInfo*
      regInfo)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/p2p.cc:1228,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1234,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:1234,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1235,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:1235,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1236,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:1236,1
    - Dst: assert
      Src: /src/nccl/src/transport/p2p.cc:1240,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:1242,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1249,1
    - Dst: cudaIpcOpenMemHandle
      Src: /src/nccl/src/transport/p2p.cc:1249,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1252,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/p2p.cc:1252,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:1258,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1261,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:1261,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1262,1
    - Dst: close
      Src: /src/nccl/src/transport/p2p.cc:1262,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1264,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:1264,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1268,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/p2p.cc:1268,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1277,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/p2p.cc:1277,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:1280,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:1286,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:1286,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:1287,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:1287,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/p2p.cc:1293,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:1295,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:1297,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:1298,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:1299,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/transport/p2p.cc:1306,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/p2p.cc:1306,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/transport/p2p.cc:1309,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/p2p.cc:1309,1
    - Dst: CUCHECKIGNORE
      Src: /src/nccl/src/transport/p2p.cc:1312,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/p2p.cc:1312,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 73
    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 p2pIpcExpInfo) == 0)
      pos:
        line_end: 1227
        line_start: 1227
        source_file: /src/nccl/src/transport/p2p.cc
    - condition: (sizeof(void*) == respSize)
      pos:
        line_end: 1239
        line_start: 1239
        source_file: /src/nccl/src/transport/p2p.cc
    constantsTouched: []
    func_position:
      end: 1316
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1316
    functionName: p2pProxyRegister
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - NCCLCHECKGOTO
    - cuMemSetAccess
    - cuMemUnmap
    - cuMemRelease
    - cudaIpcOpenMemHandle
    - ncclIntruQueueEnqueue
    - ncclCalloc
    - CUCHECKGOTO
    - free
    - INFO
    - cuMemAddressFree
    - close
    - cuMemAddressReserve
    - CUDACHECKGOTO
    - SYSCHECKGOTO
    - cuMemImportFromShareableHandle
    - NCCLCHECK
    - CUCHECKIGNORE
    - cuMemMap
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct proxyMemHandle*
    - struct proxyMemHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1322
    functionName: p2pHandleCmp
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool p2pHandleCmp(struct proxyMemHandle* a, struct proxyMemHandle*
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/p2p.cc:1327,1
    - Dst: ncclIntruQueueDelete
      Src: /src/nccl/src/transport/p2p.cc:1332,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:1333,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:1334,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1336,1
    - Dst: p2pDeregisterMemHandle
      Src: /src/nccl/src/transport/p2p.cc:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    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: 1326
        line_start: 1326
        source_file: /src/nccl/src/transport/p2p.cc
    constantsTouched: []
    func_position:
      end: 1343
      start: 1324
    functionDepth: 2
    functionLinenumber: 1324
    functionLinenumberEnd: 1343
    functionName: p2pProxyDeregister
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueDelete
    - assert
    - free
    - NCCLCHECKGOTO
    - p2pDeregisterMemHandle
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pProxyDeregister(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, int* done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamP2pUseCudaMemcpy
      Src: /src/nccl/src/transport/p2p.cc:1355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1362
    functionName: initCeOperation
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 1
    functionsReached:
    - ncclParamP2pUseCudaMemcpy
    linkageType: ''
    returnType: void
    signature: void initCeOperation()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initCeOperation
      Src: /src/nccl/src/transport/p2p.cc:1366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1368
    functionName: ncclP2pUsesMemcpy
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - initCeOperation
    linkageType: ''
    returnType: bool
    signature: bool ncclP2pUsesMemcpy()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: initCeOperation
      Src: /src/nccl/src/transport/shm.cc:79,1
    - Dst: ncclParamShmDisable
      Src: /src/nccl/src/transport/shm.cc:81,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:84,1
    - Dst: ncclTopoCheckNet
      Src: /src/nccl/src/transport/shm.cc:84,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/shm.cc:88,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/shm.cc:92,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: 98
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 98
    functionName: shmCanConnect
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclTopoCheckNet
    - ncclParamShmDisable
    - initCeOperation
    - NCCLCHECK
    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:111,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/shm.cc:111,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:123,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/shm.cc:123,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:124,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/shm.cc:124,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:130,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: 132
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: shmSendSetup
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclCalloc
    - ncclProxyCallBlocking
    - ncclProxyConnect
    - 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:140,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/shm.cc:140,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:154,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/shm.cc:154,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:155,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/shm.cc:155,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: 162
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 162
    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:171,1
    - Dst: ncclShmImportShareableBuffer
      Src: /src/nccl/src/transport/shm.cc:171,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:187,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/shm.cc:187,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: 197
      start: 165
    functionDepth: 4
    functionLinenumber: 165
    functionLinenumberEnd: 197
    functionName: shmSendConnect
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclShmImportShareableBuffer
    - ncclProxyCallBlocking
    - 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:205,1
    - Dst: ncclShmImportShareableBuffer
      Src: /src/nccl/src/transport/shm.cc:205,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:218,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/shm.cc:218,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: 227
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 227
    functionName: shmRecvConnect
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclShmImportShareableBuffer
    - ncclProxyCallBlocking
    - 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:232,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/shm.cc:232,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - send
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: shmSendFree
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclShmIpcClose
    - free
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmSendFree(struct ncclComm* comm, struct ncclConnector*
      send)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:242,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/shm.cc:242,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - recv
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: shmRecvFree
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclShmIpcClose
    - free
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmRecvFree(struct ncclComm* comm, struct ncclConnector*
      recv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:259,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/shm.cc:259,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:260,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/shm.cc:260,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:261,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/transport/shm.cc:261,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:263,1
    - Dst: cudaEventCreate
      Src: /src/nccl/src/transport/shm.cc:263,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:268,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/shm.cc:273,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/shm.cc:274,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:275,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: 277
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 277
    functionName: shmSendProxyConnect
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclCudaHostFree
    - ncclCudaCalloc
    - memcpy
    - ncclCudaFree
    - cudaStreamCreateWithFlags
    - free
    - NCCLCHECKGOTO
    - cudaEventCreate
    - CUDACHECKGOTO
    - ncclCudaHostCalloc
    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:289,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/shm.cc:289,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:290,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/shm.cc:290,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:291,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/transport/shm.cc:291,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:293,1
    - Dst: cudaEventCreate
      Src: /src/nccl/src/transport/shm.cc:293,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:296,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/shm.cc:301,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/shm.cc:302,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:303,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: 305
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 305
    functionName: shmRecvProxyConnect
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclCudaHostFree
    - ncclCudaCalloc
    - memcpy
    - ncclCudaFree
    - cudaStreamCreateWithFlags
    - free
    - NCCLCHECKGOTO
    - cudaEventCreate
    - CUDACHECKGOTO
    - ncclCudaHostCalloc
    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:312,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/transport/shm.cc:312,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:313,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/shm.cc:313,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:314,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/shm.cc:314,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:316,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/transport/shm.cc:316,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:319,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/shm.cc:319,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 324
    functionName: shmSendProxyFree
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - cudaStreamDestroy
    - ncclShmIpcClose
    - cudaEventDestroy
    - ncclCudaHostFree
    - ncclCudaFree
    - free
    - CUDACHECK
    - 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:331,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/transport/shm.cc:331,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:332,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/shm.cc:332,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:333,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/shm.cc:333,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:335,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/transport/shm.cc:335,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:338,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/shm.cc:338,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: shmRecvProxyFree
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - cudaStreamDestroy
    - ncclShmIpcClose
    - cudaEventDestroy
    - ncclCudaHostFree
    - ncclCudaFree
    - free
    - CUDACHECK
    - 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:351,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:375,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/shm.cc:375,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:376,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/transport/shm.cc:376,1
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/transport/shm.cc:378,1
    - Dst: CUDACLEARERROR
      Src: /src/nccl/src/transport/shm.cc:384,1
    - Dst: cudaEventQuery
      Src: /src/nccl/src/transport/shm.cc:384,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:385,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 402
    functionName: shmSendProxyProgress
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - cudaEventQuery
    - cudaMemcpyAsync
    - ROUNDUP
    - cudaEventRecord
    - CUDACLEARERROR
    - CUDACHECK
    - std::atomic_thread_fence
    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:410,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:434,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/shm.cc:434,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:435,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/transport/shm.cc:435,1
    - Dst: CUDACLEARERROR
      Src: /src/nccl/src/transport/shm.cc:441,1
    - Dst: cudaEventQuery
      Src: /src/nccl/src/transport/shm.cc:441,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:442,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 459
    functionName: shmRecvProxyProgress
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - cudaEventQuery
    - cudaMemcpyAsync
    - ROUNDUP
    - cudaEventRecord
    - CUDACLEARERROR
    - CUDACHECK
    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:471,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/shm.cc:471,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:472,1
    - Dst: ncclShmAllocateShareableBuffer
      Src: /src/nccl/src/transport/shm.cc:472,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:473,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:478,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: 480
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 480
    functionName: shmSendProxySetup
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - memcpy
    - free
    - NCCLCHECKGOTO
    - 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:492,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/shm.cc:492,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:493,1
    - Dst: ncclShmAllocateShareableBuffer
      Src: /src/nccl/src/transport/shm.cc:493,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:494,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:499,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: 501
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 501
    functionName: shmRecvProxySetup
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - memcpy
    - free
    - NCCLCHECKGOTO
    - 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:506,1
    - Dst: ncclParamShmMemcpyMode
      Src: /src/nccl/src/transport/shm.cc:506,1
    - Dst: ncclParamShmUseCudaMemcpy
      Src: /src/nccl/src/transport/shm.cc:507,1
    - Dst: ncclParamShmMemcpyMode
      Src: /src/nccl/src/transport/shm.cc:507,1
    - Dst: ncclParamShmLocality
      Src: /src/nccl/src/transport/shm.cc:516,1
    - Dst: WARN
      Src: /src/nccl/src/transport/shm.cc:518,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 523
    functionName: initCeOperation
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 3
    functionsReached:
    - ncclParamShmMemcpyMode
    - WARN
    - ncclParamShmUseCudaMemcpy
    - ncclParamShmLocality
    linkageType: ''
    returnType: void
    signature: void initCeOperation()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/shm.cc:527,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/shm.cc:531,1
    - Dst: ncclCuMemHostEnable
      Src: /src/nccl/src/transport/shm.cc:531,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:536,1
    - Dst: ncclCuMemHostAlloc
      Src: /src/nccl/src/transport/shm.cc:536,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:539,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:541,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/shm.cc:541,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:547,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:551,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/shm.cc:551,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:557,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:559,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:564,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/shm.cc:564,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:570,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:572,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: 575
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 575
    functionName: ncclShmAllocateShareableBuffer
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 4
    functionsReached:
    - ncclCuMemHostAlloc
    - INFO
    - cuMemExportToShareableHandle
    - ncclCuMemEnable
    - memcpy
    - CUCHECK
    - WARN
    - ncclShmOpen
    - ncclCuMemHostEnable
    - 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:579,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/shm.cc:583,1
    - Dst: ncclCuMemHostEnable
      Src: /src/nccl/src/transport/shm.cc:583,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:601,1
    - Dst: ncclProxyClientGetFdBlocking
      Src: /src/nccl/src/transport/shm.cc:601,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:602,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/shm.cc:602,1
    - Dst: close
      Src: /src/nccl/src/transport/shm.cc:603,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:605,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/shm.cc:605,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:609,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/shm.cc:609,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:610,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/transport/shm.cc:610,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:611,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/transport/shm.cc:611,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:619,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/transport/shm.cc:619,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/shm.cc:621,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:624,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/shm.cc:624,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:625,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/shm.cc:625,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:631,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/shm.cc:631,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:637,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/shm.cc:637,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:642,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/shm.cc:646,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/shm.cc:648,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:650,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/shm.cc:650,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:652,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/shm.cc:657,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/shm.cc:659,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:661,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/shm.cc:661,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:663,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 6
    argNames:
    - comm
    - proxyRank
    - desc
    - hptr
    - dptr
    - descOut
    argTypes:
    - struct ncclComm*
    - int
    - ncclShmIpcDesc_t*
    - void**
    - void**
    - ncclShmIpcDesc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 666
    functionName: ncclShmImportShareableBuffer
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 4
    functionsReached:
    - cuDeviceGetAttribute
    - cuDeviceGet
    - cuMemSetAccess
    - CUDACHECK
    - WARN
    - cuMemGetAllocationGranularity
    - ncclCuMemEnable
    - CUCHECK
    - ncclShmOpen
    - INFO
    - close
    - cuMemAddressReserve
    - cuMemImportFromShareableHandle
    - NCCLCHECK
    - cudaGetDevice
    - ncclProxyClientGetFdBlocking
    - cuMemMap
    - ALIGN_SIZE
    - snprintf
    - ncclCuMemHostEnable
    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:671,1
    - Dst: ncclCuMemHostEnable
      Src: /src/nccl/src/transport/shm.cc:671,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:672,1
    - Dst: ncclCuMemHostFree
      Src: /src/nccl/src/transport/shm.cc:672,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:674,1
    - Dst: ncclShmClose
      Src: /src/nccl/src/transport/shm.cc:674,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:677,1
    - Dst: ncclShmClose
      Src: /src/nccl/src/transport/shm.cc:677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - desc
    argTypes:
    - ncclShmIpcDesc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 682
    functionName: ncclShmIpcClose
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 8
    functionsReached:
    - ncclCuMemEnable
    - ncclCuMemHostFree
    - ncclShmClose
    - ncclCuMemHostEnable
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShmIpcClose(ncclShmIpcDesc_t *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbCommBaseGetQpByIndex
      Src: /src/nccl/src/transport/net_ib/p2p.h:24,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - recvComm
    - id
    - qp
    argTypes:
    - struct ncclIbRecvComm*
    - uint32_t
    - ncclIbQp**
    assertStmts:
    - condition: (*qp != NULL)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/nccl/src/transport/net_ib/p2p.h
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: ncclIbRecvCommGetQpForCts
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.h
    functionUses: 0
    functionsReached:
    - ncclIbCommBaseGetQpByIndex
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRecvCommGetQpForCts(struct ncclIbRecvComm* recvComm,
      uint32_t id, ncclIbQp** qp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.h:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - reqs
    - reqIndex
    - req
    argTypes:
    - ncclIbRequest*
    - uint32_t
    - ncclIbRequest**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: ncclIbRequestRetrieveAsIndex
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.h
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRequestRetrieveAsIndex(ncclIbRequest* reqs, uint32_t
      reqIndex, ncclIbRequest** req)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/nccl/src/transport/net_ib/reg.cc:12,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/reg.cc:21,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/transport/net_ib/reg.cc:21,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/reg.cc:31,1
    - Dst: wrap_ibv_reg_dmabuf_mr
      Src: /src/nccl/src/transport/net_ib/reg.cc:31,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/reg.cc:33,1
    - Dst: wrap_mlx5dv_reg_dmabuf_mr
      Src: /src/nccl/src/transport/net_ib/reg.cc:33,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/reg.cc:38,1
    - Dst: wrap_ibv_reg_mr_iova2
      Src: /src/nccl/src/transport/net_ib/reg.cc:38,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/reg.cc:41,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib/reg.cc:41,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/reg.cc:44,1
    - Dst: memmove
      Src: /src/nccl/src/transport/net_ib/reg.cc:45,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 8
    argNames:
    - base
    - data
    - size
    - type
    - offset
    - fd
    - mrFlags
    - mhandle
    argTypes:
    - ncclIbNetCommDevBase*
    - void*
    - size_t
    - int
    - uint64_t
    - int
    - uint64_t
    - ibv_mr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 61
    functionName: ncclIbRegMrDmaBufInternal2
    functionSourceFile: /src/nccl/src/transport/net_ib/reg.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - wrap_ibv_reg_mr_iova2
    - sysconf
    - memmove
    - wrap_ibv_reg_dmabuf_mr
    - ncclRealloc
    - wrap_ibv_reg_mr
    - wrap_mlx5dv_reg_dmabuf_mr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRegMrDmaBufInternal2(ncclIbNetCommDevBase* base,
      void* data, size_t size, int type, uint64_t offset, int fd, uint64_t mrFlags,
      ibv_mr** mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/reg.cc:66,1
    - Dst: malloc
      Src: /src/nccl/src/transport/net_ib/reg.cc:68,1
    - Dst: ncclIbGetNetCommDevBase
      Src: /src/nccl/src/transport/net_ib/reg.cc:71,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/reg.cc:72,1
    - Dst: ncclIbRegMrDmaBufInternal2
      Src: /src/nccl/src/transport/net_ib/reg.cc:72,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/reg.cc:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 8
    argNames:
    - comm
    - data
    - size
    - type
    - offset
    - fd
    - mrFlags
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - int
    - uint64_t
    - void**
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/nccl/src/transport/net_ib/reg.cc
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: ncclIbRegMrDmaBufInternal
    functionSourceFile: /src/nccl/src/transport/net_ib/reg.cc
    functionUses: 0
    functionsReached:
    - ncclIbGetNetCommDevBase
    - ncclIbRegMrDmaBufInternal2
    - assert
    - free
    - NCCLCHECKGOTO
    - malloc
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRegMrDmaBufInternal(void* comm, void* data, size_t
      size, int type, uint64_t offset, int fd, uint64_t mrFlags, void** mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbRegMrDmaBufInternal
      Src: /src/nccl/src/transport/net_ib/reg.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - comm
    - data
    - size
    - type
    - offset
    - fd
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: ncclIbRegMrDmaBuf
    functionSourceFile: /src/nccl/src/transport/net_ib/reg.cc
    functionUses: 0
    functionsReached:
    - ncclIbRegMrDmaBufInternal
    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: ncclIbRegMrDmaBufInternal
      Src: /src/nccl/src/transport/net_ib/reg.cc:87,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: 88
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: ncclIbRegMr
    functionSourceFile: /src/nccl/src/transport/net_ib/reg.cc
    functionUses: 0
    functionsReached:
    - ncclIbRegMrDmaBufInternal
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRegMr(void* comm, void* data, size_t size, int type,
      void** mhandle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/nccl/src/transport/net_ib/reg.cc:96,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/reg.cc:98,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/reg.cc:102,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/reg.cc:102,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/reg.cc:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - base
    - mhandle
    argTypes:
    - ncclIbNetCommDevBase*
    - ibv_mr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 109
    functionName: ncclIbDeregMrInternal
    functionSourceFile: /src/nccl/src/transport/net_ib/reg.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_dereg_mr
    - memmove
    - free
    - WARN
    - NCCLCHECK
    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/reg.cc:118,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/reg.cc:119,1
    - Dst: ncclIbDeregMrInternal
      Src: /src/nccl/src/transport/net_ib/reg.cc:119,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/reg.cc:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - comm
    - mhandle
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: ncclIbDeregMr
    functionSourceFile: /src/nccl/src/transport/net_ib/reg.cc
    functionUses: 0
    functionsReached:
    - ncclIbDeregMrInternal
    - free
    - ncclIbGetNetCommDevBase
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbDeregMr(void* comm, void* mhandle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbPeerMemSupport
      Src: /src/nccl/src/transport/net_ib/gin.cc:20,1
    - Dst: ncclIbGdrSupport
      Src: /src/nccl/src/transport/net_ib/gin.cc:21,1
    - Dst: ncclIbDmaBufSupport
      Src: /src/nccl/src/transport/net_ib/gin.cc:24,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/gin.cc:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - gdrSupport
    - gdaki
    argTypes:
    - bool*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: ncclGinIbGdrSupport
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclIbDmaBufSupport
    - INFO
    - ncclIbPeerMemSupport
    - ncclIbGdrSupport
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdrSupport(bool* gdrSupport, bool gdaki)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbPeerMemSupport
      Src: /src/nccl/src/transport/net_ib/gin.cc:34,1
    - Dst: ncclIbGdrSupport
      Src: /src/nccl/src/transport/net_ib/gin.cc:35,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:39,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/net_ib/gin.cc:39,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:41,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/transport/net_ib/gin.cc:41,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/gin.cc:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - gdaki
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: ncclGinIbGdrGpuSupport
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - cudaGetDevice
    - ncclIbPeerMemSupport
    - ncclIbGdrSupport
    - cuDeviceGetAttribute
    - CUDACHECK
    - WARN
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdrGpuSupport(bool gdaki)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: ncclGinIbGdakiInit
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdakiInit()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:76,1
    - Dst: ncclIbInitDevices
      Src: /src/nccl/src/transport/net_ib/gin.cc:76,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/gin.cc:82,1
    - Dst: ncclParamGinType
      Src: /src/nccl/src/transport/net_ib/gin.cc:82,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:90,1
    - Dst: ncclGinIbGdakiInit
      Src: /src/nccl/src/transport/net_ib/gin.cc:90,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:92,1
    - Dst: ncclGinIbGdrSupport
      Src: /src/nccl/src/transport/net_ib/gin.cc:92,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gin.cc:95,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:100,1
    - Dst: ncclGinIbGdrSupport
      Src: /src/nccl/src/transport/net_ib/gin.cc:100,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gin.cc:102,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:106,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_ib/gin.cc:106,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 5
    argNames:
    - ctx
    - commId
    - logFunction
    - ginType
    - ginIb
    argTypes:
    - void**
    - uint64_t
    - ncclDebugLogger_t
    - int
    - ncclGin_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 110
    functionName: ncclGinIbInitType
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclIbInitDevices
    - ncclParamGinType
    - INFO
    - ncclCalloc
    - memcpy
    - ncclGinIbGdrSupport
    - ncclGinIbGdakiInit
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbInitType(void** ctx, uint64_t commId, ncclDebugLogger_t
      logFunction, int ginType, ncclGin_t* ginIb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinIbInitType
      Src: /src/nccl/src/transport/net_ib/gin.cc:112,1
    - Dst: ncclParamGinType
      Src: /src/nccl/src/transport/net_ib/gin.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - commId
    - logFunction
    argTypes:
    - void**
    - uint64_t
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: ncclGinIbInit
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclParamGinType
    - ncclGinIbInitType
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbInit(void** ctx, uint64_t commId, ncclDebugLogger_t
      logFunction)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:123,1
    - Dst: ncclIbFinalizeDevices
      Src: /src/nccl/src/transport/net_ib/gin.cc:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: ncclGinIbFinalize
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - free
    - ncclIbFinalizeDevices
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbFinalize(void *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:137,1
    - Dst: regMr
      Src: /src/nccl/src/transport/net_ib/gin.cc:137,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:141,1
    - Dst: regMr
      Src: /src/nccl/src/transport/net_ib/gin.cc:141,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gin.cc:147,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:154,1
    - Dst: isend
      Src: /src/nccl/src/transport/net_ib/gin.cc:154,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:159,1
    - Dst: irecv
      Src: /src/nccl/src/transport/net_ib/gin.cc:159,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:165,1
    - Dst: test
      Src: /src/nccl/src/transport/net_ib/gin.cc:165,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:170,1
    - Dst: test
      Src: /src/nccl/src/transport/net_ib/gin.cc:170,1
    - Dst: deregMr
      Src: /src/nccl/src/transport/net_ib/gin.cc:180,1
    - Dst: deregMr
      Src: /src/nccl/src/transport/net_ib/gin.cc:183,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 4
    argNames:
    - cComm
    - srcBuf
    - recvBuf
    - len
    argTypes:
    - struct ncclGinIbCollComm*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 186
    functionName: ncclGinIbAllGather
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - test
    - isend
    - deregMr
    - regMr
    - NCCLCHECKGOTO
    - irecv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbAllGather(struct ncclGinIbCollComm *cComm, void
      *srcBuf, void *recvBuf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:192,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/gin.cc:192,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:193,1
    - Dst: struct ncclGinIbCollComm*::allGather
      Src: /src/nccl/src/transport/net_ib/gin.cc:193,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gin.cc:196,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - cComm
    - src_buf
    - recv_buf
    - len
    argTypes:
    - struct ncclGinIbCollComm*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 204
    functionName: ncclGinIbAllToAll
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - struct ncclGinIbCollComm*::allGather
    - memcpy
    - ncclIbMalloc
    - free
    - NCCLCHECKGOTO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbAllToAll(struct ncclGinIbCollComm *cComm, void
      *src_buf, void *recv_buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:209,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/gin.cc:209,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:210,1
    - Dst: ncclGinIbAllGather
      Src: /src/nccl/src/transport/net_ib/gin.cc:210,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cComm
    argTypes:
    - struct ncclGinIbCollComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: ncclGinIbP2PBarrier
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclIbMalloc
    - free
    - ncclGinIbAllGather
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbP2PBarrier(struct ncclGinIbCollComm *cComm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:222,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/gin.cc:222,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:233,1
    - Dst: connect
      Src: /src/nccl/src/transport/net_ib/gin.cc:233,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:236,1
    - Dst: accept
      Src: /src/nccl/src/transport/net_ib/gin.cc:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 6
    argNames:
    - ctx
    - handles
    - nranks
    - rank
    - listenComm
    - collComm
    argTypes:
    - void*
    - void*[]
    - int
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 250
    functionName: ncclGinIbConnect
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclIbMalloc
    - connect
    - accept
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinIbConnect(void *ctx, void *handles[], int nranks,
      int rank,\n                              void *listenComm, void **collComm)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:258,1
    - Dst: closeRecv
      Src: /src/nccl/src/transport/net_ib/gin.cc:258,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:263,1
    - Dst: closeSend
      Src: /src/nccl/src/transport/net_ib/gin.cc:263,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gin.cc:267,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - collComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 271
    functionName: ncclGinIbCloseColl
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - closeSend
    - closeRecv
    - free
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbCloseColl(void* collComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinIbInitType
      Src: /src/nccl/src/transport/net_ib/gin.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - commId
    - logFunction
    argTypes:
    - void**
    - uint64_t
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: ncclGinIbGdakiInit
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 1
    functionsReached:
    - ncclGinIbInitType
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdakiInit(void** ctx, uint64_t commId, ncclDebugLogger_t
      logFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ndev
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: ncclGinIbGdakiDevices
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdakiDevices(int* ndev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/gin.cc:288,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:291,1
    - Dst: ncclIbGetPhysProperties
      Src: /src/nccl/src/transport/net_ib/gin.cc:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 296
    functionName: ncclGinIbGdakiGetProperties
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclIbGetPhysProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdakiGetProperties(int dev, ncclNetProperties_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/nccl/src/transport/net_ib/gin.cc:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - dev
    - opaqueHandle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: ncclGinIbGdakiListen
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - listen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdakiListen(void* ctx, int dev, void* opaqueHandle,
      void** listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:306,1
    - Dst: ncclGinIbGdrGpuSupport
      Src: /src/nccl/src/transport/net_ib/gin.cc:306,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:308,1
    - Dst: ncclGinIbConnect
      Src: /src/nccl/src/transport/net_ib/gin.cc:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - handles
    - nranks
    - rank
    - listenComm
    - collComm
    argTypes:
    - void*
    - void*[]
    - int
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 314
    functionName: ncclGinIbGdakiConnect
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclGinIbGdrGpuSupport
    - ncclGinIbConnect
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinIbGdakiConnect(void *ctx, void *handles[], int
      nranks, int rank,\n                                   void *listenComm, void
      **collComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:319,1
    - Dst: ncclGinGdakiCreateContext
      Src: /src/nccl/src/transport/net_ib/gin.cc:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - collComm
    - config
    - ginCtx
    - devHandle
    argTypes:
    - void*
    - ncclGinConfig_v13_t*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: ncclGinIbGdakiCreateContext
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclGinGdakiCreateContext
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdakiCreateContext(void* collComm, ncclGinConfig_v13_t*
      config, void **ginCtx, ncclNetDeviceHandle_t** devHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinGdakiRegMrSym
      Src: /src/nccl/src/transport/net_ib/gin.cc:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - collComm
    - data
    - size
    - type
    - mr_flags
    - mhandle
    - ginHandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 326
    functionName: ncclGinIbGdakiRegMrSym
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclGinGdakiRegMrSym
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdakiRegMrSym(void* collComm, void* data, size_t
      size, int type, uint64_t mr_flags, void** mhandle, void **ginHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinGdakiDeregMrSym
      Src: /src/nccl/src/transport/net_ib/gin.cc:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - collComm
    - mhandle
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: ncclGinIbGdakiDeregMrSym
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclGinGdakiDeregMrSym
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdakiDeregMrSym(void* collComm, void* mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinGdakiDestroyContext
      Src: /src/nccl/src/transport/net_ib/gin.cc:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ginCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 334
    functionName: ncclGinIbGdakiDestroyContext
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclGinGdakiDestroyContext
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdakiDestroyContext(void* ginCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinGdakiProgress
      Src: /src/nccl/src/transport/net_ib/gin.cc:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - collComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: ncclGinIbGdakiProgress
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclGinGdakiProgress
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdakiProgress(void *collComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinGdakiQueryLastError
      Src: /src/nccl/src/transport/net_ib/gin.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ginCtx
    - hasError
    argTypes:
    - void*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 343
    functionName: ncclGinIbGdakiQueryLastError
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclGinGdakiQueryLastError
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbGdakiQueryLastError(void *ginCtx, bool *hasError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinIbInitType
      Src: /src/nccl/src/transport/net_ib/gin.cc:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - commId
    - logFunction
    argTypes:
    - void**
    - uint64_t
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: ncclGinIbProxyInit
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclGinIbInitType
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbProxyInit(void** ctx, uint64_t commId, ncclDebugLogger_t
      logFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:381,1
    - Dst: getProperties
      Src: /src/nccl/src/transport/net_ib/gin.cc:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: ncclGinIbProxyGetProperties
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbProxyGetProperties(int dev, ncclNetProperties_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:389,1
    - Dst: ncclGinIbGdrGpuSupport
      Src: /src/nccl/src/transport/net_ib/gin.cc:389,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:392,1
    - Dst: ncclGinIbConnect
      Src: /src/nccl/src/transport/net_ib/gin.cc:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ctx
    - handles
    - nranks
    - rank
    - listenComm
    - collComm
    argTypes:
    - void*
    - void*[]
    - int
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 396
    functionName: ncclGinIbProxyConnect
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclGinIbGdrGpuSupport
    - ncclGinIbConnect
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinIbProxyConnect(void *ctx, void *handles[], int
      nranks, int rank,\n                                   void *listenComm, void
      **collComm)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbSetTrafficClass
      Src: /src/nccl/src/transport/net_ib/gin.cc:409,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/gin.cc:412,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:419,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_ib/gin.cc:419,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:425,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/gin.cc:425,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:428,1
    - Dst: listen
      Src: /src/nccl/src/transport/net_ib/gin.cc:428,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:429,1
    - Dst: struct ncclGinIbCollComm*::allGather
      Src: /src/nccl/src/transport/net_ib/gin.cc:429,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:433,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/gin.cc:433,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:434,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/gin.cc:434,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:442,1
    - Dst: connect
      Src: /src/nccl/src/transport/net_ib/gin.cc:442,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:444,1
    - Dst: accept
      Src: /src/nccl/src/transport/net_ib/gin.cc:444,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gin.cc:447,1
    - Dst: ncclGinIbP2PBarrier
      Src: /src/nccl/src/transport/net_ib/gin.cc:447,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:452,1
    - Dst: closeListen
      Src: /src/nccl/src/transport/net_ib/gin.cc:453,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:454,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - collComm
    - config
    - ginCtx
    - devHandle
    argTypes:
    - void*
    - ncclGinConfig_v13_t*
    - void**
    - ncclNetDeviceHandle_v11_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 457
    functionName: ncclGinIbProxyCreateContext
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - struct ncclGinIbCollComm*::allGather
    - ncclCalloc
    - listen
    - accept
    - ncclIbSetTrafficClass
    - ncclGinIbP2PBarrier
    - ncclIbMalloc
    - free
    - NCCLCHECKGOTO
    - closeListen
    - connect
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbProxyCreateContext(void* collComm, ncclGinConfig_v13_t*
      config, void** ginCtx, ncclNetDeviceHandle_v11_t** devHandle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:466,1
    - Dst: closeRecv
      Src: /src/nccl/src/transport/net_ib/gin.cc:466,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:468,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:474,1
    - Dst: closeSend
      Src: /src/nccl/src/transport/net_ib/gin.cc:474,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:476,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ginCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 481
    functionName: ncclGinIbProxyDestroyContext
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - free
    - closeRecv
    - closeSend
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbProxyDestroyContext(void* ginCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:486,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_ib/gin.cc:486,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/transport/net_ib/gin.cc:488,1
    - Dst: ncclIbRegMrDmaBufInternal
      Src: /src/nccl/src/transport/net_ib/gin.cc:488,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:490,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_ib/gin.cc:490,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:491,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_ib/gin.cc:491,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:493,1
    - Dst: struct ncclGinIbCollComm*::allGather
      Src: /src/nccl/src/transport/net_ib/gin.cc:493,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:494,1
    - Dst: struct ncclGinIbCollComm*::allGather
      Src: /src/nccl/src/transport/net_ib/gin.cc:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 9
    argNames:
    - collComm
    - data
    - size
    - type
    - offset
    - fd
    - mr_flags
    - mhandle
    - ginHandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - int
    - uint64_t
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 500
    functionName: ncclGinIbProxyRegMrSymDmaBuf
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - struct ncclGinIbCollComm*::allGather
    - ncclCalloc
    - NCCLCHECKNOWARN
    - ncclIbRegMrDmaBufInternal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbProxyRegMrSymDmaBuf(void* collComm, void* data,
      size_t size, int type, uint64_t offset, int fd, uint64_t mr_flags, void** mhandle,
      void **ginHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinIbProxyRegMrSymDmaBuf
      Src: /src/nccl/src/transport/net_ib/gin.cc:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - collComm
    - data
    - size
    - type
    - mr_flags
    - mhandle
    - ginHandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 502
    functionDepth: 4
    functionLinenumber: 502
    functionLinenumberEnd: 504
    functionName: ncclGinIbProxyRegMrSym
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - ncclGinIbProxyRegMrSymDmaBuf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbProxyRegMrSym(void* collComm, void* data, size_t
      size, int type, uint64_t mr_flags, void** mhandle, void **ginHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:510,1
    - Dst: deregMr
      Src: /src/nccl/src/transport/net_ib/gin.cc:510,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:511,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:512,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - collComm
    - mhandle
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 515
    functionName: ncclGinIbProxyDeregMrSym
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - free
    - deregMr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbProxyDeregMrSym(void* collComm, void* mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gin.cc:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - collComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 520
    functionName: ncclGinIbProxyCloseColl
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbProxyCloseColl(void* collComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:539,1
    - Dst: ncclIbGetRequest
      Src: /src/nccl/src/transport/net_ib/gin.cc:539,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gin.cc:549,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gin.cc:551,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:567,1
    - Dst: wrap_ibv_post_send
      Src: /src/nccl/src/transport/net_ib/gin.cc:567,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib/gin.cc:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 9
    argNames:
    - ginCtx
    - context
    - srcOff
    - srcMhandle
    - size
    - dstOff
    - dstMhandle
    - rank
    - request
    argTypes:
    - void*
    - int
    - uint64_t
    - void*
    - size_t
    - uint64_t
    - void*
    - uint32_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 572
    functionName: ncclGinIbProxyIPut
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_post_send
    - ncclIbAddEvent
    - ncclIbGetRequest
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinIbProxyIPut(void *ginCtx, int context, uint64_t
      srcOff, void *srcMhandle, size_t size,\n                                uint64_t
      dstOff, void *dstMhandle, uint32_t rank,\n                                void
      **request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:586,1
    - Dst: ncclIbGetRequest
      Src: /src/nccl/src/transport/net_ib/gin.cc:586,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gin.cc:601,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gin.cc:603,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:619,1
    - Dst: wrap_ibv_post_send
      Src: /src/nccl/src/transport/net_ib/gin.cc:619,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib/gin.cc:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 9
    argNames:
    - ginCtx
    - context
    - remoteOffset
    - remoteMhandle
    - size
    - localOffset
    - localMhandle
    - rank
    - request
    argTypes:
    - void*
    - int
    - uint64_t
    - void*
    - size_t
    - uint64_t
    - void*
    - uint32_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 624
    functionName: ncclGinIbProxyIGet
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_post_send
    - ncclIbAddEvent
    - ncclIbGetRequest
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinIbProxyIGet(void *ginCtx, int context, uint64_t
      remoteOffset, void *remoteMhandle,\n                                 size_t
      size, uint64_t localOffset, void *localMhandle, uint32_t rank,\n                                 void
      **request)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/gin.cc:631,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:646,1
    - Dst: ncclIbGetRequest
      Src: /src/nccl/src/transport/net_ib/gin.cc:646,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gin.cc:656,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gin.cc:658,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:702,1
    - Dst: wrap_ibv_post_send
      Src: /src/nccl/src/transport/net_ib/gin.cc:702,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib/gin.cc:703,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 13
    argNames:
    - ginCtx
    - context
    - srcOff
    - srcMhandle
    - size
    - dstOff
    - dstMhandle
    - rank
    - signalOff
    - signalMhandle
    - signalValue
    - signalOp
    - request
    argTypes:
    - void*
    - int
    - uint64_t
    - void*
    - size_t
    - uint64_t
    - void*
    - uint32_t
    - uint64_t
    - void*
    - uint64_t
    - uint32_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 706
    functionName: ncclGinIbProxyIPutSignal
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_post_send
    - ncclIbAddEvent
    - ncclIbGetRequest
    - memset
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinIbProxyIPutSignal(void *ginCtx, int context, uint64_t
      srcOff, void *srcMhandle,\n                                      size_t size,
      uint64_t dstOff, void *dstMhandle, uint32_t rank,\n                                      uint64_t
      signalOff, void *signalMhandle, uint64_t signalValue,\n                                      uint32_t
      signalOp, void **request)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:716,1
    - Dst: ncclIbFreeRequest
      Src: /src/nccl/src/transport/net_ib/gin.cc:716,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:733,1
    - Dst: wrap_ibv_poll_cq
      Src: /src/nccl/src/transport/net_ib/gin.cc:733,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_ib/gin.cc:737,1
    - Dst: ibvGetGidStr
      Src: /src/nccl/src/transport/net_ib/gin.cc:742,1
    - Dst: ibvGetGidStr
      Src: /src/nccl/src/transport/net_ib/gin.cc:743,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/gin.cc:748,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_ib/gin.cc:749,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:759,1
    - Dst: ncclIbFreeRequest
      Src: /src/nccl/src/transport/net_ib/gin.cc:759,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - collComm
    - request
    - done
    argTypes:
    - void*
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 763
    functionName: ncclGinIbProxyTest
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_poll_cq
    - ncclIbFreeRequest
    - ncclSocketGetAddr
    - ibvGetGidStr
    - WARN
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbProxyTest(void* collComm, void *request, int
      *done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:772,1
    - Dst: ncclIbGetRequest
      Src: /src/nccl/src/transport/net_ib/gin.cc:772,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gin.cc:779,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/gin.cc:790,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport/net_ib/gin.cc:791,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gin.cc:793,1
    - Dst: wrap_ibv_post_send
      Src: /src/nccl/src/transport/net_ib/gin.cc:793,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport/net_ib/gin.cc:794,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib/gin.cc:796,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/gin.cc:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 5
    argNames:
    - ginCtx
    - context
    - mhandle
    - rank
    - request
    argTypes:
    - void*
    - int
    - void*
    - uint32_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 802
    functionName: ncclGinIbProxyIFlush
    functionSourceFile: /src/nccl/src/transport/net_ib/gin.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_post_send
    - TRACE
    - TIME_START
    - ncclIbAddEvent
    - ncclIbGetRequest
    - TIME_STOP
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinIbProxyIFlush(void *ginCtx, int context, void*
      mhandle, uint32_t rank, void **request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbMergeVfs
      Src: /src/nccl/src/transport/net_ib/init.cc:37,1
    - Dst: strncmp
      Src: /src/nccl/src/transport/net_ib/init.cc:38,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:38,1
    - Dst: strncmp
      Src: /src/nccl/src/transport/net_ib/init.cc:40,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - path1
    - path2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: ncclIbMatchVfPath
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - strncmp
    - ncclParamIbMergeVfs
    - strlen
    linkageType: ''
    returnType: int
    signature: int ncclIbMatchVfPath(char* path1, char* path2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:51,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:51,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:51,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:51,1
    - Dst: pciPathToInt64
      Src: /src/nccl/src/transport/net_ib/init.cc:54,1
    - Dst: pciPathToInt64
      Src: /src/nccl/src/transport/net_ib/init.cc:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dev1
    - dev2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: ncclIbCompareDevs
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - pciPathToInt64
    - strlen
    linkageType: ''
    returnType: int
    signature: int ncclIbCompareDevs(const void* dev1, const void* dev2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib/init.cc:62,1
    - Dst: realpath
      Src: /src/nccl/src/transport/net_ib/init.cc:63,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib/init.cc:65,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/init.cc:67,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:70,1
    - Dst: ncclParamIbMergeVfs
      Src: /src/nccl/src/transport/net_ib/init.cc:72,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:72,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:72,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/init.cc:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - devName
    - path
    - fullPath
    argTypes:
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: ncclIbGetPciPath
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbMergeVfs
    - realpath
    - strlen
    - free
    - snprintf
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbGetPciPath(char* devName, char** path, char* fullPath)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbMatchVfPath
      Src: /src/nccl/src/transport/net_ib/init.cc:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pciPath
    - realPort
    - devIdx
    argTypes:
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: ncclIbGetRealPort
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - ncclIbMatchVfPath
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbGetRealPort(char* pciPath, int* realPort, int devIdx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - val
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: firstBitSet
    functionSourceFile: /src/nccl/src/transport/net_ib/init.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/init.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - width
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: ncclIbWidth
    functionSourceFile: /src/nccl/src/transport/net_ib/init.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/init.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - speed
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: ncclIbSpeed
    functionSourceFile: /src/nccl/src/transport/net_ib/init.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/init.cc:120,1
    - Dst: wrap_ibv_reg_mr_iova2
      Src: /src/nccl/src/transport/net_ib/init.cc:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: ncclIbRelaxedOrderingCapable
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_reg_mr_iova2
    - ncclParamIbPciRelaxedOrdering
    linkageType: ''
    returnType: int
    signature: int ncclIbRelaxedOrderingCapable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/init.cc:134,1
    - Dst: wrap_ibv_alloc_pd
      Src: /src/nccl/src/transport/net_ib/init.cc:134,1
    - Dst: wrap_direct_ibv_reg_dmabuf_mr
      Src: /src/nccl/src/transport/net_ib/init.cc:136,1
    - Dst: wrap_direct_mlx5dv_reg_dmabuf_mr
      Src: /src/nccl/src/transport/net_ib/init.cc:138,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/init.cc:141,1
    - Dst: wrap_ibv_dealloc_pd
      Src: /src/nccl/src/transport/net_ib/init.cc:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - context
    argTypes:
    - ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 147
    functionName: ncclMlx5dvDmaBufCapable
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_dealloc_pd
    - wrap_direct_ibv_reg_dmabuf_mr
    - NCCLCHECKGOTO
    - wrap_ibv_alloc_pd
    - wrap_direct_mlx5dv_reg_dmabuf_mr
    linkageType: ''
    returnType: bool
    signature: bool ncclMlx5dvDmaBufCapable(ibv_context *context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbOooRq
      Src: /src/nccl/src/transport/net_ib/init.cc:157,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/init.cc:163,1
    - Dst: wrap_mlx5dv_query_device
      Src: /src/nccl/src/transport/net_ib/init.cc:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ibvCtx
    - devName
    - oooRqSize
    argTypes:
    - struct ibv_context*
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 172
    functionName: ncclIbQueryOooRqSize
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbOooRq
    - wrap_mlx5dv_query_device
    - NCCLCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbQueryOooRqSize(struct ibv_context* ibvCtx, const
      char *devName, uint32_t* oooRqSize)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbMergeNics
      Src: /src/nccl/src/transport/net_ib/init.cc:175,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/init.cc:176,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/init.cc:181,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/init.cc:186,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib/init.cc:202,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:202,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:202,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_ib/init.cc:205,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/init.cc:213,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/init.cc:218,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/init.cc:219,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/init.cc:219,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/init.cc:225,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 227
    functionName: ncclIbMakeVDeviceInternal
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - INFO
    - strlen
    - strncpy
    - ncclParamIbMergeNics
    - NCCL_IB_LLSTR
    - snprintf
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbMakeVDeviceInternal(int* d, ncclNetVDeviceProps_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbMakeVDeviceInternal
      Src: /src/nccl/src/transport/net_ib/init.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: ncclIbMakeVDevice
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - ncclIbMakeVDeviceInternal
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbMakeVDevice(int* d, ncclNetVDeviceProps_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - netAttr
    argTypes:
    - void*
    - ncclNetAttr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: ncclIbSetNetAttr
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbSetNetAttr(void *ctx, ncclNetAttr_t *netAttr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: ncclIbFinalizeDevices
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbFinalizeDevices(void)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbDisable
      Src: /src/nccl/src/transport/net_ib/init.cc:257,1
    - Dst: wrap_ibv_symbols
      Src: /src/nccl/src/transport/net_ib/init.cc:259,1
    - Dst: wrap_mlx5dv_symbols
      Src: /src/nccl/src/transport/net_ib/init.cc:260,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/init.cc:260,1
    - Dst: wrap_ibv_fork_init
      Src: /src/nccl/src/transport/net_ib/init.cc:264,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/init.cc:269,1
    - Dst: ncclFindInterfaces
      Src: /src/nccl/src/transport/net_ib/init.cc:269,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/init.cc:271,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/transport/net_ib/init.cc:281,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/init.cc:282,1
    - Dst: parseStringList
      Src: /src/nccl/src/transport/net_ib/init.cc:288,1
    - Dst: wrap_ibv_get_device_list
      Src: /src/nccl/src/transport/net_ib/init.cc:290,1
    - Dst: wrap_ibv_open_device
      Src: /src/nccl/src/transport/net_ib/init.cc:294,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/init.cc:295,1
    - Dst: wrap_mlx5dv_is_supported
      Src: /src/nccl/src/transport/net_ib/init.cc:302,1
    - Dst: ncclParamIbOooRq
      Src: /src/nccl/src/transport/net_ib/init.cc:303,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/init.cc:304,1
    - Dst: ncclIbQueryOooRqSize
      Src: /src/nccl/src/transport/net_ib/init.cc:304,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/init.cc:309,1
    - Dst: wrap_ibv_query_device
      Src: /src/nccl/src/transport/net_ib/init.cc:310,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/init.cc:311,1
    - Dst: wrap_ibv_close_device
      Src: /src/nccl/src/transport/net_ib/init.cc:312,1
    - Dst: wrap_ibv_query_port
      Src: /src/nccl/src/transport/net_ib/init.cc:317,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/init.cc:318,1
    - Dst: matchIfList
      Src: /src/nccl/src/transport/net_ib/init.cc:325,1
    - Dst: ncclParamIbDataDirect
      Src: /src/nccl/src/transport/net_ib/init.cc:333,1
    - Dst: ncclMlx5dvDmaBufCapable
      Src: /src/nccl/src/transport/net_ib/init.cc:333,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:334,1
    - Dst: wrap_mlx5dv_get_data_direct_sysfs_path
      Src: /src/nccl/src/transport/net_ib/init.cc:335,1
    - Dst: ncclParamIbDataDirect
      Src: /src/nccl/src/transport/net_ib/init.cc:340,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/init.cc:341,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/init.cc:343,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/init.cc:345,1
    - Dst: ncclIbSpeed
      Src: /src/nccl/src/transport/net_ib/init.cc:359,1
    - Dst: ncclIbWidth
      Src: /src/nccl/src/transport/net_ib/init.cc:359,1
    - Dst: ncclIbSpeed
      Src: /src/nccl/src/transport/net_ib/init.cc:361,1
    - Dst: ncclIbWidth
      Src: /src/nccl/src/transport/net_ib/init.cc:361,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_ib/init.cc:367,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/init.cc:368,1
    - Dst: ncclIbGetPciPath
      Src: /src/nccl/src/transport/net_ib/init.cc:368,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib/init.cc:370,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/init.cc:371,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_ib/init.cc:371,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_ib/init.cc:372,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/init.cc:381,1
    - Dst: ncclIbStatsInit
      Src: /src/nccl/src/transport/net_ib/init.cc:381,1
    - Dst: ncclParamIbAdaptiveRouting
      Src: /src/nccl/src/transport/net_ib/init.cc:386,1
    - Dst: ncclParamIbAdaptiveRouting
      Src: /src/nccl/src/transport/net_ib/init.cc:386,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/init.cc:389,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/init.cc:390,1
    - Dst: std::thread
      Src: /src/nccl/src/transport/net_ib/init.cc:393,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/transport/net_ib/init.cc:394,1
    - Dst: detach
      Src: /src/nccl/src/transport/net_ib/init.cc:395,1
    - Dst: wrap_ibv_close_device
      Src: /src/nccl/src/transport/net_ib/init.cc:401,1
    - Dst: wrap_ibv_free_device_list
      Src: /src/nccl/src/transport/net_ib/init.cc:404,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/init.cc:407,1
    - Dst: ncclIbRelaxedOrderingCapable
      Src: /src/nccl/src/transport/net_ib/init.cc:410,1
    - Dst: ncclParamIbArThreshold
      Src: /src/nccl/src/transport/net_ib/init.cc:413,1
    - Dst: ncclParamIbOooRq
      Src: /src/nccl/src/transport/net_ib/init.cc:414,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/init.cc:415,1
    - Dst: ncclParamIbArThreshold
      Src: /src/nccl/src/transport/net_ib/init.cc:417,1
    - Dst: ncclParamIbDevicePciOrder
      Src: /src/nccl/src/transport/net_ib/init.cc:421,1
    - Dst: qsort
      Src: /src/nccl/src/transport/net_ib/init.cc:421,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/init.cc:426,1
    - Dst: ncclIbGetRealPort
      Src: /src/nccl/src/transport/net_ib/init.cc:426,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib/init.cc:427,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:427,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/init.cc:427,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/init.cc:427,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/init.cc:434,1
    - Dst: ncclIbMakeVDeviceInternal
      Src: /src/nccl/src/transport/net_ib/init.cc:434,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/init.cc:437,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_ib/init.cc:437,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 163
    argCount: 2
    argNames:
    - logFunction
    - profFunction
    argTypes:
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 443
    functionName: ncclIbInitDevices
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 1
    functionsReached:
    - matchIfList
    - wrap_ibv_symbols
    - wrap_ibv_open_device
    - wrap_ibv_get_device_list
    - wrap_ibv_fork_init
    - NCCLCHECKGOTO
    - wrap_ibv_free_device_list
    - WARN
    - ncclParamIbDisable
    - ncclIbSpeed
    - ncclGetEnv
    - TRACE
    - ncclCalloc
    - std::thread
    - wrap_ibv_close_device
    - strlen
    - ncclParamIbAdaptiveRouting
    - wrap_mlx5dv_is_supported
    - NCCL_IB_LLSTR
    - ncclParamIbDevicePciOrder
    - strncpy
    - ncclIbStatsInit
    - ncclIbRelaxedOrderingCapable
    - ncclSocketToString
    - qsort
    - INFO
    - wrap_mlx5dv_symbols
    - ncclIbWidth
    - detach
    - wrap_ibv_query_device
    - memset
    - wrap_ibv_query_port
    - ncclFindInterfaces
    - ncclSetThreadName
    - NCCLCHECK
    - ncclParamIbOooRq
    - ncclIbQueryOooRqSize
    - ncclMlx5dvDmaBufCapable
    - ncclParamIbArThreshold
    - ncclIbMakeVDeviceInternal
    - ncclParamIbDataDirect
    - wrap_mlx5dv_get_data_direct_sysfs_path
    - ncclIbGetRealPort
    - ncclIbGetPciPath
    - snprintf
    - parseStringList
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbInitDevices(ncclDebugLogger_t logFunction, ncclProfilerCallback_t
      profFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/init.cc:448,1
    - Dst: ncclIbInitDevices
      Src: /src/nccl/src/transport/net_ib/init.cc:448,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/init.cc:449,1
    - Dst: ncclIbPortRecoveryThreadStart
      Src: /src/nccl/src/transport/net_ib/init.cc:449,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/init.cc:450,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_ib/init.cc:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logFunction
    - profFunction
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 454
    functionName: ncclIbInit
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - ncclIbInitDevices
    - ncclIbPortRecoveryThreadStart
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbInit(void** ctx, uint64_t commId, ncclNetCommConfig_t*
      config, 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: 459
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: ncclIbDevices
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbDevices(int* ndev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbGdrSupport
      Src: /src/nccl/src/transport/net_ib/init.cc:469,1
    - Dst: ncclIbDmaBufSupport
      Src: /src/nccl/src/transport/net_ib/init.cc:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 492
    functionName: ncclIbGetPhysProperties
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 1
    functionsReached:
    - ncclIbDmaBufSupport
    - ncclIbGdrSupport
    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/init.cc:496,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/init.cc:501,1
    - Dst: ncclIbGetPhysProperties
      Src: /src/nccl/src/transport/net_ib/init.cc:501,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/init.cc:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 506
    functionName: ncclIbGetProperties
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - WARN
    - ncclIbGetPhysProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbGetProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/init.cc:509,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/init.cc:510,1
    - Dst: ncclIbPortRecoveryThreadStop
      Src: /src/nccl/src/transport/net_ib/init.cc:510,1
    - Dst: ncclIbFinalizeDevices
      Src: /src/nccl/src/transport/net_ib/init.cc:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: ncclIbFinalize
    functionSourceFile: /src/nccl/src/transport/net_ib/init.cc
    functionUses: 0
    functionsReached:
    - free
    - ncclIbFinalizeDevices
    - ncclIbPortRecoveryThreadStop
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbFinalize(void* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:162,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:163,1
    - Dst: ncclIbQpError
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - recoveryContext
    argTypes:
    - ncclIbPortRecoveryContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: ncclIbPortRecoveryQpsToError
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclIbQpError
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryQpsToError(ncclIbPortRecoveryContext*
      recoveryContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrap_ibv_post_recv
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ibv_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: ncclIbPortRecoveryPostRecvWorkRequest
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_post_recv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryPostRecvWorkRequest(struct ibv_qp* qp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wrap_ibv_poll_cq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:194,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:196,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:200,1
    - Dst: ncclIbPortRecoveryPostRecvWorkRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:202,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - recoveryContext
    - success
    argTypes:
    - struct ncclIbPortRecoveryContext*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 212
    functionName: ncclIbPortRecoveryDrainCqAndPostReceiveWRs
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_poll_cq
    - INFO
    - ncclIbPortRecoveryPostRecvWorkRequest
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryDrainCqAndPostReceiveWRs(struct ncclIbPortRecoveryContext*
      recoveryContext, bool* success)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:217,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:219,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:227,1
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:231,1
    - Dst: ncclIbPortRecoveryQpsToError
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:246,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:248,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:249,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:257,1
    - Dst: ncclIbPortRecoveryPostRecvWorkRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:258,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:260,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:261,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:267,1
    - Dst: ncclIbPortRecoveryPostRecvWorkRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:269,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:271,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:272,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 3
    argNames:
    - resCtx
    - failedDevIndex
    - outRecoveryCtx
    argTypes:
    - struct ncclIbResiliency*
    - int
    - ncclIbPortRecoveryContext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 280
    functionName: ncclIbPortRecoveryContextInit
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - ncclIbPortRecoveryQpsToError
    - INFO
    - clockNano
    - ncclIbPortRecoveryPostRecvWorkRequest
    - free
    - memset
    - malloc
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryContextInit(struct ncclIbResiliency*
      resCtx, int failedDevIndex, ncclIbPortRecoveryContext** outRecoveryCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:283,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:284,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - recoveryContext
    argTypes:
    - ncclIbPortRecoveryContext*
    assertStmts:
    - condition: (recoveryContext)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: ncclIbPortRecoveryContextDestroy
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - free
    - INFO
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryContextDestroy(ncclIbPortRecoveryContext*
      recoveryContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:290,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:293,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:294,1
    - Dst: wrap_ibv_create_cq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - resCtx
    - devIndex
    - ibDev
    argTypes:
    - struct ncclIbResiliency*
    - int
    - ncclIbDev*
    assertStmts:
    - condition: (resCtx->recoveryEnabled)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: ncclIbPortRecoveryDevInit
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_create_cq
    - INFO
    - NCCLCHECK
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryDevInit(struct ncclIbResiliency* resCtx,
      int devIndex, ncclIbDev* ibDev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:301,1
    - Dst: wrap_ibv_destroy_cq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:301,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - resCtx
    - devIndex
    argTypes:
    - struct ncclIbResiliency*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: ncclIbPortRecoveryDevDestroy
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - INFO
    - wrap_ibv_destroy_cq
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryDevDestroy(struct ncclIbResiliency*
      resCtx, int devIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:308,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:309,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:313,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:325,1
    - Dst: ncclIbQpCreate
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:325,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:334,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:338,1
    - Dst: ncclIbQpInit
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - resCtx
    - localPortRecoveryQpsInfo
    - nQps
    argTypes:
    - struct ncclIbResiliency*
    - struct ncclIbQpInfo*
    - int
    assertStmts:
    - condition: (nQps > 0)
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (resCtx->recoveryEnabled)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    constantsTouched: []
    func_position:
      end: 341
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 341
    functionName: ncclIbPortRecoverySenderQpsCreate
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbPkey
    - ncclIbQpInit
    - assert
    - memset
    - ncclIbQpCreate
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoverySenderQpsCreate(struct ncclIbResiliency*
      resCtx, struct ncclIbQpInfo* localPortRecoveryQpsInfo, int nQps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:344,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:345,1
    - Dst: min
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:362,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:372,1
    - Dst: ncclIbQpRtr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:372,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:374,1
    - Dst: ncclIbQpRts
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:374,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - resCtx
    - remInfo
    - nQps
    argTypes:
    - struct ncclIbResiliency*
    - struct ncclIbConnectionMetadata*
    - int
    assertStmts:
    - condition: (nQps > 0)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (resCtx->recoveryEnabled)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    constantsTouched: []
    func_position:
      end: 378
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 378
    functionName: ncclIbPortRecoverySenderQpsToRts
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - INFO
    - min
    - assert
    - ncclIbQpRts
    - ncclIbQpRtr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoverySenderQpsToRts(struct ncclIbResiliency*
      resCtx, struct ncclIbConnectionMetadata* remInfo, int nQps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:384,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:396,1
    - Dst: ncclIbQpCreate
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:396,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:403,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:409,1
    - Dst: ncclIbQpInit
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:409,1
    - Dst: min
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:415,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:425,1
    - Dst: ncclIbQpRtr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:425,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:427,1
    - Dst: ncclIbQpRts
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:427,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 4
    argNames:
    - resCtx
    - remInfo
    - localPortRecoveryQpsInfo
    - nQps
    argTypes:
    - struct ncclIbResiliency*
    - struct ncclIbConnectionMetadata*
    - struct ncclIbQpInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 431
    functionName: ncclIbPortRecoveryReceiverQpsCreateToRts
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclParamIbPkey
    - NCCLCHECK
    - min
    - memset
    - ncclIbQpRtr
    - ncclIbQpRts
    - ncclIbQpCreate
    - ncclIbQpInit
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryReceiverQpsCreateToRts(struct ncclIbResiliency*
      resCtx, struct ncclIbConnectionMetadata* remInfo, struct ncclIbQpInfo* localPortRecoveryQpsInfo,
      int nQps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:439,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:440,1
    - Dst: wrap_ibv_destroy_qp
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - resCtx
    - nQps
    argTypes:
    - struct ncclIbResiliency*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 443
    functionName: ncclIbPortRecoveryQpsDestroy
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - INFO
    - wrap_ibv_destroy_qp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryQpsDestroy(struct ncclIbResiliency*
      resCtx, int nQps)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:455,1
    - Dst: ncclIbQpReset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:456,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:458,1
    - Dst: ncclIbQpInit
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:462,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:464,1
    - Dst: wrap_ibv_set_ece
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:469,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:471,1
    - Dst: ncclIbQpRtr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:476,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:478,1
    - Dst: ncclIbQpRts
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:482,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:484,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:488,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:492,1
    - Dst: ncclIbPostReceiveWorkRequestsOnQp
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:494,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:496,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:511,1
    - Dst: ncclIbQpReset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:512,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:514,1
    - Dst: ncclIbQpInit
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:518,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:520,1
    - Dst: ncclIbQpRtr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:524,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:526,1
    - Dst: ncclIbQpRts
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:530,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:532,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:536,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 84
    argCount: 2
    argNames:
    - recoveryContext
    - success
    argTypes:
    - ncclIbPortRecoveryContext*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 542
    functionName: ncclIbPortRecoveryQpsRestore
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - INFO
    - wrap_ibv_set_ece
    - ncclIbPostReceiveWorkRequestsOnQp
    - ncclIbQpReset
    - ncclIbQpRts
    - ncclIbQpRtr
    - ncclIbQpInit
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryQpsRestore(ncclIbPortRecoveryContext*
      recoveryContext, bool* success)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:548,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:548,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:553,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:553,1
    - Dst: ncclIbPortRecoveryPostRecvWorkRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:554,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:556,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:566,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:568,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:570,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:575,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:578,1
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:582,1
    - Dst: ncclIbPortRecoveryPostRecvWorkRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:583,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:585,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:592,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:593,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:594,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 3
    argNames:
    - recoveryContext
    - completion
    - success
    argTypes:
    - struct ncclIbPortRecoveryContext*
    - struct ibv_wc
    - bool*
    assertStmts:
    - condition: (completion.opcode == IBV_WC_SEND)
      pos:
        line_end: 565
        line_start: 565
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (completion.opcode == IBV_WC_RECV)
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (completion.opcode == IBV_WC_RECV)
      pos:
        line_end: 591
        line_start: 591
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (completion.imm_data == NCCL_IB_RESILIENCY_PORT_RECOVERY_ACK_MSG_ID)
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    constantsTouched: []
    func_position:
      end: 599
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 599
    functionName: ncclIbPortRecoveryHandleCompletionReceiver
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - ibvWcOpcodeStr
    - INFO
    - clockNano
    - ncclIbPortRecoveryPostRecvWorkRequest
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryHandleCompletionReceiver(struct ncclIbPortRecoveryContext*
      recoveryContext, struct ibv_wc completion, bool* success)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:602,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:602,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:605,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:606,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:609,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:617,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:618,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:619,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:625,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 3
    argNames:
    - recoveryContext
    - completion
    - success
    argTypes:
    - struct ncclIbPortRecoveryContext*
    - struct ibv_wc
    - bool*
    assertStmts:
    - condition: (!recoveryContext->send.aliveMsgCompleted)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (completion.opcode == IBV_WC_RECV)
      pos:
        line_end: 616
        line_start: 616
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (completion.imm_data == NCCL_IB_RESILIENCY_PORT_RECOVERY_ACK_MSG_ID)
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (completion.opcode == IBV_WC_SEND)
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    constantsTouched: []
    func_position:
      end: 634
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 634
    functionName: ncclIbPortRecoveryHandleCompletionSender
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - ibvWcOpcodeStr
    - INFO
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryHandleCompletionSender(struct ncclIbPortRecoveryContext*
      recoveryContext, struct ibv_wc completion, bool* success)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: wrap_ibv_poll_cq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:640,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:642,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:654,1
    - Dst: ibvWcStatusStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:654,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:659,1
    - Dst: ncclIbPortRecoveryHandleCompletionSender
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:659,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:661,1
    - Dst: ncclIbPortRecoveryHandleCompletionReceiver
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:661,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:664,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - recoveryContext
    - success
    argTypes:
    - struct ncclIbPortRecoveryContext*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 667
    functionName: ncclIbPortRecoveryPollCq
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_poll_cq
    - ibvWcOpcodeStr
    - INFO
    - ncclIbPortRecoveryHandleCompletionReceiver
    - ncclIbPortRecoveryHandleCompletionSender
    - ibvWcStatusStr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryPollCq(struct ncclIbPortRecoveryContext*
      recoveryContext, bool* success)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbResiliencyPortRecoveryAliveMsgSequenceSize
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:679,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:681,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:685,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:697,1
    - Dst: ibv_post_send
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:703,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:704,1
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:710,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - recoveryContext
    - success
    argTypes:
    - struct ncclIbPortRecoveryContext*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 713
    functionName: ncclIbPortRecoveryPostAliveMessages
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - INFO
    - clockNano
    - ncclParamIbResiliencyPortRecoveryAliveMsgSequenceSize
    - memset
    - ibv_post_send
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryPostAliveMessages(struct ncclIbPortRecoveryContext*
      recoveryContext, bool* success)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:718,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:726,1
    - Dst: ibv_post_send
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:730,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - recoveryContext
    - success
    argTypes:
    - ncclIbPortRecoveryContext*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 738
    functionName: ncclIbPortRecoveryPostAck
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - ibv_post_send
    - INFO
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryPostAck(ncclIbPortRecoveryContext* recoveryContext,
      bool* success)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:745,1
    - Dst: ncclParamIbResiliencyPortRecoveryAliveMsgBatchInterval
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:746,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:751,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:753,1
    - Dst: ncclIbPortRecoveryPostAliveMessages
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:753,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:755,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:763,1
    - Dst: ncclIbPortRecoveryPollCq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:763,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:765,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:770,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - recoveryContext
    - outResult
    argTypes:
    - ncclIbPortRecoveryContext*
    - enum ncclIbPortRecoveryStateProgressResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 740
    functionDepth: 4
    functionLinenumber: 740
    functionLinenumberEnd: 777
    functionName: ncclIbPortRecoveryProgressAliveMessagesSender
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - INFO
    - clockNano
    - ncclIbPortRecoveryPostAliveMessages
    - ncclParamIbResiliencyPortRecoveryAliveMsgBatchInterval
    - ncclIbPortRecoveryPollCq
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryProgressAliveMessagesSender(ncclIbPortRecoveryContext*
      recoveryContext, enum ncclIbPortRecoveryStateProgressResult* outResult)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:783,1
    - Dst: ncclIbPortRecoveryPollCq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:783,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:785,1
    - Dst: ncclParamIbResiliencyPortRecoveryAliveMsgSequenceSize
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:789,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:794,1
    - Dst: ncclIbPortRecoveryDrainCqAndPostReceiveWRs
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:794,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:796,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:800,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:801,1
    - Dst: ncclIbPortRecoveryQpsRestore
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:801,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:803,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:807,1
    - Dst: ncclIbPortRecoveryPostAck
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:807,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:809,1
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:815,1
    - Dst: ncclParamIbResiliencyPortRecoveryAliveMsgTimeout
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:816,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:818,1
    - Dst: ncclParamIbResiliencyPortRecoveryAttemptsMax
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:819,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:820,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:831,1
    - Dst: ncclIbPortRecoveryPollCq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:831,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:833,1
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:840,1
    - Dst: ncclParamIbResiliencyPortRecoveryAckTimeout
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:841,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:843,1
    - Dst: ncclParamIbResiliencyPortRecoveryAttemptsMax
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:844,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:845,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:854,1
    - Dst: ncclIbPortRecoveryPostRecvWorkRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:856,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:858,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 79
    argCount: 2
    argNames:
    - recoveryContext
    - outResult
    argTypes:
    - ncclIbPortRecoveryContext*
    - enum ncclIbPortRecoveryStateProgressResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 779
    functionDepth: 4
    functionLinenumber: 779
    functionLinenumberEnd: 869
    functionName: ncclIbPortRecoveryProgressAliveMessagesReceiver
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbResiliencyPortRecoveryAckTimeout
    - INFO
    - clockNano
    - ncclParamIbResiliencyPortRecoveryAttemptsMax
    - ncclIbPortRecoveryQpsRestore
    - ncclIbPortRecoveryPostAck
    - ncclIbPortRecoveryDrainCqAndPostReceiveWRs
    - ncclParamIbResiliencyPortRecoveryAliveMsgSequenceSize
    - ncclIbPortRecoveryPostRecvWorkRequest
    - ncclIbPortRecoveryPollCq
    - ncclParamIbResiliencyPortRecoveryAliveMsgTimeout
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryProgressAliveMessagesReceiver(ncclIbPortRecoveryContext*
      recoveryContext, enum ncclIbPortRecoveryStateProgressResult* outResult)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:874,1
    - Dst: ncclIbPortRecoveryProgressAliveMessagesSender
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:874,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:876,1
    - Dst: ncclIbPortRecoveryProgressAliveMessagesReceiver
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:876,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:880,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:883,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:887,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - recoveryContext
    argTypes:
    - ncclIbPortRecoveryContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 871
    functionDepth: 5
    functionLinenumber: 871
    functionLinenumberEnd: 895
    functionName: ncclIbPortRecoveryProgressAliveMessages
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclIbPortRecoveryProgressAliveMessagesReceiver
    - NCCLCHECK
    - WARN
    - ncclIbPortRecoveryProgressAliveMessagesSender
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryProgressAliveMessages(ncclIbPortRecoveryContext*
      recoveryContext)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:900,1
    - Dst: ncclIbPortRecoveryPollCq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:900,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:902,1
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:908,1
    - Dst: ncclParamIbResiliencyPortRecoveryAckTimeout
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:909,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:911,1
    - Dst: ncclParamIbResiliencyPortRecoveryAttemptsMax
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:912,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:913,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:929,1
    - Dst: ncclIbPortRecoveryQpsRestore
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:929,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:931,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:935,1
    - Dst: ncclIbPortRecoveryPostAck
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:935,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:937,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:945,1
    - Dst: ncclIbPortRecoveryPollCq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:945,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:947,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 2
    argNames:
    - recoveryContext
    - outResult
    argTypes:
    - ncclIbPortRecoveryContext*
    - enum ncclIbPortRecoveryStateProgressResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 897
    functionDepth: 4
    functionLinenumber: 897
    functionLinenumberEnd: 958
    functionName: ncclIbPortRecoveryProgressAckSender
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbResiliencyPortRecoveryAckTimeout
    - INFO
    - clockNano
    - ncclParamIbResiliencyPortRecoveryAttemptsMax
    - ncclIbPortRecoveryQpsRestore
    - ncclIbPortRecoveryPostAck
    - ncclIbPortRecoveryPollCq
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryProgressAckSender(ncclIbPortRecoveryContext*
      recoveryContext, enum ncclIbPortRecoveryStateProgressResult* outResult)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:962,1
    - Dst: ncclIbPortRecoveryPollCq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:962,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:964,1
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:970,1
    - Dst: ncclParamIbResiliencyPortRecoveryAckTimeout
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:971,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:973,1
    - Dst: ncclParamIbResiliencyPortRecoveryAttemptsMax
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:974,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:983,1
    - Dst: ncclIbPortRecoveryDrainCqAndPostReceiveWRs
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:983,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:985,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - recoveryContext
    - outResult
    argTypes:
    - ncclIbPortRecoveryContext*
    - enum ncclIbPortRecoveryStateProgressResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 960
    functionDepth: 4
    functionLinenumber: 960
    functionLinenumberEnd: 996
    functionName: ncclIbPortRecoveryProgressAckReceiver
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbResiliencyPortRecoveryAckTimeout
    - INFO
    - clockNano
    - ncclParamIbResiliencyPortRecoveryAttemptsMax
    - ncclIbPortRecoveryDrainCqAndPostReceiveWRs
    - ncclIbPortRecoveryPollCq
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryProgressAckReceiver(ncclIbPortRecoveryContext*
      recoveryContext, enum ncclIbPortRecoveryStateProgressResult* outResult)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1001,1
    - Dst: ncclIbPortRecoveryProgressAckSender
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1001,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1003,1
    - Dst: ncclIbPortRecoveryProgressAckReceiver
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1003,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1007,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1011,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1015,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - recoveryContext
    argTypes:
    - ncclIbPortRecoveryContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 998
    functionDepth: 5
    functionLinenumber: 998
    functionLinenumberEnd: 1023
    functionName: ncclIbPortRecoveryProgressAck
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - ncclIbPortRecoveryProgressAckReceiver
    - INFO
    - ncclIbPortRecoveryProgressAckSender
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryProgressAck(ncclIbPortRecoveryContext*
      recoveryContext)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1026,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1027,1
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1030,1
    - Dst: ncclParamIbResiliencyPortRecoveryStartDelay
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1031,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1035,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1043,1
    - Dst: ncclIbPortRecoveryProgressAliveMessages
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1043,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1047,1
    - Dst: ncclIbPortRecoveryProgressAck
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1047,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1051,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1054,1
    - Dst: state::store
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1055,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1062,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1065,1
    - Dst: state::store
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1066,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - recoveryContext
    - outDone
    argTypes:
    - ncclIbPortRecoveryContext*
    - bool*
    assertStmts:
    - condition: (recoveryContext)
      pos:
        line_end: 1025
        line_start: 1025
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (outDone)
      pos:
        line_end: 1026
        line_start: 1026
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    constantsTouched: []
    func_position:
      end: 1072
      start: 1025
    functionDepth: 6
    functionLinenumber: 1025
    functionLinenumberEnd: 1072
    functionName: ncclIbPortRecoveryContextProgress
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - INFO
    - clockNano
    - assert
    - state::store
    - ncclIbPortRecoveryProgressAck
    - ncclParamIbResiliencyPortRecoveryStartDelay
    - ncclIbPortRecoveryProgressAliveMessages
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryContextProgress(ncclIbPortRecoveryContext*
      recoveryContext, bool* outDone)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1078,1
    - Dst: end
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1078,1
    - Dst: begin
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1083,1
    - Dst: end
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1083,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1086,1
    - Dst: ncclIbPortRecoveryContextDestroy
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1090,1
    - Dst: erase
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1091,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' closeRequests'
    - ' recoveryQueue'
    argTypes:
    - std::vector<ncclIbPortRecoveryCloseRequest*>
    - std::list<ncclIbPortRecoveryContext*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1101
    functionName: ncclIbPortRecoveryHandleCloseRequests
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - INFO
    - begin
    - erase
    - ncclIbPortRecoveryContextDestroy
    - end
    linkageType: ''
    returnType: void
    signature: "void ncclIbPortRecoveryHandleCloseRequests(std::vector<ncclIbPortRecoveryCloseRequest*>&
      closeRequests,\n                                                 std::list<ncclIbPortRecoveryContext*>&
      recoveryQueue)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wait
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1118,1
    - Dst: load
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1119,1
    - Dst: empty
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1120,1
    - Dst: std::list::empty
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1121,1
    - Dst: empty
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1122,1
    - Dst: std::list::splice
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1126,1
    - Dst: std::list::end
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1126,1
    - Dst: std::vector::swap
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1129,1
    - Dst: std::vector::empty
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1133,1
    - Dst: ncclIbPortRecoveryHandleCloseRequests
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1134,1
    - Dst: notify_all
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1143,1
    - Dst: load
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1148,1
    - Dst: std::list::begin
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1151,1
    - Dst: std::list::end
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1151,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1154,1
    - Dst: ncclIbPortRecoveryContextProgress
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1154,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1156,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1157,1
    - Dst: ncclIbPortRecoveryContextDestroy
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1157,1
    - Dst: std::list::erase
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1158,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1167,1
    - Dst: empty
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1167,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1170,1
    - Dst: empty
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1170,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1171,1
    - Dst: std::list::empty
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1171,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1173,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (recoveryInbox.empty())
      pos:
        line_end: 1169
        line_start: 1169
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (recoveryCloseRequests.empty())
      pos:
        line_end: 1166
        line_start: 1166
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (recoveryQueue.empty())
      pos:
        line_end: 1170
        line_start: 1170
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    constantsTouched: []
    func_position:
      end: 1175
      start: 1107
    functionDepth: 7
    functionLinenumber: 1107
    functionLinenumberEnd: 1175
    functionName: ncclIbPortRecoveryAsyncThreadMain
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - wait
    - std::vector::empty
    - ncclIbPortRecoveryContextProgress
    - INFO
    - std::list::erase
    - notify_all
    - std::vector::swap
    - empty
    - std::list::end
    - std::list::empty
    - std::list::splice
    - assert
    - load
    - ncclIbPortRecoveryContextDestroy
    - std::list::begin
    - ncclIbPortRecoveryHandleCloseRequests
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryAsyncThreadMain()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1182,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - resCtx
    argTypes:
    - struct ncclIbResiliency*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1187
    functionName: ncclIbPortRecoveryInit
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - load
    - INFO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryInit(struct ncclIbResiliency* resCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1193,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1194,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1197,1
    - Dst: push_back
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1207,1
    - Dst: notify_one
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1211,1
    - Dst: wait
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1216,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - resCtx
    argTypes:
    - struct ncclIbResiliency*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1223
    functionName: ncclIbPortRecoveryClose
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - wait
    - INFO
    - push_back
    - notify_one
    - load
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryClose(struct ncclIbResiliency* resCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbResiliencyPortRecovery
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1226,1
    - Dst: compare_exchange_strong
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1234,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1238,1
    - Dst: std::thread
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1239,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1243
    functionName: ncclIbPortRecoveryThreadStart
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 1
    functionsReached:
    - std::thread
    - INFO
    - ncclParamIbResiliencyPortRecovery
    - compare_exchange_strong
    - ncclSetThreadName
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryThreadStart()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbResiliencyPortRecovery
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1246,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1254,1
    - Dst: store
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1256,1
    - Dst: notify_one
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1257,1
    - Dst: joinable
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1259,1
    - Dst: join
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1260,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1265
    functionName: ncclIbPortRecoveryThreadStop
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 1
    functionsReached:
    - store
    - INFO
    - joinable
    - join
    - ncclParamIbResiliencyPortRecovery
    - notify_one
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryThreadStop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1268,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1269,1
    - Dst: state::load
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1271,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1272,1
    - Dst: ncclIbPortRecoveryContextInit
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1275,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1277,1
    - Dst: push_back
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1285,1
    - Dst: notify_one
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1289,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc:1291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - resCtx
    - devIndex
    argTypes:
    - struct ncclIbResiliency*
    - int
    assertStmts:
    - condition: (resCtx != NULL)
      pos:
        line_end: 1267
        line_start: 1267
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (resCtx->recoveryEnabled)
      pos:
        line_end: 1268
        line_start: 1268
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - condition: (devState == ncclIbResiliencyDevStateRecoveryInProgress)
      pos:
        line_end: 1271
        line_start: 1271
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    constantsTouched: []
    func_position:
      end: 1293
      start: 1267
    functionDepth: 3
    functionLinenumber: 1267
    functionLinenumberEnd: 1293
    functionName: ncclIbPortRecoveryHandleFailure
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclIbPortRecoveryContextInit
    - push_back
    - assert
    - state::load
    - notify_one
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPortRecoveryHandleFailure(struct ncclIbResiliency*
      resCtx, int devIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbAsyncEvents
      Src: /src/nccl/src/transport/net_ib/common.cc:31,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/transport/net_ib/common.cc:31,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/common.cc:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - stat
    - funcName
    argTypes:
    - struct ncclIbStats*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: ncclIbStatsCheckFatalCount
    functionSourceFile: /src/nccl/src/transport/net_ib/common.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclParamIbAsyncEvents
    - COMPILER_ATOMIC_LOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbStatsCheckFatalCount(struct ncclIbStats* stat, const
      char* funcName)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - base
    - devIndex
    argTypes:
    - ncclIbNetCommBase*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: ncclIbGetNetCommDevBase
    functionSourceFile: /src/nccl/src/transport/net_ib/common.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct ncclIbNetCommDevBase
    signature: struct ncclIbNetCommDevBase * ncclIbGetNetCommDevBase(ncclIbNetCommBase*
      base, int devIndex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/common.cc:55,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/common.cc:56,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/common.cc:57,1
    - Dst: ncclParamIbSplitDataOnQps
      Src: /src/nccl/src/transport/net_ib/common.cc:60,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/common.cc:65,1
    - Dst: ncclIbResiliencyInit
      Src: /src/nccl/src/transport/net_ib/common.cc:65,1
    - Dst: ncclParamIbReceiverSideMatchingScheme
      Src: /src/nccl/src/transport/net_ib/common.cc:66,1
    - Dst: ncclParamIbReceiverSideMatchingScheme
      Src: /src/nccl/src/transport/net_ib/common.cc:66,1
    - Dst: ncclParamIbOooRq
      Src: /src/nccl/src/transport/net_ib/common.cc:68,1
    - Dst: ncclParamIbResiliencyPortFailover
      Src: /src/nccl/src/transport/net_ib/common.cc:68,1
    - Dst: ncclParamIbReceiverSideMatchingScheme
      Src: /src/nccl/src/transport/net_ib/common.cc:70,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/common.cc:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - baseComm
    - isSend
    argTypes:
    - struct ncclIbNetCommBase*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 76
    functionName: ncclIbBaseCommInit
    functionSourceFile: /src/nccl/src/transport/net_ib/common.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbOooRq
    - INFO
    - ncclIbResiliencyInit
    - ncclParamIbResiliencyPortFailover
    - memset
    - ncclParamIbReceiverSideMatchingScheme
    - ncclParamIbSplitDataOnQps
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbBaseCommInit(struct ncclIbNetCommBase* baseComm,
      bool isSend)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/common.cc:79,1
    - Dst: ncclIbBaseCommInit
      Src: /src/nccl/src/transport/net_ib/common.cc:79,1
    - Dst: ncclParamIbPrepostReceiveWorkRequests
      Src: /src/nccl/src/transport/net_ib/common.cc:87,1
    - Dst: ncclParamIbPrepostReceiveWorkRequests
      Src: /src/nccl/src/transport/net_ib/common.cc:87,1
    - Dst: ncclParamIbPrepostReceiveWorkRequests
      Src: /src/nccl/src/transport/net_ib/common.cc:90,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/common.cc:91,1
    - Dst: ncclParamIbOooRq
      Src: /src/nccl/src/transport/net_ib/common.cc:95,1
    - Dst: ncclParamIbPrepostReceiveWorkRequests
      Src: /src/nccl/src/transport/net_ib/common.cc:96,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/common.cc:97,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/common.cc:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - recvComm
    argTypes:
    - struct ncclIbRecvComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 104
    functionName: ncclIbRecvCommInit
    functionSourceFile: /src/nccl/src/transport/net_ib/common.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbOooRq
    - INFO
    - ncclIbBaseCommInit
    - ncclParamIbPrepostReceiveWorkRequests
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRecvCommInit(struct ncclIbRecvComm* recvComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/common.cc:107,1
    - Dst: ncclIbBaseCommInit
      Src: /src/nccl/src/transport/net_ib/common.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sendComm
    argTypes:
    - struct ncclIbSendComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: ncclIbSendCommInit
    functionSourceFile: /src/nccl/src/transport/net_ib/common.cc
    functionUses: 0
    functionsReached:
    - ncclIbBaseCommInit
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbSendCommInit(struct ncclIbSendComm* sendComm)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: wrap_ibv_get_async_event
      Src: /src/nccl/src/transport/net_ib/common.cc:116,1
    - Dst: wrap_ibv_event_type_str
      Src: /src/nccl/src/transport/net_ib/common.cc:121,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/common.cc:125,1
    - Dst: ncclIbDevFatalError
      Src: /src/nccl/src/transport/net_ib/common.cc:126,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/common.cc:130,1
    - Dst: ncclIbCqFatalError
      Src: /src/nccl/src/transport/net_ib/common.cc:131,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/common.cc:137,1
    - Dst: ncclIbQpFatalError
      Src: /src/nccl/src/transport/net_ib/common.cc:138,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/common.cc:142,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/common.cc:145,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/common.cc:159,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/common.cc:164,1
    - Dst: wrap_ibv_ack_async_event
      Src: /src/nccl/src/transport/net_ib/common.cc:168,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 171
    functionName: ncclIbAsyncThreadMain
    functionSourceFile: /src/nccl/src/transport/net_ib/common.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_get_async_event
    - ncclIbQpFatalError
    - ncclIbDevFatalError
    - wrap_ibv_ack_async_event
    - wrap_ibv_event_type_str
    - WARN
    - ncclIbCqFatalError
    linkageType: ''
    returnType: void
    signature: void * ncclIbAsyncThreadMain(void* args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ll
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: NCCL_IB_LLSTR
    functionSourceFile: /src/nccl/src/transport/net_ib/common.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_IB_LLSTR(ll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/common.h:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - commBase
    - devIndex
    - qpIndex
    - qp
    argTypes:
    - struct ncclIbNetCommBase*
    - int
    - int
    - ncclIbQp**
    assertStmts:
    - condition: (devIndex >= 0 && devIndex < commBase->vProps.ndevs)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/nccl/src/transport/net_ib/common.h
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: ncclIbCommBaseGetQpByIndex
    functionSourceFile: /src/nccl/src/transport/net_ib/common.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCommBaseGetQpByIndex(struct ncclIbNetCommBase* commBase,
      int devIndex, int qpIndex, ncclIbQp** qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/common.h:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - baseComm
    - id
    - qpIndex
    - outQp
    - outQpIndex
    argTypes:
    - struct ncclIbNetCommBase*
    - uint64_t
    - uint8_t
    - ncclIbQp**
    - int*
    assertStmts:
    - condition: (*outQp != NULL)
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/nccl/src/transport/net_ib/common.h
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: ncclIbCommBaseGetQpForRequest
    functionSourceFile: /src/nccl/src/transport/net_ib/common.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCommBaseGetQpForRequest(struct ncclIbNetCommBase*
      baseComm, const uint64_t id, const uint8_t qpIndex, ncclIbQp** outQp, int* outQpIndex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/common.h:386,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/common.h:387,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/common.h:388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - commBase
    - devIndex
    - qpNum
    - qp
    - qpIndex
    argTypes:
    - struct ncclIbNetCommBase*
    - int
    - uint32_t
    - ncclIbQp**
    - int*
    assertStmts:
    - condition: (devIndex >= 0 && devIndex < commBase->vProps.ndevs)
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/nccl/src/transport/net_ib/common.h
    - condition: (qp != NULL)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/nccl/src/transport/net_ib/common.h
    constantsTouched: []
    func_position:
      end: 400
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 400
    functionName: ncclIbCommBaseGetQpByQpNum
    functionSourceFile: /src/nccl/src/transport/net_ib/common.h
    functionUses: 0
    functionsReached:
    - TRACE
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCommBaseGetQpByQpNum(struct ncclIbNetCommBase* commBase,
      int devIndex, uint32_t qpNum, ncclIbQp** qp, int* qpIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/common.h:406,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/common.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - baseComm
    argTypes:
    - struct ncclIbNetCommBase*
    assertStmts:
    - condition: (baseComm->nDataQps != -1)
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/nccl/src/transport/net_ib/common.h
    - condition: (baseComm->nqps != -1)
      pos:
        line_end: 406
        line_start: 406
        source_file: /src/nccl/src/transport/net_ib/common.h
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: ncclIbCommBaseGetNqpsPerRequest
    functionSourceFile: /src/nccl/src/transport/net_ib/common.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int ncclIbCommBaseGetNqpsPerRequest(struct ncclIbNetCommBase* baseComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/common.h:413,1
    - Dst: wrap_ibv_post_recv
      Src: /src/nccl/src/transport/net_ib/common.h:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - qp
    - wr
    argTypes:
    - struct ibv_qp*
    - struct ibv_recv_wr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 415
    functionName: ncclIbPostRecvWorkRequest
    functionSourceFile: /src/nccl/src/transport/net_ib/common.h
    functionUses: 0
    functionsReached:
    - wrap_ibv_post_recv
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPostRecvWorkRequest(struct ibv_qp* qp, struct ibv_recv_wr*
      wr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/transport/net_ib/common.h:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stat
    argTypes:
    - struct ncclIbStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: ncclIbStatsInit
    functionSourceFile: /src/nccl/src/transport/net_ib/common.h
    functionUses: 1
    functionsReached:
    - COMPILER_ATOMIC_STORE
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbStatsInit(struct ncclIbStats* stat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_FETCH_ADD
      Src: /src/nccl/src/transport/net_ib/common.h:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stat
    argTypes:
    - struct ncclIbStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 534
    functionName: ncclIbStatsFatalError
    functionSourceFile: /src/nccl/src/transport/net_ib/common.h
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_FETCH_ADD
    linkageType: ''
    returnType: void
    signature: void ncclIbStatsFatalError(struct ncclIbStats* stat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbStatsFatalError
      Src: /src/nccl/src/transport/net_ib/common.h:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ibv_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: ncclIbQpFatalError
    functionSourceFile: /src/nccl/src/transport/net_ib/common.h
    functionUses: 1
    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/common.h:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cq
    argTypes:
    - struct ibv_cq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 540
    functionName: ncclIbCqFatalError
    functionSourceFile: /src/nccl/src/transport/net_ib/common.h
    functionUses: 1
    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/common.h:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct ncclIbDev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 543
    functionName: ncclIbDevFatalError
    functionSourceFile: /src/nccl/src/transport/net_ib/common.h
    functionUses: 1
    functionsReached:
    - ncclIbStatsFatalError
    linkageType: ''
    returnType: void
    signature: void ncclIbDevFatalError(struct ncclIbDev* dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:64,1
    - Dst: wrap_ibv_alloc_pd
      Src: /src/nccl/src/transport/net_ib/connect.cc:64,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:69,1
    - Dst: wrap_ibv_create_cq
      Src: /src/nccl/src/transport/net_ib/connect.cc:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ibDevN
    - base
    - cq_context
    - cqSize
    argTypes:
    - int
    - struct ncclIbNetCommDevBase*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: ncclIbInitCommDevBase
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_create_cq
    - wrap_ibv_alloc_pd
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbInitCommDevBase(int ibDevN, struct ncclIbNetCommDevBase*
      base, void* cq_context, int cqSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:75,1
    - Dst: wrap_ibv_destroy_cq
      Src: /src/nccl/src/transport/net_ib/connect.cc:75,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:79,1
    - Dst: wrap_ibv_dealloc_pd
      Src: /src/nccl/src/transport/net_ib/connect.cc:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct ncclIbNetCommDevBase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: ncclIbDestroyBase
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_destroy_cq
    - wrap_ibv_dealloc_pd
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbDestroyBase(struct ncclIbNetCommDevBase* base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be64toh
      Src: /src/nccl/src/transport/net_ib/connect.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - subnet_prefix
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: ncclIbExtractLocalSubnetPrefix
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.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/connect.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gid
    argTypes:
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: ncclIbExtractFlid
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: int
    signature: int ncclIbExtractFlid (union ibv_gid *gid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/transport/net_ib/connect.cc:99,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/connect.cc:100,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:104,1
    - Dst: strcmp
      Src: /src/nccl/src/transport/net_ib/connect.cc:106,1
    - Dst: strcmp
      Src: /src/nccl/src/transport/net_ib/connect.cc:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: envIbAddrFamily
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.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/connect.cc:121,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/connect.cc:122,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:126,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib/connect.cc:129,1
    - Dst: strstr
      Src: /src/nccl/src/transport/net_ib/connect.cc:131,1
    - Dst: inet_pton
      Src: /src/nccl/src/transport/net_ib/connect.cc:137,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:138,1
    - Dst: strtol
      Src: /src/nccl/src/transport/net_ib/connect.cc:142,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:144,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:148,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - af
    - mask
    argTypes:
    - sa_family_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 154
    functionName: envIbAddrRange
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - INFO
    - strlen
    - inet_pton
    - strstr
    - snprintf
    - strtol
    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/connect.cc:158,1
    - Dst: htonl
      Src: /src/nccl/src/transport/net_ib/connect.cc:159,1
    - Dst: htonl
      Src: /src/nccl/src/transport/net_ib/connect.cc:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - gid
    argTypes:
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: getGidAddrFamily
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.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/connect.cc:179,1
    - Dst: NETMASK
      Src: /src/nccl/src/transport/net_ib/connect.cc:193,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: 203
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 203
    functionName: matchGidAddrPrefix
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.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: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: NETMASK
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NETMASK(bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/nccl/src/transport/net_ib/connect.cc:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - gid
    argTypes:
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: configuredGid
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.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/connect.cc:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - gid
    argTypes:
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: linkLocalGid
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.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/connect.cc:223,1
    - Dst: linkLocalGid
      Src: /src/nccl/src/transport/net_ib/connect.cc:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - gid
    argTypes:
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: validGid
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.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/connect.cc:229,1
    - Dst: open
      Src: /src/nccl/src/transport/net_ib/connect.cc:231,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:233,1
    - Dst: strerror
      Src: /src/nccl/src/transport/net_ib/connect.cc:233,1
    - Dst: read
      Src: /src/nccl/src/transport/net_ib/connect.cc:236,1
    - Dst: close
      Src: /src/nccl/src/transport/net_ib/connect.cc:237,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:243,1
    - Dst: strerror
      Src: /src/nccl/src/transport/net_ib/connect.cc:243,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/connect.cc:247,1
    - Dst: strncmp
      Src: /src/nccl/src/transport/net_ib/connect.cc:248,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/connect.cc:248,1
    - Dst: strncmp
      Src: /src/nccl/src/transport/net_ib/connect.cc:248,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/connect.cc:248,1
    - Dst: strncmp
      Src: /src/nccl/src/transport/net_ib/connect.cc:250,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/connect.cc:250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - deviceName
    - portNum
    - gidIndex
    - version
    argTypes:
    - char*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 256
    functionName: ncclIbRoceGetVersionNum
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - read
    - open
    - close
    - strncmp
    - strerror
    - strlen
    - snprintf
    - WARN
    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/connect.cc:260,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib/connect.cc:260,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:261,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib/connect.cc:261,1
    - Dst: getGidAddrFamily
      Src: /src/nccl/src/transport/net_ib/connect.cc:264,1
    - Dst: getGidAddrFamily
      Src: /src/nccl/src/transport/net_ib/connect.cc:265,1
    - Dst: matchGidAddrPrefix
      Src: /src/nccl/src/transport/net_ib/connect.cc:266,1
    - Dst: validGid
      Src: /src/nccl/src/transport/net_ib/connect.cc:271,1
    - Dst: wrap_ibv_get_device_name
      Src: /src/nccl/src/transport/net_ib/connect.cc:276,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:277,1
    - Dst: ncclIbRoceGetVersionNum
      Src: /src/nccl/src/transport/net_ib/connect.cc:277,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:278,1
    - Dst: ncclIbRoceGetVersionNum
      Src: /src/nccl/src/transport/net_ib/connect.cc:278,1
    - Dst: validGid
      Src: /src/nccl/src/transport/net_ib/connect.cc:279,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: 285
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 285
    functionName: ncclUpdateGidIndex
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - getGidAddrFamily
    - validGid
    - wrap_ibv_query_gid
    - wrap_ibv_get_device_name
    - ncclIbRoceGetVersionNum
    - matchGidAddrPrefix
    - NCCLCHECK
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbRoutableFlidIbGidIndex
      Src: /src/nccl/src/transport/net_ib/connect.cc:293,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:295,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib/connect.cc:295,1
    - Dst: ncclIbExtractFlid
      Src: /src/nccl/src/transport/net_ib/connect.cc:296,1
    - Dst: ncclParamIbGidIndex
      Src: /src/nccl/src/transport/net_ib/connect.cc:306,1
    - Dst: envIbAddrFamily
      Src: /src/nccl/src/transport/net_ib/connect.cc:311,1
    - Dst: ncclParamIbRoceVersionNum
      Src: /src/nccl/src/transport/net_ib/connect.cc:312,1
    - Dst: envIbAddrRange
      Src: /src/nccl/src/transport/net_ib/connect.cc:314,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:318,1
    - Dst: ncclUpdateGidIndex
      Src: /src/nccl/src/transport/net_ib/connect.cc:318,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: 322
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 322
    functionName: ncclIbGetGidIndex
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbGidIndex
    - envIbAddrFamily
    - ncclIbExtractFlid
    - ncclParamIbRoutableFlidIbGidIndex
    - wrap_ibv_query_gid
    - ncclParamIbRoceVersionNum
    - ncclUpdateGidIndex
    - envIbAddrRange
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbGetGidIndex(struct ibv_context *context, uint8_t
      portNum, struct ibv_port_attr* portAttr, int *gidIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:326,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:331,1
    - Dst: wrap_ibv_modify_qp
      Src: /src/nccl/src/transport/net_ib/connect.cc:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ncclIbQp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: ncclIbQpInit
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 3
    functionsReached:
    - wrap_ibv_modify_qp
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbQpInit(struct ncclIbQp* qp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:338,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:339,1
    - Dst: ncclParamIbUseInline
      Src: /src/nccl/src/transport/net_ib/connect.cc:348,1
    - Dst: wrap_mlx5dv_create_qp
      Src: /src/nccl/src/transport/net_ib/connect.cc:357,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - createQpAttrs
    - qp
    argTypes:
    - struct ncclIbQpCreateAttr*
    - struct ncclIbQp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 360
    functionName: ncclIbCreateQpMlx5
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - WARN
    - memset
    - wrap_mlx5dv_create_qp
    - ncclParamIbUseInline
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCreateQpMlx5(struct ncclIbQpCreateAttr* createQpAttrs,
      struct ncclIbQp* qp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:364,1
    - Dst: ncclIbCreateQpMlx5
      Src: /src/nccl/src/transport/net_ib/connect.cc:364,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:368,1
    - Dst: ncclParamIbUseInline
      Src: /src/nccl/src/transport/net_ib/connect.cc:377,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:378,1
    - Dst: wrap_ibv_create_qp
      Src: /src/nccl/src/transport/net_ib/connect.cc:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - qp
    - createQpAttrs
    argTypes:
    - struct ncclIbQp*
    - struct ncclIbQpCreateAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 380
    functionName: ncclIbQpCreate
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 2
    functionsReached:
    - memset
    - ncclParamIbUseInline
    - ncclIbCreateQpMlx5
    - wrap_ibv_create_qp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbQpCreate(struct ncclIbQp* qp, struct ncclIbQpCreateAttr*
      createQpAttrs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:386,1
    - Dst: ncclIbExtractLocalSubnetPrefix
      Src: /src/nccl/src/transport/net_ib/connect.cc:406,1
    - Dst: ncclIbExtractLocalSubnetPrefix
      Src: /src/nccl/src/transport/net_ib/connect.cc:407,1
    - Dst: ncclIbExtractFlid
      Src: /src/nccl/src/transport/net_ib/connect.cc:411,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:413,1
    - Dst: ncclIbExtractFlid
      Src: /src/nccl/src/transport/net_ib/connect.cc:416,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/connect.cc:428,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:429,1
    - Dst: wrap_ibv_modify_qp
      Src: /src/nccl/src/transport/net_ib/connect.cc:429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ncclIbQp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 431
    functionName: ncclIbQpRtr
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 3
    functionsReached:
    - TRACE
    - ncclIbExtractFlid
    - memset
    - ncclIbExtractLocalSubnetPrefix
    - wrap_ibv_modify_qp
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbQpRtr(struct ncclIbQp* qp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:437,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:447,1
    - Dst: wrap_ibv_modify_qp
      Src: /src/nccl/src/transport/net_ib/connect.cc:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ncclIbQp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 449
    functionName: ncclIbQpRts
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 3
    functionsReached:
    - wrap_ibv_modify_qp
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbQpRts(struct ncclIbQp* qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:453,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:455,1
    - Dst: wrap_ibv_modify_qp
      Src: /src/nccl/src/transport/net_ib/connect.cc:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ncclIbQp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 457
    functionName: ncclIbQpReset
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 1
    functionsReached:
    - wrap_ibv_modify_qp
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbQpReset(struct ncclIbQp* qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:461,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:463,1
    - Dst: wrap_ibv_modify_qp
      Src: /src/nccl/src/transport/net_ib/connect.cc:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ncclIbQp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 465
    functionName: ncclIbQpError
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 1
    functionsReached:
    - wrap_ibv_modify_qp
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbQpError(struct ncclIbQp* qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:470,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_ib/connect.cc:470,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:473,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:476,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:476,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:477,1
    - Dst: ncclSocketListen
      Src: /src/nccl/src/transport/net_ib/connect.cc:477,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:478,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_ib/connect.cc:478,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_ib/connect.cc:483,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/connect.cc:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - dev
    - opaqueHandle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 486
    functionName: ncclIbListen
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - ncclSocketListen
    - ncclSocketInit
    - ncclSocketGetAddr
    - ncclSocketClose
    - free
    - NCCLCHECKGOTO
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbListen(void* ctx, int dev, void* opaqueHandle, void**
      listenComm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:501,1
    - Dst: ncclParamIbOooRq
      Src: /src/nccl/src/transport/net_ib/connect.cc:522,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:524,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:529,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:535,1
    - Dst: ncclIbQpCreate
      Src: /src/nccl/src/transport/net_ib/connect.cc:535,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:536,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib/connect.cc:544,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib/connect.cc:556,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:559,1
    - Dst: ncclIbQpInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:559,1
    - Dst: ncclParamIbEceEnable
      Src: /src/nccl/src/transport/net_ib/connect.cc:561,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:565,1
    - Dst: wrap_ibv_query_ece
      Src: /src/nccl/src/transport/net_ib/connect.cc:565,1
    - Dst: ncclIbResiliencySenderCreateQps
      Src: /src/nccl/src/transport/net_ib/connect.cc:577,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 2
    argNames:
    - comm
    - meta
    argTypes:
    - ncclIbSendComm*
    - struct ncclIbConnectionMetadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 581
    functionName: ncclIbSenderQpsCreate
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbOooRq
    - INFO
    - ncclParamIbPkey
    - ncclParamIbEceEnable
    - wrap_ibv_query_ece
    - ncclIbQpInit
    - ncclIbResiliencySenderCreateQps
    - memset
    - ncclIbQpCreate
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbSenderQpsCreate(ncclIbSendComm* comm, struct ncclIbConnectionMetadata*
      meta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:602,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:604,1
    - Dst: wrap_ibv_set_ece
      Src: /src/nccl/src/transport/net_ib/connect.cc:604,1
    - Dst: min
      Src: /src/nccl/src/transport/net_ib/connect.cc:614,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:624,1
    - Dst: ncclIbQpRtr
      Src: /src/nccl/src/transport/net_ib/connect.cc:624,1
    - Dst: ncclParamIbTimeout
      Src: /src/nccl/src/transport/net_ib/connect.cc:626,1
    - Dst: ncclParamIbRetryCnt
      Src: /src/nccl/src/transport/net_ib/connect.cc:627,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:628,1
    - Dst: ncclIbQpRts
      Src: /src/nccl/src/transport/net_ib/connect.cc:628,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:632,1
    - Dst: ncclIbResiliencySenderQpsToRts
      Src: /src/nccl/src/transport/net_ib/connect.cc:632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - comm
    - remMeta
    argTypes:
    - ncclIbSendComm*
    - struct ncclIbConnectionMetadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 636
    functionName: ncclIbSenderQpsToRts
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbTimeout
    - INFO
    - wrap_ibv_set_ece
    - min
    - ncclParamIbRetryCnt
    - ncclIbQpRts
    - ncclIbQpRtr
    - ncclIbResiliencySenderQpsToRts
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbSenderQpsToRts(ncclIbSendComm* comm, struct ncclIbConnectionMetadata*
      remMeta)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 642
    functionName: ncclIbGetTrafficClass
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclIbGetTrafficClass(void* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - trafficClass
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 646
    functionName: ncclIbSetTrafficClass
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclIbSetTrafficClass(void* ctx, int trafficClass)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:665,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:670,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/connect.cc:670,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:671,1
    - Dst: ncclIbSendCommInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:671,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:672,1
    - Dst: ncclIbStatsInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:672,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:673,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:673,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:676,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/transport/net_ib/connect.cc:676,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:680,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_ib/connect.cc:680,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:686,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:695,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/connect.cc:695,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:696,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:705,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:709,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib/connect.cc:709,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:716,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib/connect.cc:716,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:721,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:722,1
    - Dst: ncclParamIbQpsPerConn
      Src: /src/nccl/src/transport/net_ib/connect.cc:728,1
    - Dst: ncclParamIbQpsPerConn
      Src: /src/nccl/src/transport/net_ib/connect.cc:729,1
    - Dst: std::max
      Src: /src/nccl/src/transport/net_ib/connect.cc:732,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:735,1
    - Dst: ncclIbResiliencyDeviceNumSet
      Src: /src/nccl/src/transport/net_ib/connect.cc:735,1
    - Dst: ncclParamIbQpsPerConn
      Src: /src/nccl/src/transport/net_ib/connect.cc:743,1
    - Dst: ncclIbResiliencyDataCqSizeGet
      Src: /src/nccl/src/transport/net_ib/connect.cc:747,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:749,1
    - Dst: ncclIbInitCommDevBase
      Src: /src/nccl/src/transport/net_ib/connect.cc:749,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:752,1
    - Dst: ncclIbResiliencyDevInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:752,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:756,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:760,1
    - Dst: ncclIbSenderQpsCreate
      Src: /src/nccl/src/transport/net_ib/connect.cc:760,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:773,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:773,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:776,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:776,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:781,1
    - Dst: ncclIbGetGidIndex
      Src: /src/nccl/src/transport/net_ib/connect.cc:781,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:782,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib/connect.cc:782,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:791,1
    - Dst: ncclIbExtractFlid
      Src: /src/nccl/src/transport/net_ib/connect.cc:794,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:796,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:804,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:813,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/connect.cc:814,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/connect.cc:814,1
    - Dst: ncclIbGetTrafficClass
      Src: /src/nccl/src/transport/net_ib/connect.cc:818,1
    - Dst: ncclParamIbSl
      Src: /src/nccl/src/transport/net_ib/connect.cc:820,1
    - Dst: ncclParamIbSl
      Src: /src/nccl/src/transport/net_ib/connect.cc:820,1
    - Dst: ncclParamIbTc
      Src: /src/nccl/src/transport/net_ib/connect.cc:821,1
    - Dst: ncclParamIbTc
      Src: /src/nccl/src/transport/net_ib/connect.cc:821,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:822,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:827,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:830,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib/connect.cc:830,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:836,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:840,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib/connect.cc:840,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:843,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:851,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/connect.cc:852,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/connect.cc:852,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:873,1
    - Dst: ncclIbResiliencyRemoteCompletionRecordsSet
      Src: /src/nccl/src/transport/net_ib/connect.cc:873,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:879,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:879,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:883,1
    - Dst: ncclIbSenderQpsToRts
      Src: /src/nccl/src/transport/net_ib/connect.cc:883,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:890,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib/connect.cc:890,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/connect.cc:895,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/connect.cc:899,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 193
    argCount: 4
    argNames:
    - ctx
    - dev
    - opaqueHandle
    - sendComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 648
    functionDepth: 4
    functionLinenumber: 648
    functionLinenumberEnd: 901
    functionName: ncclIbConnect
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclIbSendCommInit
    - ncclIbResiliencyDeviceNumSet
    - memcpy
    - ncclIbResiliencyRemoteCompletionRecordsSet
    - NCCLCHECKGOTO
    - ncclIbSenderQpsCreate
    - ncclIbInitCommDevBase
    - WARN
    - ncclIbResiliencyDataCqSizeGet
    - ncclSocketProgress
    - ncclIbGetTrafficClass
    - ncclIbExtractFlid
    - ncclIbMalloc
    - free
    - NCCL_IB_LLSTR
    - ncclIbSenderQpsToRts
    - ncclIbGetGidIndex
    - ncclParamIbSl
    - ncclIbStatsInit
    - strncpy
    - ncclSocketConnect
    - ncclParamIbTc
    - INFO
    - std::max
    - ncclIbResiliencyDevInit
    - memset
    - ncclParamIbQpsPerConn
    - NCCLCHECK
    - ncclSocketInit
    - wrap_ibv_query_gid
    - ncclSocketReady
    - wrap_ibv_reg_mr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbConnect(void* ctx, int dev, void* opaqueHandle,
      void** sendComm, ncclNetDeviceHandle_t** /*sendDevComm*/)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbWarnRailLocal
      Src: /src/nccl/src/transport/net_ib/connect.cc:926,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib/connect.cc:929,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib/connect.cc:931,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib/connect.cc:935,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib/connect.cc:938,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:941,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - vProps1
    - vProps2
    argTypes:
    - ncclNetVDeviceProps_t*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 945
    functionName: ncclIbCheckVProps
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbWarnRailLocal
    - INFO
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCheckVProps(ncclNetVDeviceProps_t* vProps1, ncclNetVDeviceProps_t*
      vProps2)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:955,1
    - Dst: ncclIbResiliencyDataRqSizeGet
      Src: /src/nccl/src/transport/net_ib/connect.cc:986,1
    - Dst: ncclParamIbOooRq
      Src: /src/nccl/src/transport/net_ib/connect.cc:988,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:990,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:996,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:1002,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1007,1
    - Dst: ncclIbQpCreate
      Src: /src/nccl/src/transport/net_ib/connect.cc:1007,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1008,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib/connect.cc:1016,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib/connect.cc:1026,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1030,1
    - Dst: ncclIbQpInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:1030,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1035,1
    - Dst: wrap_ibv_set_ece
      Src: /src/nccl/src/transport/net_ib/connect.cc:1035,1
    - Dst: min
      Src: /src/nccl/src/transport/net_ib/connect.cc:1043,1
    - Dst: ncclParamIbFifoTc
      Src: /src/nccl/src/transport/net_ib/connect.cc:1048,1
    - Dst: ncclParamIbFifoTc
      Src: /src/nccl/src/transport/net_ib/connect.cc:1048,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1056,1
    - Dst: ncclIbQpRtr
      Src: /src/nccl/src/transport/net_ib/connect.cc:1056,1
    - Dst: ncclParamIbTimeout
      Src: /src/nccl/src/transport/net_ib/connect.cc:1058,1
    - Dst: ncclParamIbRetryCnt
      Src: /src/nccl/src/transport/net_ib/connect.cc:1059,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1060,1
    - Dst: ncclIbQpRts
      Src: /src/nccl/src/transport/net_ib/connect.cc:1060,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1065,1
    - Dst: wrap_ibv_query_ece
      Src: /src/nccl/src/transport/net_ib/connect.cc:1065,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:1081,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1088,1
    - Dst: ncclIbQpCreate
      Src: /src/nccl/src/transport/net_ib/connect.cc:1088,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1089,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib/connect.cc:1097,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib/connect.cc:1105,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1108,1
    - Dst: ncclIbQpInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:1108,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1123,1
    - Dst: ncclIbQpRtr
      Src: /src/nccl/src/transport/net_ib/connect.cc:1123,1
    - Dst: ncclParamIbTimeout
      Src: /src/nccl/src/transport/net_ib/connect.cc:1125,1
    - Dst: ncclParamIbRetryCnt
      Src: /src/nccl/src/transport/net_ib/connect.cc:1126,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1127,1
    - Dst: ncclIbQpRts
      Src: /src/nccl/src/transport/net_ib/connect.cc:1127,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1132,1
    - Dst: ncclIbResiliencyReceiverQpsCreateToRts
      Src: /src/nccl/src/transport/net_ib/connect.cc:1132,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 105
    argCount: 3
    argNames:
    - rComm
    - remMeta
    - meta
    argTypes:
    - ncclIbRecvComm*
    - struct ncclIbConnectionMetadata*
    - struct ncclIbConnectionMetadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 952
    functionDepth: 3
    functionLinenumber: 952
    functionLinenumberEnd: 1136
    functionName: ncclIbReceiverQpsCreateToRts
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbOooRq
    - ncclParamIbTimeout
    - INFO
    - wrap_ibv_set_ece
    - ncclParamIbPkey
    - wrap_ibv_query_ece
    - ncclIbQpInit
    - min
    - ncclParamIbFifoTc
    - ncclIbResiliencyReceiverQpsCreateToRts
    - memset
    - ncclIbQpCreate
    - ncclIbQpRtr
    - ncclParamIbRetryCnt
    - ncclIbResiliencyDataRqSizeGet
    - ncclIbQpRts
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbReceiverQpsCreateToRts(ncclIbRecvComm* rComm, struct
      ncclIbConnectionMetadata* remMeta, struct ncclIbConnectionMetadata* meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbResiliencyDataRqSizeGet
      Src: /src/nccl/src/transport/net_ib/connect.cc:1141,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1143,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1145,1
    - Dst: ncclIbPostRecvWorkRequest
      Src: /src/nccl/src/transport/net_ib/connect.cc:1145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - recvComm
    - dataQp
    argTypes:
    - struct ncclIbRecvComm*
    - ncclIbQp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1148
    functionName: ncclIbPostReceiveWorkRequestsOnQp
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 1
    functionsReached:
    - ncclIbResiliencyDataRqSizeGet
    - INFO
    - ncclIbPostRecvWorkRequest
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPostReceiveWorkRequestsOnQp(struct ncclIbRecvComm*
      recvComm, ncclIbQp* dataQp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1153,1
    - Dst: ncclIbPostReceiveWorkRequestsOnQp
      Src: /src/nccl/src/transport/net_ib/connect.cc:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - recvComm
    argTypes:
    - struct ncclIbRecvComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1150
    functionDepth: 3
    functionLinenumber: 1150
    functionLinenumberEnd: 1156
    functionName: ncclIbReceiverPrePostReceiveWorkRequests
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclIbPostReceiveWorkRequestsOnQp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbReceiverPrePostReceiveWorkRequests(struct ncclIbRecvComm*
      recvComm)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1165,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_ib/connect.cc:1165,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:1180,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1184,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/connect.cc:1184,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1185,1
    - Dst: ncclIbRecvCommInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:1185,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1186,1
    - Dst: ncclIbStatsInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:1186,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1189,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:1189,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1190,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/transport/net_ib/connect.cc:1190,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1196,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/connect.cc:1196,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1199,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_ib/connect.cc:1199,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1206,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib/connect.cc:1206,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:1209,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:1211,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:1215,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1221,1
    - Dst: ncclIbCheckVProps
      Src: /src/nccl/src/transport/net_ib/connect.cc:1221,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:1223,1
    - Dst: ncclParamIbQpsPerConn
      Src: /src/nccl/src/transport/net_ib/connect.cc:1225,1
    - Dst: ncclParamIbQpsPerConn
      Src: /src/nccl/src/transport/net_ib/connect.cc:1226,1
    - Dst: std::max
      Src: /src/nccl/src/transport/net_ib/connect.cc:1229,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1232,1
    - Dst: ncclIbResiliencyDeviceNumSet
      Src: /src/nccl/src/transport/net_ib/connect.cc:1232,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:1244,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1247,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib/connect.cc:1247,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1254,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib/connect.cc:1254,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:1258,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1269,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/connect.cc:1275,1
    - Dst: ncclParamIbQpsPerConn
      Src: /src/nccl/src/transport/net_ib/connect.cc:1280,1
    - Dst: ncclIbResiliencyDataCqSizeGet
      Src: /src/nccl/src/transport/net_ib/connect.cc:1285,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1287,1
    - Dst: ncclIbInitCommDevBase
      Src: /src/nccl/src/transport/net_ib/connect.cc:1287,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1289,1
    - Dst: ncclIbResiliencyDevInit
      Src: /src/nccl/src/transport/net_ib/connect.cc:1289,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1292,1
    - Dst: ncclIbGetGidIndex
      Src: /src/nccl/src/transport/net_ib/connect.cc:1292,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1293,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib/connect.cc:1293,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:1297,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/connect.cc:1298,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/connect.cc:1298,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/connect.cc:1308,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/connect.cc:1309,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib/connect.cc:1309,1
    - Dst: ncclIbGdrSupport
      Src: /src/nccl/src/transport/net_ib/connect.cc:1326,1
    - Dst: ncclIbDmaBufSupport
      Src: /src/nccl/src/transport/net_ib/connect.cc:1326,1
    - Dst: ncclParamIbGdrFlushDisable
      Src: /src/nccl/src/transport/net_ib/connect.cc:1327,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1329,1
    - Dst: ncclIbReceiverQpsCreateToRts
      Src: /src/nccl/src/transport/net_ib/connect.cc:1329,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1331,1
    - Dst: ncclIbReceiverPrePostReceiveWorkRequests
      Src: /src/nccl/src/transport/net_ib/connect.cc:1331,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1343,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:1343,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1347,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:1347,1
    - Dst: ncclParamIbUseInline
      Src: /src/nccl/src/transport/net_ib/connect.cc:1351,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1359,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:1359,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:1378,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/connect.cc:1383,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1386,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/connect.cc:1386,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/connect.cc:1387,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1390,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib/connect.cc:1390,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/connect.cc:1397,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib/connect.cc:1397,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/connect.cc:1403,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/connect.cc:1404,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/connect.cc:1408,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 198
    argCount: 2
    argNames:
    - listenComm
    - recvComm
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1160
    functionDepth: 4
    functionLinenumber: 1160
    functionLinenumberEnd: 1410
    functionName: ncclIbAccept
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclIbResiliencyDeviceNumSet
    - memcpy
    - NCCLCHECKGOTO
    - WARN
    - ncclIbInitCommDevBase
    - ncclIbResiliencyDataCqSizeGet
    - ncclSocketProgress
    - ncclCalloc
    - ncclIbCheckVProps
    - ncclIbMalloc
    - free
    - NCCL_IB_LLSTR
    - ncclParamIbUseInline
    - ncclIbGetGidIndex
    - ncclIbStatsInit
    - strncpy
    - INFO
    - std::max
    - ncclIbGdrSupport
    - ncclIbRecvCommInit
    - ncclIbResiliencyDevInit
    - memset
    - ncclParamIbGdrFlushDisable
    - ncclIbReceiverQpsCreateToRts
    - wrap_ibv_reg_mr
    - ncclParamIbQpsPerConn
    - NCCLCHECK
    - ncclIbDmaBufSupport
    - ncclSocketAccept
    - ncclSocketInit
    - wrap_ibv_query_gid
    - ncclSocketReady
    - ncclIbReceiverPrePostReceiveWorkRequests
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbAccept(void* listenComm, void** recvComm, ncclNetDeviceHandle_t**
      /*recvDevComm*/)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1415,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_ib/connect.cc:1415,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1418,1
    - Dst: wrap_ibv_destroy_qp
      Src: /src/nccl/src/transport/net_ib/connect.cc:1418,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1421,1
    - Dst: ncclIbResiliencyClose
      Src: /src/nccl/src/transport/net_ib/connect.cc:1421,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1426,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:1426,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1427,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:1427,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1429,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:1429,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1431,1
    - Dst: ncclIbResiliencyDevDestroy
      Src: /src/nccl/src/transport/net_ib/connect.cc:1431,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1433,1
    - Dst: ncclIbDestroyBase
      Src: /src/nccl/src/transport/net_ib/connect.cc:1433,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1436,1
    - Dst: ncclIbResiliencyDestroy
      Src: /src/nccl/src/transport/net_ib/connect.cc:1436,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/connect.cc:1438,1
    - Dst: TIME_PRINT
      Src: /src/nccl/src/transport/net_ib/connect.cc:1440,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - sendComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1412
    functionDepth: 2
    functionLinenumber: 1412
    functionLinenumberEnd: 1442
    functionName: ncclIbCloseSend
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclIbResiliencyClose
    - wrap_ibv_dereg_mr
    - ncclIbResiliencyDestroy
    - ncclSocketClose
    - free
    - TIME_PRINT
    - ncclIbResiliencyDevDestroy
    - wrap_ibv_destroy_qp
    - ncclIbDestroyBase
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCloseSend(void* sendComm)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1447,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_ib/connect.cc:1447,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1450,1
    - Dst: wrap_ibv_destroy_qp
      Src: /src/nccl/src/transport/net_ib/connect.cc:1450,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1453,1
    - Dst: ncclIbResiliencyClose
      Src: /src/nccl/src/transport/net_ib/connect.cc:1453,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1459,1
    - Dst: wrap_ibv_destroy_qp
      Src: /src/nccl/src/transport/net_ib/connect.cc:1459,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1460,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:1460,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1462,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:1462,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1463,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/connect.cc:1463,1
    - Dst: ncclIbResiliencyDevDestroy
      Src: /src/nccl/src/transport/net_ib/connect.cc:1465,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1467,1
    - Dst: ncclIbDestroyBase
      Src: /src/nccl/src/transport/net_ib/connect.cc:1467,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1470,1
    - Dst: ncclIbResiliencyDestroy
      Src: /src/nccl/src/transport/net_ib/connect.cc:1470,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/connect.cc:1472,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - recvComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1444
    functionDepth: 2
    functionLinenumber: 1444
    functionLinenumberEnd: 1475
    functionName: ncclIbCloseRecv
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - ncclIbResiliencyClose
    - wrap_ibv_dereg_mr
    - ncclIbResiliencyDestroy
    - ncclSocketClose
    - free
    - ncclIbResiliencyDevDestroy
    - wrap_ibv_destroy_qp
    - ncclIbDestroyBase
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCloseRecv(void* recvComm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/connect.cc:1480,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_ib/connect.cc:1480,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/connect.cc:1481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - listenComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1484
    functionName: ncclIbCloseListen
    functionSourceFile: /src/nccl/src/transport/net_ib/connect.cc
    functionUses: 0
    functionsReached:
    - free
    - ncclSocketClose
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCloseListen(void* listenComm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: state::load
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:29,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:41,1
    - Dst: ibvWcStatusStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:41,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:46,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:51,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:61,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - resCtx
    - wc
    - devIndex
    argTypes:
    - struct ncclIbResiliency*
    - struct ibv_wc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 63
    functionName: ncclIbResiliencyCheckErrorNotFatal
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - ibvWcStatusStr
    - state::load
    - INFO
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyCheckErrorNotFatal(struct ncclIbResiliency*
      resCtx, struct ibv_wc *wc, int devIndex)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:78,1
    - Dst: state::load
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:92,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:95,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:99,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:106,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - resCtx
    - failedDevIndex
    argTypes:
    - struct ncclIbResiliency*
    - int
    assertStmts:
    - condition: (failedQpIndex >= 0 && failedQpIndex < resCtx->baseComm->nqps)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 112
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 112
    functionName: ncclIbResiliencyReplaceQps
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - state::load
    - INFO
    - WARN
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyReplaceQps(struct ncclIbResiliency* resCtx,
      int failedDevIndex)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:124,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:128,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:134,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:139,1
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:146,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - sendResCtx
    - request
    - devIndex
    argTypes:
    - struct ncclIbResiliencySend*
    - ncclIbRequest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 153
    functionName: ncclIbResiliencySendRequestInit
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - clockNano
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencySendRequestInit(struct ncclIbResiliencySend*
      sendResCtx, ncclIbRequest* request, int devIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:156,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:159,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - sendResCtx
    - failedSendRequest
    argTypes:
    - struct ncclIbResiliencySend*
    - struct ncclIbResiliencyRequestSend*
    assertStmts:
    - condition: (failedSendRequest != NULL)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 174
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 174
    functionName: ncclIbResiliencySendRequestFree
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencySendRequestFree(struct ncclIbResiliencySend*
      sendResCtx, struct ncclIbResiliencyRequestSend* failedSendRequest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:179,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:191,1
    - Dst: ncclIbCommBaseGetNqpsPerRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:194,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:203,1
    - Dst: ncclIbCommBaseGetQpForRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:203,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:209,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:213,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:216,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:219,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:220,1
    - Dst: ncclIbMultiSend
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:220,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:222,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:223,1
    - Dst: ncclIbPostFifo
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:223,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct ncclIbRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 229
    functionName: ncclIbResiliencyRepostRequest
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - ncclIbMultiSend
    - INFO
    - ncclIbAddEvent
    - ncclIbPostFifo
    - ncclIbCommBaseGetNqpsPerRequest
    - memset
    - ncclIbCommBaseGetQpForRequest
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyRepostRequest(struct ncclIbRequest* request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:232,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:236,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:244,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:246,1
    - Dst: ibvWcStatusStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:246,1
    - Dst: ncclIbRequestRetrieveAsIndex
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:253,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:259,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:267,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:275,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:277,1
    - Dst: ncclIbResiliencyRepostRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:277,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:287,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:290,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - resCtx
    - wc
    - devIndex
    argTypes:
    - struct ncclIbResiliency*
    - struct ibv_wc*
    - int
    assertStmts:
    - condition: (wc->status == IBV_WC_WR_FLUSH_ERR)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (wc->wr_id != NCCL_IB_RECV_WR_ID_DUMMY)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 294
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 294
    functionName: ncclIbResiliencyHandleCompletionErrorReceiver
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - ncclIbRequestRetrieveAsIndex
    - INFO
    - ncclIbResiliencyRepostRequest
    - ibvWcStatusStr
    - assert
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyHandleCompletionErrorReceiver(struct ncclIbResiliency*
      resCtx, struct ibv_wc* wc, int devIndex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:305,1
    - Dst: ibvWcStatusStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:305,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:305,1
    - Dst: ncclIbResiliencySendRequestInit
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:310,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:312,1
    - Dst: ibvWcStatusStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:312,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - resCtx
    - wc
    - devIndex
    argTypes:
    - struct ncclIbResiliency*
    - struct ibv_wc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 318
    functionName: ncclIbResiliencyHandleCompletionErrorSender
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - ncclIbResiliencySendRequestInit
    - ibvWcStatusStr
    - ibvWcOpcodeStr
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyHandleCompletionErrorSender(struct ncclIbResiliency*
      resCtx, struct ibv_wc* wc, int devIndex)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: state::load
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:323,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:325,1
    - Dst: state::store
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:326,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:327,1
    - Dst: ncclIbResiliencyReplaceQps
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:327,1
    - Dst: state::store
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:329,1
    - Dst: ncclIbPortRecoveryHandleFailure
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:330,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:337,1
    - Dst: state::store
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:338,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:343,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - resCtx
    - devIndex
    argTypes:
    - struct ncclIbResiliency*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 346
    functionName: ncclIbResiliencyHandleDeviceFailure
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - ncclIbPortRecoveryHandleFailure
    - INFO
    - ncclIbResiliencyReplaceQps
    - state::store
    - state::load
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyHandleDeviceFailure(struct ncclIbResiliency*
      resCtx, int devIndex)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:369,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:374,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:381,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:382,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:387,1
    - Dst: ncclIbResiliencyRepostRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - sendResCtx
    - failedRequest
    argTypes:
    - struct ncclIbResiliencySend*
    - struct ncclIbResiliencyRequestSend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 390
    functionName: ncclIbResiliencyHandleProbeCompleted
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - ncclIbResiliencyRepostRequest
    - INFO
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyHandleProbeCompleted(struct ncclIbResiliencySend*
      sendResCtx, struct ncclIbResiliencyRequestSend* failedRequest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:395,1
    - Dst: ncclParamIbResiliencyPortFailoverMaxAttempts
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:397,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:398,1
    - Dst: ncclParamIbResiliencyPortFailoverMaxAttempts
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:398,1
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:403,1
    - Dst: ncclParamIbResiliencyPortFailoverProbeDelay
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:405,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:411,1
    - Dst: state::load
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:416,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:424,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:458,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:461,1
    - Dst: wrap_ibv_post_send
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:461,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:464,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - sendResCtx
    - failedSendRequest
    argTypes:
    - struct ncclIbResiliencySend*
    - struct ncclIbResiliencyRequestSend*
    assertStmts:
    - condition: (failedSendRequest->state == ncclIbResiliencyRequestStatePending)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (resDev->nOutstandingProbes <= NET_IB_MAX_REQUESTS)
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 466
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 466
    functionName: ncclIbResiliencyProbePost
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_post_send
    - INFO
    - clockNano
    - ncclParamIbResiliencyPortFailoverMaxAttempts
    - ncclParamIbResiliencyPortFailoverProbeDelay
    - assert
    - state::load
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyProbePost(struct ncclIbResiliencySend*
      sendResCtx, struct ncclIbResiliencyRequestSend* failedSendRequest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:470,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:481,1
    - Dst: ncclIbResiliencyCheckErrorNotFatal
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:481,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:483,1
    - Dst: ncclIbResiliencyHandleDeviceFailure
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - sendResCtx
    - probeWc
    - devIndex
    argTypes:
    - struct ncclIbResiliencySend*
    - struct ibv_wc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 468
    functionDepth: 5
    functionLinenumber: 468
    functionLinenumberEnd: 489
    functionName: ncclIbResiliencyProbeHandleCompletionEvent
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - ncclIbResiliencyHandleDeviceFailure
    - ncclIbResiliencyCheckErrorNotFatal
    - INFO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyProbeHandleCompletionEvent(struct ncclIbResiliencySend*
      sendResCtx, struct ibv_wc* probeWc, int devIndex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:506,1
    - Dst: wrap_ibv_poll_cq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:506,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:510,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:513,1
    - Dst: ncclIbResiliencyProbeHandleCompletionEvent
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:513,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - sendResCtx
    argTypes:
    - struct ncclIbResiliencySend*
    assertStmts:
    - condition: (nCompletions <= resDev->nOutstandingProbes)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 518
      start: 493
    functionDepth: 6
    functionLinenumber: 493
    functionLinenumberEnd: 518
    functionName: ncclIbResiliencyProbeProgress
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - assert
    - wrap_ibv_poll_cq
    - ncclIbResiliencyProbeHandleCompletionEvent
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyProbeProgress(struct ncclIbResiliencySend*
      sendResCtx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:525,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:526,1
    - Dst: ncclParamIbResiliencyPortFailover
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:527,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:528,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:541,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:541,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:547,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:548,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:549,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:552,1
    - Dst: ncclIbPortRecoveryInit
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:552,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:554,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:557,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - baseComm
    - resCtx
    argTypes:
    - struct ncclIbNetCommBase*
    - struct ncclIbResiliency**
    assertStmts:
    - condition: (baseComm != NULL)
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (resCtx != NULL)
      pos:
        line_end: 525
        line_start: 525
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 562
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 562
    functionName: ncclIbResiliencyInit
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclIbPortRecoveryInit
    - ncclParamIbResiliencyPortFailover
    - ncclIbMalloc
    - assert
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyInit(struct ncclIbNetCommBase* baseComm,
      struct ncclIbResiliency** resCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - resCtx
    argTypes:
    - struct ncclIbResiliency**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 571
    functionName: ncclIbResiliencyDestroy
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyDestroy(struct ncclIbResiliency** resCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:574,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:575,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:576,1
    - Dst: struct ncclIbResiliencyDev*::state::store
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:578,1
    - Dst: ncclIbGetNetCommDevBase
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:584,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:585,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:585,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:586,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:592,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:593,1
    - Dst: wrap_ibv_create_cq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:593,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:594,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:597,1
    - Dst: ncclIbPortRecoveryDevInit
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - resCtx
    - devIndex
    - ibDev
    argTypes:
    - struct ncclIbResiliency*
    - uint
    - ncclIbDev*
    assertStmts:
    - condition: (resCtx != NULL)
      pos:
        line_end: 573
        line_start: 573
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (devIndex < resCtx->ndevs)
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 600
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 600
    functionName: ncclIbResiliencyDevInit
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 2
    functionsReached:
    - INFO
    - ncclIbPortRecoveryDevInit
    - ncclIbGetNetCommDevBase
    - assert
    - wrap_ibv_create_cq
    - struct ncclIbResiliencyDev*::state::store
    - wrap_ibv_reg_mr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyDevInit(struct ncclIbResiliency* resCtx,
      uint devIndex, ncclIbDev* ibDev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:603,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:606,1
    - Dst: wrap_ibv_destroy_cq
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:606,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:607,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:611,1
    - Dst: ncclIbPortRecoveryDevDestroy
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:611,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:617,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:617,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:618,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - resCtx
    - devIndex
    argTypes:
    - struct ncclIbResiliency*
    - uint
    assertStmts:
    - condition: (resCtx != NULL)
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 622
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 622
    functionName: ncclIbResiliencyDevDestroy
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 2
    functionsReached:
    - wrap_ibv_dereg_mr
    - INFO
    - ncclIbPortRecoveryDevDestroy
    - assert
    - wrap_ibv_destroy_cq
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyDevDestroy(struct ncclIbResiliency* resCtx,
      uint devIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:625,1
    - Dst: ncclIbCommBaseGetNqpsPerRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:630,1
    - Dst: ncclIbCommBaseGetNqpsPerRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:635,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:640,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - resCtx
    - devIndex
    - cqSize
    argTypes:
    - struct ncclIbResiliency*
    - uint
    - int*
    assertStmts:
    - condition: (cqSize != NULL)
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (resCtx->ndevs > 0)
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 644
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 644
    functionName: ncclIbResiliencyDataCqSizeGet
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 2
    functionsReached:
    - INFO
    - ncclIbCommBaseGetNqpsPerRequest
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyDataCqSizeGet(struct ncclIbResiliency*
      resCtx, uint devIndex, int* cqSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:647,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:649,1
    - Dst: ncclIbCommBaseGetNqpsPerRequest
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:656,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - resCtx
    - devIndex
    - rqSize
    argTypes:
    - struct ncclIbResiliency*
    - uint
    - uint32_t*
    assertStmts:
    - condition: (rqSize != NULL)
      pos:
        line_end: 646
        line_start: 646
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (resCtx->baseComm->isSend == 0)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (*rqSize > 0)
      pos:
        line_end: 656
        line_start: 656
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 659
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 659
    functionName: ncclIbResiliencyDataRqSizeGet
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 2
    functionsReached:
    - ncclIbCommBaseGetNqpsPerRequest
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyDataRqSizeGet(struct ncclIbResiliency*
      resCtx, uint devIndex, uint32_t* rqSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:662,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:663,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:664,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:667,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:670,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:691,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:693,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:695,1
    - Dst: std::max
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:697,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:701,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - resCtx
    - nLocalDevs
    - nRemDevs
    argTypes:
    - struct ncclIbResiliency*
    - int
    - int
    assertStmts:
    - condition: (resCtx != NULL)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (nLocalDevs > 0)
      pos:
        line_end: 662
        line_start: 662
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (nRemDevs > 0)
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (resCtx->nProbingQps <= NCCL_IB_MAX_DEVS_PER_NIC)
      pos:
        line_end: 690
        line_start: 690
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (resCtx->nPortRecoveryQps <= NCCL_IB_MAX_DEVS_PER_NIC)
      pos:
        line_end: 700
        line_start: 700
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 704
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 704
    functionName: ncclIbResiliencyDeviceNumSet
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 2
    functionsReached:
    - INFO
    - WARN
    - std::max
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyDeviceNumSet(struct ncclIbResiliency*
      resCtx, int nLocalDevs, int nRemDevs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:711,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:725,1
    - Dst: ncclIbQpCreate
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:725,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:734,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:738,1
    - Dst: ncclIbQpInit
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:738,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:742,1
    - Dst: ncclIbPortRecoverySenderQpsCreate
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - resCtx
    - localResiliencyInfo
    argTypes:
    - struct ncclIbResiliency*
    - struct ncclIbResiliencyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 706
    functionDepth: 3
    functionLinenumber: 706
    functionLinenumberEnd: 746
    functionName: ncclIbResiliencySenderCreateQps
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 1
    functionsReached:
    - ncclParamIbPkey
    - NCCLCHECK
    - ncclIbPortRecoverySenderQpsCreate
    - memset
    - ncclIbQpCreate
    - ncclIbQpInit
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencySenderCreateQps(struct ncclIbResiliency*
      resCtx, struct ncclIbResiliencyInfo* localResiliencyInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:765,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:775,1
    - Dst: ncclIbQpRtr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:775,1
    - Dst: ncclParamIbTimeout
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:778,1
    - Dst: ncclParamIbRetryCnt
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:779,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:780,1
    - Dst: ncclIbQpRts
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:780,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:781,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:785,1
    - Dst: ncclIbPortRecoverySenderQpsToRts
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - resCtx
    - remInfo
    argTypes:
    - struct ncclIbResiliency*
    - struct ncclIbConnectionMetadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 788
    functionName: ncclIbResiliencySenderQpsToRts
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 1
    functionsReached:
    - ncclParamIbTimeout
    - INFO
    - ncclIbPortRecoverySenderQpsToRts
    - min
    - ncclParamIbRetryCnt
    - ncclIbQpRts
    - ncclIbQpRtr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencySenderQpsToRts(struct ncclIbResiliency*
      resCtx, struct ncclIbConnectionMetadata* remInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:795,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:811,1
    - Dst: ncclIbQpCreate
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:811,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:818,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:823,1
    - Dst: ncclIbQpInit
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:823,1
    - Dst: min
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:828,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:838,1
    - Dst: ncclIbQpRtr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:838,1
    - Dst: ncclParamIbTimeout
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:841,1
    - Dst: ncclParamIbRetryCnt
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:842,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:843,1
    - Dst: ncclIbQpRts
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:843,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:844,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:848,1
    - Dst: ncclIbPortRecoveryReceiverQpsCreateToRts
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 3
    argNames:
    - resCtx
    - remInfo
    - localResiliencyInfo
    argTypes:
    - struct ncclIbResiliency*
    - struct ncclIbConnectionMetadata*
    - struct ncclIbResiliencyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 790
    functionDepth: 3
    functionLinenumber: 790
    functionLinenumberEnd: 852
    functionName: ncclIbResiliencyReceiverQpsCreateToRts
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 1
    functionsReached:
    - ncclParamIbTimeout
    - INFO
    - ncclParamIbPkey
    - NCCLCHECK
    - min
    - ncclIbPortRecoveryReceiverQpsCreateToRts
    - memset
    - ncclIbQpRtr
    - ncclParamIbRetryCnt
    - ncclIbQpRts
    - ncclIbQpCreate
    - ncclIbQpInit
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyReceiverQpsCreateToRts(struct ncclIbResiliency*
      resCtx, struct ncclIbConnectionMetadata* remInfo, struct ncclIbResiliencyInfo*
      localResiliencyInfo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:856,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:859,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:861,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:867,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:868,1
    - Dst: wrap_ibv_destroy_qp
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:868,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:872,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:874,1
    - Dst: ncclIbPortRecoveryClose
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:874,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:875,1
    - Dst: ncclIbPortRecoveryQpsDestroy
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:875,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - resCtx
    argTypes:
    - struct ncclIbResiliency*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 878
    functionName: ncclIbResiliencyClose
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 2
    functionsReached:
    - INFO
    - ncclIbPortRecoveryQpsDestroy
    - ncclIbPortRecoveryClose
    - WARN
    - wrap_ibv_destroy_qp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyClose(struct ncclIbResiliency* resCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:881,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:882,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:883,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - resCtx
    - cmplsRecordsRkey
    - cmplsRecordsAddr
    - devIndex
    argTypes:
    - struct ncclIbResiliency*
    - uint32_t
    - uint64_t
    - uint
    assertStmts:
    - condition: (resCtx != NULL)
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (resCtx->baseComm->isSend)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (devIndex <= resCtx->nProbingQps)
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 889
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 889
    functionName: ncclIbResiliencyRemoteCompletionRecordsSet
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 1
    functionsReached:
    - INFO
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyRemoteCompletionRecordsSet(struct ncclIbResiliency*
      resCtx, uint32_t cmplsRecordsRkey, uint64_t cmplsRecordsAddr, uint devIndex)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:892,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:901,1
    - Dst: abs
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:926,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:929,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - request
    - isComplete
    argTypes:
    - struct ncclIbRequest*
    - bool*
    assertStmts:
    - condition: (isComplete != NULL)
      pos:
        line_end: 891
        line_start: 891
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    - condition: (resCtx != NULL)
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    constantsTouched: []
    func_position:
      end: 933
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 933
    functionName: ncclIbResiliencyRequestIsComplete
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - abs
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyRequestIsComplete(struct ncclIbRequest
      *request, bool *isComplete)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:936,1
    - Dst: ibvWcStatusStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:936,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:936,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:937,1
    - Dst: ncclIbResiliencyCheckErrorNotFatal
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:937,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:942,1
    - Dst: ncclIbResiliencyHandleDeviceFailure
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:942,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:945,1
    - Dst: ncclIbResiliencyHandleCompletionErrorSender
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:945,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:947,1
    - Dst: ncclIbResiliencyHandleCompletionErrorReceiver
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - resCtx
    - wc
    - devIndex
    argTypes:
    - struct ncclIbResiliency*
    - struct ibv_wc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 935
    functionDepth: 5
    functionLinenumber: 935
    functionLinenumberEnd: 950
    functionName: ncclIbResiliencyHandleCompletionError
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - ncclIbResiliencyHandleDeviceFailure
    - ncclIbResiliencyHandleCompletionErrorReceiver
    - ibvWcOpcodeStr
    - INFO
    - ibvWcStatusStr
    - ncclIbResiliencyCheckErrorNotFatal
    - ncclIbResiliencyHandleCompletionErrorSender
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyHandleCompletionError(struct ncclIbResiliency*
      resCtx, struct ibv_wc* wc, int devIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:958,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - resCtx
    - restoredDevIndex
    argTypes:
    - struct ncclIbResiliency*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 962
    functionName: ncclIbResiliencyActiveQpsRestore
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - INFO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyActiveQpsRestore(struct ncclIbResiliency*
      resCtx, int restoredDevIndex)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:973,1
    - Dst: ncclIbResiliencyProbeProgress
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:973,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:982,1
    - Dst: ncclIbResiliencyProbePost
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:982,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:986,1
    - Dst: ncclIbResiliencyHandleProbeCompleted
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:986,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:987,1
    - Dst: ncclIbResiliencySendRequestFree
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:987,1
    - Dst: state::load
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:996,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:997,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:1000,1
    - Dst: ncclIbResiliencyActiveQpsRestore
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:1001,1
    - Dst: state::store
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:1002,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:1006,1
    - Dst: state::store
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:1007,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p_resiliency.cc:1014,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 1
    argNames:
    - resCtx
    argTypes:
    - struct ncclIbResiliency*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 964
    functionDepth: 7
    functionLinenumber: 964
    functionLinenumberEnd: 1018
    functionName: ncclIbResiliencyProgress
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclIbResiliencyProbeProgress
    - ncclIbResiliencySendRequestFree
    - INFO
    - ncclIbResiliencyProbePost
    - state::store
    - state::load
    - ncclIbResiliencyActiveQpsRestore
    - ncclIbResiliencyHandleProbeCompleted
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbResiliencyProgress(struct ncclIbResiliency* resCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p.cc:27,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p.cc:28,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - base
    - req
    argTypes:
    - struct ncclIbNetCommBase*
    - struct ncclIbRequest**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: ncclIbGetRequest
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 4
    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: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: ncclIbFreeRequest
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbFreeRequest(struct ncclIbRequest* r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbGetNetCommDevBase
      Src: /src/nccl/src/transport/net_ib/p2p.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - devIndex
    argTypes:
    - struct ncclIbRequest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: ncclIbAddEvent
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 5
    functionsReached:
    - ncclIbGetNetCommDevBase
    linkageType: ''
    returnType: void
    signature: void ncclIbAddEvent(struct ncclIbRequest* req, int devIndex)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/nccl/src/transport/net_ib/p2p.cc:53,1
    - Dst: ibvWrOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:56,1
    - Dst: sprintf
      Src: /src/nccl/src/transport/net_ib/p2p.cc:59,1
    - Dst: sprintf
      Src: /src/nccl/src/transport/net_ib/p2p.cc:70,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - wr
    - wrStr
    argTypes:
    - struct ibv_send_wr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 86
    functionName: ncclIbPrintWr
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ibvWrOpcodeStr
    - sprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPrintWr(struct ibv_send_wr* wr, char* wrStr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:98,1
    - Dst: ncclIbCommBaseGetNqpsPerRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:100,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p.cc:104,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net_ib/p2p.cc:124,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net_ib/p2p.cc:124,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p.cc:143,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/p2p.cc:152,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:160,1
    - Dst: ncclIbCommBaseGetQpForRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:160,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:162,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p.cc:170,1
    - Dst: min
      Src: /src/nccl/src/transport/net_ib/p2p.cc:184,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p.cc:209,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:220,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib/p2p.cc:220,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:226,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:232,1
    - Dst: ncclIbPrintWr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:232,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:233,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:238,1
    - Dst: wrap_ibv_post_send
      Src: /src/nccl/src/transport/net_ib/p2p.cc:238,1
    - Dst: std::min<uint32_t>
      Src: /src/nccl/src/transport/net_ib/p2p.cc:243,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:246,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:251,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 89
    argCount: 2
    argNames:
    - comm
    - slot
    argTypes:
    - struct ncclIbSendComm*
    - int
    assertStmts:
    - condition: (nEventHandles < MAX_QPS_PER_REQ)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/nccl/src/transport/net_ib/p2p.cc
    constantsTouched: []
    func_position:
      end: 254
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 254
    functionName: ncclIbMultiSend
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 1
    functionsReached:
    - wrap_ibv_post_send
    - TRACE
    - ncclIbPrintWr
    - INFO
    - htobe32
    - std::min<uint32_t>
    - min
    - assert
    - DIVUP
    - memset
    - ncclIbCommBaseGetNqpsPerRequest
    - ncclIbCommBaseGetQpForRequest
    - ncclProfilerFunction
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbMultiSend(struct ncclIbSendComm* comm, int slot)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:259,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:263,1
    - Dst: ncclIbStatsCheckFatalCount
      Src: /src/nccl/src/transport/net_ib/p2p.cc:263,1
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/transport/net_ib/p2p.cc:279,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:288,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:289,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_ib/p2p.cc:290,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:295,1
    - Dst: ncclIbGetRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:295,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p.cc:304,1
    - Dst: ncclIbCommBaseGetNqpsPerRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:311,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:315,1
    - Dst: ncclIbCommBaseGetQpForRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:315,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib/p2p.cc:316,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:329,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport/net_ib/p2p.cc:337,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:338,1
    - Dst: ncclIbMultiSend
      Src: /src/nccl/src/transport/net_ib/p2p.cc:338,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport/net_ib/p2p.cc:341,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: 347
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 347
    functionName: ncclIbIsend
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclIbMultiSend
    - TIME_START
    - ncclIbAddEvent
    - ncclSocketGetAddr
    - ncclIbGetRequest
    - TIME_STOP
    - ncclIbStatsCheckFatalCount
    - memset
    - ncclIbCommBaseGetNqpsPerRequest
    - ncclIbCommBaseGetQpForRequest
    - std::atomic_thread_fence
    - WARN
    - ncclSocketToString
    - NCCLCHECK
    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: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:351,1
    - Dst: ncclIbRecvCommGetQpForCts
      Src: /src/nccl/src/transport/net_ib/p2p.cc:351,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p.cc:354,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:399,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:402,1
    - Dst: wrap_ibv_post_send
      Src: /src/nccl/src/transport/net_ib/p2p.cc:402,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - comm
    - req
    - slot
    argTypes:
    - struct ncclIbRecvComm*
    - struct ncclIbRequest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 407
    functionName: ncclIbPostFifo
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 1
    functionsReached:
    - wrap_ibv_post_send
    - TRACE
    - ncclIbRecvCommGetQpForCts
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPostFifo(struct ncclIbRecvComm* comm, struct ncclIbRequest*
      req, int slot)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:412,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:417,1
    - Dst: ncclIbStatsCheckFatalCount
      Src: /src/nccl/src/transport/net_ib/p2p.cc:417,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:420,1
    - Dst: ncclIbGetRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:420,1
    - Dst: ncclIbGetNetCommDevBase
      Src: /src/nccl/src/transport/net_ib/p2p.cc:429,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:432,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport/net_ib/p2p.cc:441,1
    - Dst: ncclIbCommBaseGetNqpsPerRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:442,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:446,1
    - Dst: ncclIbCommBaseGetQpForRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:446,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib/p2p.cc:447,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:453,1
    - Dst: ncclIbPostRecvWorkRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:453,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p.cc:458,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:466,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib/p2p.cc:466,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport/net_ib/p2p.cc:471,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p.cc:475,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p.cc:476,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport/net_ib/p2p.cc:492,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:493,1
    - Dst: ncclIbPostFifo
      Src: /src/nccl/src/transport/net_ib/p2p.cc:493,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport/net_ib/p2p.cc:495,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 64
    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: 457
        line_start: 457
        source_file: /src/nccl/src/transport/net_ib/p2p.cc
    constantsTouched: []
    func_position:
      end: 499
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 499
    functionName: ncclIbIrecv
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - TIME_START
    - ncclIbGetNetCommDevBase
    - ncclIbAddEvent
    - ncclIbGetRequest
    - ncclIbPostFifo
    - TIME_STOP
    - assert
    - ncclIbStatsCheckFatalCount
    - ncclIbCommBaseGetNqpsPerRequest
    - ncclIbPostRecvWorkRequest
    - ncclIbCommBaseGetQpForRequest
    - memset
    - ncclProfilerFunction
    - WARN
    - NCCLCHECK
    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/p2p.cc:509,1
    - Dst: ncclIbGetRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:509,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p.cc:517,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:527,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport/net_ib/p2p.cc:528,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:530,1
    - Dst: wrap_ibv_post_send
      Src: /src/nccl/src/transport/net_ib/p2p.cc:530,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport/net_ib/p2p.cc:531,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib/p2p.cc:533,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 6
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - mhandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - int*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 540
    functionName: ncclIbIflush
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_post_send
    - TRACE
    - TIME_START
    - ncclIbAddEvent
    - ncclIbGetRequest
    - TIME_STOP
    - memset
    - NCCLCHECK
    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: 543
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 543
    functionName: HCA_NAME
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.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: 551
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 551
    functionName: getReqQpIndex
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getReqQpIndex(struct ncclIbRequest* req, int request, int qpNumber)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p.cc:555,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p.cc:556,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/p2p.cc:560,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:562,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:562,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:565,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:565,1
    - Dst: be32toh
      Src: /src/nccl/src/transport/net_ib/p2p.cc:565,1
    - Dst: be32toh
      Src: /src/nccl/src/transport/net_ib/p2p.cc:567,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:569,1
    - Dst: ncclIbRequestRetrieveAsIndex
      Src: /src/nccl/src/transport/net_ib/p2p.cc:569,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:580,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:580,1
    - Dst: be32toh
      Src: /src/nccl/src/transport/net_ib/p2p.cc:580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - base
    - wc
    - req
    argTypes:
    - struct ncclIbNetCommBase*
    - ibv_wc*
    - ncclIbRequest**
    assertStmts:
    - condition: (req != NULL)
      pos:
        line_end: 554
        line_start: 554
        source_file: /src/nccl/src/transport/net_ib/p2p.cc
    - condition: (wc->status == IBV_WC_SUCCESS)
      pos:
        line_end: 559
        line_start: 559
        source_file: /src/nccl/src/transport/net_ib/p2p.cc
    - condition: (wc != NULL)
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/nccl/src/transport/net_ib/p2p.cc
    constantsTouched: []
    func_position:
      end: 582
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 582
    functionName: ncclIbRequestRetrieveFromCompletion
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclIbRequestRetrieveAsIndex
    - TRACE
    - ibvWcOpcodeStr
    - assert
    - be32toh
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRequestRetrieveFromCompletion(struct ncclIbNetCommBase*
      base, ibv_wc* wc, ncclIbRequest** req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:587,1
    - Dst: ncclIbResiliencyRequestIsComplete
      Src: /src/nccl/src/transport/net_ib/p2p.cc:587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct ncclIbRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 590
    functionName: ncclIbRequestIsComplete
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclIbResiliencyRequestIsComplete
    - NCCLCHECK
    linkageType: ''
    returnType: bool
    signature: bool ncclIbRequestIsComplete(struct ncclIbRequest *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:593,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:596,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:602,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib/p2p.cc:602,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:608,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:613,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib/p2p.cc:613,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/p2p.cc:623,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:627,1
    - Dst: ncclIbFreeRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:627,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - r
    - done
    - sizes
    argTypes:
    - struct ncclIbRequest*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 629
    functionName: ncclIbRequestComplete
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclIbFreeRequest
    - memset
    - ncclProfilerFunction
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRequestComplete(struct ncclIbRequest* r, int* done,
      int* sizes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbGetNetCommDevBase
      Src: /src/nccl/src/transport/net_ib/p2p.cc:634,1
    - Dst: ibvGetGidStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:639,1
    - Dst: ibvGetGidStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:640,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:645,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_ib/p2p.cc:646,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:648,1
    - Dst: ibvWcStatusStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:649,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - commBase
    - wc
    - devIndex
    argTypes:
    - struct ncclIbNetCommBase*
    - struct ibv_wc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 653
    functionName: ncclIbLogCompletionWithError
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 0
    functionsReached:
    - ibvWcOpcodeStr
    - ncclIbGetNetCommDevBase
    - ncclSocketGetAddr
    - ibvWcStatusStr
    - ibvGetGidStr
    - WARN
    - ncclSocketToString
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbLogCompletionWithError(struct ncclIbNetCommBase*
      commBase, struct ibv_wc* wc, int devIndex)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:657,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:660,1
    - Dst: ncclIbRequestRetrieveFromCompletion
      Src: /src/nccl/src/transport/net_ib/p2p.cc:660,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:662,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:668,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_ib/p2p.cc:669,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:674,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:674,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:683,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:687,1
    - Dst: getReqQpIndex
      Src: /src/nccl/src/transport/net_ib/p2p.cc:690,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:691,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib/p2p.cc:691,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p.cc:697,1
    - Dst: ibvWcStatusStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:697,1
    - Dst: be32toh
      Src: /src/nccl/src/transport/net_ib/p2p.cc:697,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:697,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:701,1
    - Dst: ibvWcStatusStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:701,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:701,1
    - Dst: be32toh
      Src: /src/nccl/src/transport/net_ib/p2p.cc:706,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:711,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:717,1
    - Dst: ncclIbCommBaseGetQpByQpNum
      Src: /src/nccl/src/transport/net_ib/p2p.cc:717,1
    - Dst: ncclIbPostRecvWorkRequest
      Src: /src/nccl/src/transport/net_ib/p2p.cc:719,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:723,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:727,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/p2p.cc:729,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:729,1
    - Dst: be32toh
      Src: /src/nccl/src/transport/net_ib/p2p.cc:729,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:733,1
    - Dst: ibvWcOpcodeStr
      Src: /src/nccl/src/transport/net_ib/p2p.cc:733,1
    - Dst: be32toh
      Src: /src/nccl/src/transport/net_ib/p2p.cc:733,1
    - Dst: getReqQpIndex
      Src: /src/nccl/src/transport/net_ib/p2p.cc:739,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:740,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib/p2p.cc:740,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 3
    argNames:
    - commBase
    - wc
    - devIndex
    argTypes:
    - struct ncclIbNetCommBase*
    - struct ibv_wc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 745
    functionName: ncclIbCompletionEventProcess
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclIbRequestRetrieveFromCompletion
    - TRACE
    - ibvWcOpcodeStr
    - INFO
    - ncclSocketGetAddr
    - getReqQpIndex
    - ibvWcStatusStr
    - ncclIbCommBaseGetQpByQpNum
    - ncclIbPostRecvWorkRequest
    - ncclProfilerFunction
    - WARN
    - be32toh
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCompletionEventProcess(struct ncclIbNetCommBase*
      commBase, struct ibv_wc* wc, int devIndex)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:752,1
    - Dst: ncclIbResiliencyProgress
      Src: /src/nccl/src/transport/net_ib/p2p.cc:752,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:759,1
    - Dst: ncclIbStatsCheckFatalCount
      Src: /src/nccl/src/transport/net_ib/p2p.cc:759,1
    - Dst: ncclIbRequestIsComplete
      Src: /src/nccl/src/transport/net_ib/p2p.cc:760,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:761,1
    - Dst: ncclIbRequestComplete
      Src: /src/nccl/src/transport/net_ib/p2p.cc:761,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport/net_ib/p2p.cc:774,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:775,1
    - Dst: wrap_ibv_poll_cq
      Src: /src/nccl/src/transport/net_ib/p2p.cc:775,1
    - Dst: TIME_CANCEL
      Src: /src/nccl/src/transport/net_ib/p2p.cc:776,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport/net_ib/p2p.cc:776,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/p2p.cc:783,1
    - Dst: ncclIbLogCompletionWithError
      Src: /src/nccl/src/transport/net_ib/p2p.cc:784,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:788,1
    - Dst: ncclIbResiliencyHandleCompletionError
      Src: /src/nccl/src/transport/net_ib/p2p.cc:788,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib/p2p.cc:790,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:791,1
    - Dst: ncclIbCompletionEventProcess
      Src: /src/nccl/src/transport/net_ib/p2p.cc:791,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/p2p.cc:796,1
    - Dst: ncclIbStatsCheckFatalCount
      Src: /src/nccl/src/transport/net_ib/p2p.cc:796,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - request
    - done
    - sizes
    argTypes:
    - void*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 747
    functionDepth: 8
    functionLinenumber: 747
    functionLinenumberEnd: 802
    functionName: ncclIbTest
    functionSourceFile: /src/nccl/src/transport/net_ib/p2p.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_poll_cq
    - TRACE
    - TIME_START
    - ncclIbRequestComplete
    - ncclIbLogCompletionWithError
    - TIME_STOP
    - ncclIbResiliencyProgress
    - ncclIbRequestIsComplete
    - ncclIbStatsCheckFatalCount
    - ncclIbResiliencyHandleCompletionError
    - TIME_CANCEL
    - WARN
    - ncclIbCompletionEventProcess
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbTest(void* request, int* done, int* sizes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: KNL_MODULE_LOADED
    functionSourceFile: /src/nccl/src/transport/net_ib/gdr.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/gdr.cc:18,1
    - Dst: KNL_MODULE_LOADED
      Src: /src/nccl/src/transport/net_ib/gdr.cc:19,1
    - Dst: KNL_MODULE_LOADED
      Src: /src/nccl/src/transport/net_ib/gdr.cc:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: ibGdrSupportInitOnce
    functionSourceFile: /src/nccl/src/transport/net_ib/gdr.cc
    functionUses: 0
    functionsReached:
    - KNL_MODULE_LOADED
    linkageType: ''
    returnType: void
    signature: void ibGdrSupportInitOnce()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/transport/net_ib/gdr.cc:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: ncclIbGdrSupport
    functionSourceFile: /src/nccl/src/transport/net_ib/gdr.cc
    functionUses: 4
    functionsReached:
    - std::call_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbGdrSupport()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KNL_MODULE_LOADED
      Src: /src/nccl/src/transport/net_ib/gdr.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: ibPeerMemSupportInitOnce
    functionSourceFile: /src/nccl/src/transport/net_ib/gdr.cc
    functionUses: 0
    functionsReached:
    - KNL_MODULE_LOADED
    linkageType: ''
    returnType: void
    signature: void ibPeerMemSupportInitOnce()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/transport/net_ib/gdr.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: ncclIbPeerMemSupport
    functionSourceFile: /src/nccl/src/transport/net_ib/gdr.cc
    functionUses: 2
    functionsReached:
    - std::call_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPeerMemSupport()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdr.cc:56,1
    - Dst: wrap_ibv_alloc_pd
      Src: /src/nccl/src/transport/net_ib/gdr.cc:56,1
    - Dst: wrap_direct_ibv_reg_dmabuf_mr
      Src: /src/nccl/src/transport/net_ib/gdr.cc:58,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdr.cc:61,1
    - Dst: wrap_ibv_dealloc_pd
      Src: /src/nccl/src/transport/net_ib/gdr.cc:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: ibDmaBufSupportInitOnce
    functionSourceFile: /src/nccl/src/transport/net_ib/gdr.cc
    functionUses: 0
    functionsReached:
    - wrap_direct_ibv_reg_dmabuf_mr
    - NCCLCHECKGOTO
    - wrap_ibv_dealloc_pd
    - wrap_ibv_alloc_pd
    linkageType: ''
    returnType: void
    signature: void ibDmaBufSupportInitOnce()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/transport/net_ib/gdr.cc:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: ncclIbDmaBufSupport
    functionSourceFile: /src/nccl/src/transport/net_ib/gdr.cc
    functionUses: 3
    functionsReached:
    - std::call_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbDmaBufSupport(int dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - call
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: DOCACHECK
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOCACHECK(call)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - call
    - ','
    - RES
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: DOCACHECKGOTO
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOCACHECKGOTO(call, RES, label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbPciRelaxedOrdering
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:78,1
    - Dst: wrap_ibv_reg_mr_iova2
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 89
    functionName: gdakiRelaxedOrderingEnabled
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_reg_mr_iova2
    - ncclParamIbPciRelaxedOrdering
    linkageType: ''
    returnType: bool
    signature: bool gdakiRelaxedOrderingEnabled()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gdakiRelaxedOrderingEnabled
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:154,1
    - Dst: NOWARN
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:157,1
    - Dst: gdakiRegMrDmaBuf
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:157,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:160,1
    - Dst: wrap_ibv_reg_mr_iova2
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - mr
    - pd
    - addr
    - length
    - access
    argTypes:
    - struct ibv_mr**
    - struct ibv_pd*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 162
    functionName: gdakiRegMr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - gdakiRegMrDmaBuf
    - wrap_ibv_reg_mr_iova2
    - NOWARN
    - gdakiRelaxedOrderingEnabled
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t gdakiRegMr(struct ibv_mr **mr, struct ibv_pd *pd, void
      *addr, size_t length,\n                               int access, bool force_strict_ordering
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:175,1
    - Dst: EQCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:176,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:178,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - num_elements
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: GdakiHostGPUMemHandle::allocate
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - calloc
    - ncclCuMemAlloc
    - NCCLCHECK
    - EQCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t allocate(unsigned int num_elements)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:188,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:192,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: GdakiHostGPUMemHandle::deallocate
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - free
    - ncclCuMemFree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t deallocate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:199,1
    - Dst: ncclCudaMemcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: GdakiHostGPUMemHandle::copy_h_to_d
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - ncclCudaMemcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t copy_h_to_d()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:204,1
    - Dst: ncclCudaMemcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: GdakiHostGPUMemHandle::copy_d_to_h
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - ncclCudaMemcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t copy_d_to_h()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 208
    functionName: GdakiHostGPUMemHandle::GdakiHostGPUMemHandle
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GdakiHostGPUMemHandle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deallocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: ~GdakiHostGPUMemHandle()
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - deallocate
    linkageType: ''
    returnType: void
    signature: void ~GdakiHostGPUMemHandle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:235,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:235,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:237,1
    - Dst: cudaMemset
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:237,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:238,1
    - Dst: GdakiGlobalGPUBufferTable::rkeys_hd_mhandle::allocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - num_elements
    - num_ranks
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: GdakiGlobalGPUBufferTable::allocate
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - GdakiGlobalGPUBufferTable::rkeys_hd_mhandle::allocate
    - cudaMemset
    - CUDACHECK
    - ncclCuMemAlloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t allocate(unsigned int num_elements, unsigned int num_ranks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:244,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: GdakiGlobalGPUBufferTable::deallocate
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - ncclCuMemFree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t deallocate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:252,1
    - Dst: gdakiRegMr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ib_pd
    argTypes:
    - struct ibv_pd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: GdakiGlobalGPUBufferTable::register_mr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - gdakiRegMr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t register_mr(struct ibv_pd *ib_pd, bool force_strict_ordering
      = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:261,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 265
    functionName: GdakiGlobalGPUBufferTable::deregister_mr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_dereg_mr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t deregister_mr()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:269,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:270,1
    - Dst: struct ncclGinIbCollComm*::allGather
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:270,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:271,1
    - Dst: GdakiGlobalGPUBufferTable::rkeys_hd_mhandle::copy_h_to_d
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cComm
    argTypes:
    - struct ncclGinIbCollComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: GdakiGlobalGPUBufferTable::exchange_info
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - struct ncclGinIbCollComm*::allGather
    - GdakiGlobalGPUBufferTable::rkeys_hd_mhandle::copy_h_to_d
    - htobe32
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t exchange_info(struct ncclGinIbCollComm *cComm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - num_elements
    - out_start_idx
    argTypes:
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: GdakiGlobalGPUBufferTable::allocate_elements
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t allocate_elements(unsigned int num_elements, unsigned
      int *out_start_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - start_idx
    - num_elements
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: GdakiGlobalGPUBufferTable::free_elements
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void free_elements(unsigned int start_idx, unsigned int num_elements)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: GdakiGlobalGPUBufferTable::get_rkeys_d
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t *get_rkeys_d()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: GdakiGlobalGPUBufferTable::GdakiGlobalGPUBufferTable
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GdakiGlobalGPUBufferTable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deregister_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:297,1
    - Dst: deallocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: ~GdakiGlobalGPUBufferTable()
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - deregister_mr
    - deallocate
    linkageType: ''
    returnType: void
    signature: void ~GdakiGlobalGPUBufferTable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: gdaki_round_up
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T gdaki_round_up(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_qp_get_qpn
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:359,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:360,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - exch_info
    - gdaki_ctx
    - gqp
    argTypes:
    - struct gdaki_exch_info*
    - struct gdaki_context*
    - struct doca_gpu_verbs_qp_hl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: gdakiFillExchInfo
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - doca_verbs_qp_get_qpn
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void gdakiFillExchInfo(struct gdaki_exch_info *exch_info, struct gdaki_context
      *gdaki_ctx,\n                              struct doca_gpu_verbs_qp_hl *gqp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:369,1
    - Dst: doca_verbs_ah_attr_create
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:369,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:372,1
    - Dst: doca_verbs_ah_attr_set_sl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:372,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:373,1
    - Dst: doca_verbs_ah_attr_set_addr_type
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:373,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:376,1
    - Dst: doca_verbs_ah_attr_set_traffic_class
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:376,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:377,1
    - Dst: doca_verbs_ah_attr_set_addr_type
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:377,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:382,1
    - Dst: doca_verbs_ah_attr_set_sgid_index
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:382,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:383,1
    - Dst: doca_verbs_ah_attr_set_hop_limit
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:383,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:388,1
    - Dst: doca_verbs_ah_attr_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - ib_context
    - ib_sl
    - ib_tc
    - ib_gid_index
    argTypes:
    - struct gdaki_context*
    - struct ibv_context*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 390
    functionName: gdakiCreateVerbsAh
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - doca_verbs_ah_attr_set_sgid_index
    - doca_verbs_ah_attr_set_hop_limit
    - doca_verbs_ah_attr_set_traffic_class
    - doca_verbs_ah_attr_create
    - DOCACHECK
    - doca_verbs_ah_attr_destroy
    - doca_verbs_ah_attr_set_sl
    - doca_verbs_ah_attr_set_addr_type
    - DOCACHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t gdakiCreateVerbsAh(struct gdaki_context *ctx, struct
      ibv_context* ib_context, int ib_sl, int ib_tc,\n                                       int
      ib_gid_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamGinGdakiMaxDestRdAtomic
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:396,1
    - Dst: ncclParamGinGdakiMaxDestRdAtomic
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:396,1
    - Dst: ncclParamGinGdakiMaxQpRdAtomic
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:397,1
    - Dst: ncclParamGinGdakiMaxQpRdAtomic
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:397,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:399,1
    - Dst: doca_verbs_ah_attr_set_gid
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:399,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:400,1
    - Dst: doca_verbs_ah_attr_set_dlid
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:400,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:401,1
    - Dst: doca_verbs_qp_attr_create
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:401,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:402,1
    - Dst: doca_verbs_qp_attr_set_path_mtu
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:403,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:405,1
    - Dst: doca_verbs_qp_attr_set_rq_psn
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:405,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:407,1
    - Dst: doca_verbs_qp_attr_set_sq_psn
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:407,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:408,1
    - Dst: doca_verbs_qp_attr_set_port_num
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:408,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:410,1
    - Dst: doca_verbs_qp_attr_set_ack_timeout
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:410,1
    - Dst: ncclParamIbTimeout
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:410,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:412,1
    - Dst: doca_verbs_qp_attr_set_retry_cnt
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:412,1
    - Dst: ncclParamIbRetryCnt
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:412,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:414,1
    - Dst: doca_verbs_qp_attr_set_rnr_retry
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:414,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:416,1
    - Dst: doca_verbs_qp_attr_set_min_rnr_timer
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:416,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:418,1
    - Dst: doca_verbs_qp_attr_set_next_state
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:419,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:421,1
    - Dst: doca_verbs_qp_attr_set_allow_remote_write
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:421,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:423,1
    - Dst: doca_verbs_qp_attr_set_allow_remote_read
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:423,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:425,1
    - Dst: doca_verbs_qp_attr_set_allow_remote_atomic
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:425,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:428,1
    - Dst: doca_verbs_qp_attr_set_ah_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:428,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:430,1
    - Dst: doca_verbs_qp_attr_set_dest_qp_num
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:430,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:432,1
    - Dst: doca_verbs_qp_attr_set_pkey_index
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:432,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:432,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:435,1
    - Dst: doca_verbs_qp_modify
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:435,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:443,1
    - Dst: doca_verbs_qp_attr_set_max_dest_rd_atomic
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:444,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:447,1
    - Dst: doca_verbs_qp_attr_set_next_state
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:448,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:451,1
    - Dst: doca_verbs_qp_modify
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:451,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:458,1
    - Dst: doca_verbs_qp_attr_set_max_rd_atomic
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:459,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:462,1
    - Dst: doca_verbs_qp_attr_set_next_state
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:463,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:466,1
    - Dst: doca_verbs_qp_modify
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:466,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:473,1
    - Dst: doca_verbs_qp_attr_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:473,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:478,1
    - Dst: doca_verbs_qp_attr_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 3
    argNames:
    - ctx
    - gqp
    - exch_info
    argTypes:
    - struct gdaki_context*
    - struct doca_gpu_verbs_qp_hl*
    - struct gdaki_exch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 480
    functionName: gdakiConnectQp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 0
    functionsReached:
    - ncclParamGinGdakiMaxQpRdAtomic
    - doca_verbs_qp_attr_create
    - doca_verbs_ah_attr_set_dlid
    - DOCACHECKGOTO
    - doca_verbs_qp_attr_set_allow_remote_atomic
    - doca_verbs_qp_attr_set_min_rnr_timer
    - doca_verbs_qp_attr_set_max_rd_atomic
    - doca_verbs_qp_attr_set_ack_timeout
    - doca_verbs_qp_attr_set_sq_psn
    - doca_verbs_qp_attr_destroy
    - ncclParamIbTimeout
    - doca_verbs_qp_attr_set_port_num
    - doca_verbs_qp_modify
    - doca_verbs_qp_attr_set_path_mtu
    - ncclParamIbPkey
    - doca_verbs_qp_attr_set_rq_psn
    - doca_verbs_qp_attr_set_max_dest_rd_atomic
    - doca_verbs_qp_attr_set_pkey_index
    - doca_verbs_qp_attr_set_next_state
    - doca_verbs_ah_attr_set_gid
    - doca_verbs_qp_attr_set_rnr_retry
    - doca_verbs_qp_attr_set_allow_remote_read
    - doca_verbs_qp_attr_set_retry_cnt
    - doca_verbs_qp_attr_set_allow_remote_write
    - DOCACHECK
    - doca_verbs_qp_attr_set_ah_attr
    - doca_verbs_qp_attr_set_dest_qp_num
    - ncclParamIbRetryCnt
    - ncclParamGinGdakiMaxDestRdAtomic
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t gdakiConnectQp(struct gdaki_context *ctx, struct doca_gpu_verbs_qp_hl
      *gqp,\n                                   struct gdaki_exch_info *exch_info)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: GdakiHostGPUMemHandle<struct ncclGinGdakiGPUContext>::GdakiHostGPUMemHandle<struct
        ncclGinGdakiGPUContext>
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:523,1
    - Dst: GdakiGlobalGPUBufferTable<uint64_t>::GdakiGlobalGPUBufferTable<uint64_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:524,1
    - Dst: GdakiGlobalGPUBufferTable<uint64_t>::GdakiGlobalGPUBufferTable<uint64_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:525,1
    - Dst: ncclParamIbSl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:527,1
    - Dst: ncclParamIbSl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:527,1
    - Dst: ncclParamIbTc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:528,1
    - Dst: ncclParamIbTc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:528,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:531,1
    - Dst: struct ncclGinIbCollComm*::getProperties
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:531,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:533,1
    - Dst: GdakiHostGPUMemHandle*::allocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:533,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:534,1
    - Dst: GdakiGlobalGPUBufferTable*::allocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:534,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:535,1
    - Dst: GdakiGlobalGPUBufferTable*::allocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:535,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:537,1
    - Dst: EQCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:538,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:540,1
    - Dst: EQCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:541,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:543,1
    - Dst: EQCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:545,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:548,1
    - Dst: EQCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:549,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:553,1
    - Dst: EQCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:554,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:556,1
    - Dst: EQCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:557,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:559,1
    - Dst: EQCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:560,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:562,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:562,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:563,1
    - Dst: cudaDeviceGetPCIBusId
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:563,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:565,1
    - Dst: doca_gpu_create
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:565,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:567,1
    - Dst: wrap_ibv_query_device
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:567,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:570,1
    - Dst: GdakiGlobalGPUBufferTable*::register_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:570,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:571,1
    - Dst: GdakiGlobalGPUBufferTable*::register_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:571,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:573,1
    - Dst: GdakiGlobalGPUBufferTable*::exchange_info
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:573,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:574,1
    - Dst: GdakiGlobalGPUBufferTable*::exchange_info
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:574,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:577,1
    - Dst: wrap_ibv_query_port
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:577,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:581,1
    - Dst: struct ncclGinIbCollComm*::getGidIndex
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:581,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:584,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:584,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:587,1
    - Dst: gdakiCreateVerbsAh
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:587,1
    - Dst: ncclParamGinGdakiQpDepth
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:590,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:592,1
    - Dst: ncclParamGinGdakiNicHandler
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:597,1
    - Dst: ncclParamGinGdakiUseReliableDB
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:599,1
    - Dst: doca_gpu_verbs_create_qp_group_hl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:606,1
    - Dst: ncclParamGinGdakiUseReliableDB
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:614,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:619,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:632,1
    - Dst: doca_verbs_qp_get_qpn
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:634,1
    - Dst: doca_verbs_qp_get_qpn
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:635,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:640,1
    - Dst: doca_gpu_verbs_create_qp_hl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:640,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:642,1
    - Dst: doca_verbs_qp_get_qpn
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:643,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:647,1
    - Dst: doca_gpu_verbs_create_qp_hl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:648,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:650,1
    - Dst: doca_verbs_qp_get_qpn
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:651,1
    - Dst: gdakiFillExchInfo
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:658,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:662,1
    - Dst: struct ncclGinIbCollComm*::allToAll
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:663,1
    - Dst: gdakiFillExchInfo
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:669,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:672,1
    - Dst: gdakiConnectQp
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:672,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:675,1
    - Dst: doca_verbs_qp_get_qpn
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:677,1
    - Dst: gdakiFillExchInfo
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:685,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:686,1
    - Dst: gdakiConnectQp
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:686,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:687,1
    - Dst: doca_verbs_qp_get_qpn
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:688,1
    - Dst: gdakiFillExchInfo
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:694,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:695,1
    - Dst: gdakiConnectQp
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:695,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:697,1
    - Dst: doca_verbs_qp_get_qpn
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:699,1
    - Dst: gdakiFillExchInfo
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:701,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:702,1
    - Dst: gdakiConnectQp
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:702,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:704,1
    - Dst: doca_verbs_qp_get_qpn
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:707,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:711,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:711,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:715,1
    - Dst: gdakiRegMr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:715,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:720,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:730,1
    - Dst: doca_gpu_verbs_export_multi_qps_dev
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:730,1
    - Dst: DOCACHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:738,1
    - Dst: doca_gpu_verbs_export_multi_qps_dev
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:738,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:743,1
    - Dst: GdakiGlobalGPUBufferTable*::allocate_elements
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:743,1
    - Dst: GdakiGlobalGPUBufferTable*::get_rkeys_d
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:745,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:746,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:750,1
    - Dst: GdakiGlobalGPUBufferTable*::allocate_elements
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:750,1
    - Dst: GdakiGlobalGPUBufferTable*::get_rkeys_d
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:752,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:753,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:756,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:759,1
    - Dst: GdakiHostGPUMemHandle*::copy_h_to_d
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:759,1
    - Dst: doca_gpu_verbs_unexport_multi_qps_dev
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:792,1
    - Dst: doca_gpu_verbs_unexport_multi_qps_dev
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:799,1
    - Dst: doca_gpu_verbs_destroy_qp_group_hl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:806,1
    - Dst: doca_gpu_verbs_destroy_qp_hl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:810,1
    - Dst: doca_gpu_verbs_destroy_qp_hl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:814,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:818,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:819,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:820,1
    - Dst: doca_gpu_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:822,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:825,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:827,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:828,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:835,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:836,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:840,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:842,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:844,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 215
    argCount: 8
    argNames:
    - collComm
    - nSignals
    - nCounters
    - nContexts
    - queueDepth
    - trafficClass
    - outGinCtx
    - outDevHandle
    argTypes:
    - void*
    - int
    - int
    - int
    - int
    - int
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 847
    functionName: ncclGinGdakiCreateContext
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 1
    functionsReached:
    - calloc
    - wrap_ibv_dereg_mr
    - struct ncclGinIbCollComm*::getProperties
    - GdakiHostGPUMemHandle*::allocate
    - struct ncclGinIbCollComm*::getGidIndex
    - NCCLCHECKGOTO
    - doca_gpu_verbs_unexport_multi_qps_dev
    - CUDACHECK
    - DOCACHECKGOTO
    - ncclParamGinGdakiUseReliableDB
    - WARN
    - GdakiGlobalGPUBufferTable*::register_mr
    - doca_gpu_verbs_create_qp_hl
    - gdakiConnectQp
    - doca_verbs_qp_get_qpn
    - doca_gpu_verbs_export_multi_qps_dev
    - GdakiGlobalGPUBufferTable*::allocate_elements
    - doca_gpu_verbs_destroy_qp_group_hl
    - doca_gpu_verbs_create_qp_group_hl
    - gdakiRegMr
    - free
    - struct ncclGinIbCollComm*::allToAll
    - ncclParamIbSl
    - ncclCuMemAlloc
    - ncclParamIbTc
    - ncclParamGinGdakiQpDepth
    - INFO
    - htobe32
    - GdakiGlobalGPUBufferTable<uint64_t>::GdakiGlobalGPUBufferTable<uint64_t>
    - ncclCuMemFree
    - ncclParamGinGdakiNicHandler
    - GdakiGlobalGPUBufferTable*::allocate
    - wrap_ibv_query_device
    - GdakiGlobalGPUBufferTable*::exchange_info
    - memset
    - wrap_ibv_query_port
    - doca_gpu_destroy
    - NCCLCHECK
    - cudaGetDevice
    - doca_gpu_verbs_destroy_qp_hl
    - GdakiGlobalGPUBufferTable*::get_rkeys_d
    - GdakiHostGPUMemHandle<struct ncclGinGdakiGPUContext>::GdakiHostGPUMemHandle<struct
      ncclGinGdakiGPUContext>
    - gdakiCreateVerbsAh
    - doca_gpu_create
    - wrap_ibv_query_gid
    - gdakiFillExchInfo
    - cudaDeviceGetPCIBusId
    - GdakiHostGPUMemHandle*::copy_h_to_d
    - EQCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinGdakiCreateContext(void *collComm, int nSignals,
      int nCounters, int nContexts, int queueDepth,\n                                       int
      trafficClass, void **outGinCtx, ncclNetDeviceHandle_t **outDevHandle)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:865,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:873,1
    - Dst: doca_gpu_verbs_unexport_multi_qps_dev
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:873,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:880,1
    - Dst: doca_gpu_verbs_unexport_multi_qps_dev
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:880,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:884,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:885,1
    - Dst: struct gdaki_context*::gin_gdaki_gpu_ctx_hd_mhandle::deallocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:885,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:890,1
    - Dst: doca_gpu_verbs_destroy_qp_group_hl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:890,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:894,1
    - Dst: doca_gpu_verbs_destroy_qp_hl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:894,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:898,1
    - Dst: doca_gpu_verbs_destroy_qp_hl
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:898,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:902,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:903,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:904,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:907,1
    - Dst: struct gdaki_context*::counters_table::deregister_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:907,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:908,1
    - Dst: struct gdaki_context*::counters_table::deallocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:908,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:912,1
    - Dst: struct gdaki_context*::signals_table::deregister_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:912,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:913,1
    - Dst: struct gdaki_context*::signals_table::deallocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:913,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:917,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:917,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:918,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:918,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:921,1
    - Dst: doca_verbs_ah_attr_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:921,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:925,1
    - Dst: doca_gpu_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:925,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:927,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:929,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:930,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 67
    argCount: 1
    argNames:
    - ginCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 933
    functionName: ncclGinGdakiDestroyContext
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 1
    functionsReached:
    - calloc
    - struct gdaki_context*::counters_table::deallocate
    - struct gdaki_context*::signals_table::deregister_mr
    - struct gdaki_context*::signals_table::deallocate
    - doca_gpu_verbs_destroy_qp_group_hl
    - wrap_ibv_dereg_mr
    - doca_gpu_verbs_destroy_qp_hl
    - ncclCuMemFree
    - DOCACHECK
    - free
    - struct gdaki_context*::counters_table::deregister_mr
    - struct gdaki_context*::gin_gdaki_gpu_ctx_hd_mhandle::deallocate
    - doca_verbs_ah_attr_destroy
    - memset
    - doca_gpu_verbs_unexport_multi_qps_dev
    - doca_gpu_destroy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinGdakiDestroyContext(void *ginCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GdakiHostGPUMemHandle<struct ncclGinGdakiMemHandle>::GdakiHostGPUMemHandle<struct
        ncclGinGdakiMemHandle>
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:942,1
    - Dst: GdakiHostGPUMemHandle<__be32>::GdakiHostGPUMemHandle<__be32>
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:944,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:948,1
    - Dst: EQCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:949,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:952,1
    - Dst: gdakiRegMr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:952,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:956,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:957,1
    - Dst: GdakiHostGPUMemHandle*::allocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:957,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:958,1
    - Dst: struct ncclGinIbCollComm*::allGather
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:958,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:959,1
    - Dst: GdakiHostGPUMemHandle*::copy_h_to_d
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:959,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:961,1
    - Dst: GdakiHostGPUMemHandle*::allocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:961,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:963,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:964,1
    - Dst: GdakiHostGPUMemHandle*::copy_h_to_d
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:964,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:971,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:972,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 7
    argNames:
    - collComm
    - data
    - size
    - type
    - mr_flags
    - mhandle
    - ginHandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 935
    functionDepth: 3
    functionLinenumber: 935
    functionLinenumberEnd: 983
    functionName: ncclGinGdakiRegMrSym
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 1
    functionsReached:
    - calloc
    - struct ncclGinIbCollComm*::allGather
    - INFO
    - htobe32
    - EQCHECK
    - gdakiRegMr
    - GdakiHostGPUMemHandle*::allocate
    - NCCLCHECKGOTO
    - GdakiHostGPUMemHandle*::copy_h_to_d
    - GdakiHostGPUMemHandle<__be32>::GdakiHostGPUMemHandle<__be32>
    - GdakiHostGPUMemHandle<struct ncclGinGdakiMemHandle>::GdakiHostGPUMemHandle<struct
      ncclGinGdakiMemHandle>
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinGdakiRegMrSym(void *collComm, void *data, size_t
      size, int type, uint64_t mr_flags, void **mhandle,\n                                  void
      **ginHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:990,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:991,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:991,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:993,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:993,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:995,1
    - Dst: struct gdaki_mem_handle*::gdaki_mhandle_hd_mhandle::deallocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:995,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:997,1
    - Dst: struct gdaki_mem_handle*::rkeys_hd_mhandle::deallocate
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:997,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1000,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - collComm
    - mhandle
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1005
    functionName: ncclGinGdakiDeregMrSym
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 1
    functionsReached:
    - wrap_ibv_dereg_mr
    - INFO
    - htobe32
    - struct gdaki_mem_handle*::gdaki_mhandle_hd_mhandle::deallocate
    - free
    - memset
    - struct gdaki_mem_handle*::rkeys_hd_mhandle::deallocate
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinGdakiDeregMrSym(void *collComm, void *mhandle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1021,1
    - Dst: doca_gpu_verbs_cpu_proxy_progress
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1021,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1027,1
    - Dst: doca_gpu_verbs_cpu_proxy_progress
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1027,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1034
    functionName: ncclGinGdakiProgress
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 1
    functionsReached:
    - doca_gpu_verbs_cpu_proxy_progress
    - DOCACHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinGdakiProgress(void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clockNano
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1045,1
    - Dst: ncclParamGinErrorQuerySec
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1046,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1054,1
    - Dst: doca_gpu_verbs_query_last_error
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1054,1
    - Dst: DOCACHECK
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1059,1
    - Dst: doca_gpu_verbs_query_last_error
      Src: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc:1059,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ginCtx
    - hasError
    argTypes:
    - void*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1066
    functionName: ncclGinGdakiQueryLastError
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    functionUses: 1
    functionsReached:
    - doca_gpu_verbs_query_last_error
    - DOCACHECK
    - clockNano
    - ncclParamGinErrorQuerySec
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinGdakiQueryLastError(void *ginCtx, bool *hasError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_cq::create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:69,1
    - Dst: doca_verbs_cq::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:71,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ibv_ctx
    - cq_attr
    argTypes:
    - struct ibv_context*
    - struct doca_verbs_cq_attr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: doca_verbs_cq::doca_verbs_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_cq::create
    - doca_verbs_cq::destroy
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: void doca_verbs_cq::doca_verbs_cq(struct ibv_context *ibv_ctx, struct
      doca_verbs_cq_attr &cq_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:77,1
    - Dst: doca_verbs_cq::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: doca_verbs_cq::~doca_verbs_cq()
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - doca_verbs_cq::destroy
    linkageType: ''
    returnType: void
    signature: void doca_verbs_cq::~doca_verbs_cq()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:86,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:87,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:88,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:90,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:91,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:92,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:93,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:94,1
    - Dst: DEVX_SET64
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:95,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:96,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:97,1
    - Dst: DEVX_SET64
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:98,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_query_eqn
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:101,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:103,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:107,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:110,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:114,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:117,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:118,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 7
    argNames:
    - uar_id
    - log_nb_cqes
    - db_umem_offset
    - db_umem_id
    - wq_umem_id
    - cq_overrun
    - cq_collapsed
    argTypes:
    - uint32_t
    - uint32_t
    - uint64_t
    - uint32_t
    - uint32_t
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 125
    functionName: doca_verbs_cq::create_cq_obj
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_wrapper_mlx5dv_devx_obj_create
    - DEVX_SET64
    - DEVX_GET
    - static_cast<uint8_t>
    - DEVX_SET
    - doca_verbs_wrapper_mlx5dv_devx_query_eqn
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_cq::create_cq_obj(uint32_t uar_id, uint32_t
      log_nb_cqes,\n                                          uint64_t db_umem_offset,
      uint32_t db_umem_id,\n                                          uint32_t wq_umem_id,
      bool cq_overrun,\n                                          uint8_t cq_collapsed)
      noexcept"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:132,1
    - Dst: doca_verbs_query_device
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:137,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:139,1
    - Dst: doca_internal_utils_is_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:143,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:144,1
    - Dst: static_cast<uint32_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:148,1
    - Dst: doca_internal_utils_log2
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:149,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:152,1
    - Dst: doca_internal_utils_align_up_uint32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:162,1
    - Dst: doca_internal_utils_align_up_uint32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:166,1
    - Dst: memalign
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:169,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:170,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_umem_reg
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:172,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:175,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:181,1
    - Dst: doca_verbs_umem_get_address
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:186,1
    - Dst: reinterpret_cast<void **>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:187,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:189,1
    - Dst: doca_verbs_umem_get_id
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:193,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:195,1
    - Dst: doca_verbs_umem_get_address
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:200,1
    - Dst: reinterpret_cast<void **>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:201,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:203,1
    - Dst: doca_verbs_umem_get_id
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:207,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:209,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:214,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_alloc_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:222,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_alloc_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:225,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:228,1
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:233,1
    - Dst: doca_verbs_uar_id_get
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:237,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:239,1
    - Dst: doca_verbs_uar_reg_addr_get
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:244,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:246,1
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:249,1
    - Dst: doca_verbs_cq::create_cq_obj
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:253,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:256,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:260,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 86
    argCount: 1
    argNames:
    - cq_attr
    argTypes:
    - struct doca_verbs_cq_attr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 261
    functionName: doca_verbs_cq::create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - memalign
    - reinterpret_cast<uint32_t *>
    - doca_verbs_wrapper_mlx5dv_devx_umem_reg
    - doca_verbs_uar_id_get
    - doca_verbs_wrapper_mlx5dv_devx_alloc_uar
    - doca_verbs_cq::create_cq_obj
    - doca_verbs_umem_get_id
    - reinterpret_cast<void **>
    - doca_verbs_uar_reg_addr_get
    - doca_internal_utils_log2
    - doca_verbs_query_device
    - doca_verbs_umem_get_address
    - doca_internal_utils_is_power_of_two
    - memset
    - reinterpret_cast<uint64_t *>
    - DOCA_LOG
    - doca_internal_utils_align_up_uint32
    linkageType: ''
    returnType: void
    signature: void doca_verbs_cq::create(struct doca_verbs_cq_attr &cq_attr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_device_attr_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:265,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:267,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:274,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:276,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_free_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:283,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:285,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_umem_dereg
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:292,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:294,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:301,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 306
    functionName: doca_verbs_cq::destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 2
    functionsReached:
    - doca_verbs_wrapper_mlx5dv_devx_free_uar
    - doca_verbs_wrapper_mlx5dv_devx_obj_destroy
    - doca_verbs_wrapper_mlx5dv_devx_umem_dereg
    - free
    - doca_verbs_device_attr_free
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_cq::destroy() noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:314,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:318,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - verbs_cq_attr
    argTypes:
    - struct doca_verbs_cq_attr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 325
    functionName: doca_verbs_cq_attr_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - calloc
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_cq_attr_create(struct doca_verbs_cq_attr **verbs_cq_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:329,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cq_attr
    argTypes:
    - struct doca_verbs_cq_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: doca_verbs_cq_attr_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - free
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_cq_attr_destroy(struct doca_verbs_cq_attr *cq_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cq_attr
    - cq_size
    argTypes:
    - struct doca_verbs_cq_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 345
    functionName: doca_verbs_cq_attr_set_cq_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_cq_attr_set_cq_size(struct doca_verbs_cq_attr
      *cq_attr, uint32_t cq_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cq_attr
    - cq_context
    argTypes:
    - struct doca_verbs_cq_attr*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 356
    functionName: doca_verbs_cq_attr_set_cq_context
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_cq_attr_set_cq_context(struct doca_verbs_cq_attr
      *cq_attr,\n                                               void *cq_context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:362,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - cq_attr
    - external_umem
    - external_umem_offset
    argTypes:
    - struct doca_verbs_cq_attr*
    - struct doca_verbs_umem*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 373
    functionName: doca_verbs_cq_attr_set_external_umem
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_cq_attr_set_external_umem(struct doca_verbs_cq_attr
      *cq_attr,\n                                                  struct doca_verbs_umem
      *external_umem,\n                                                  uint64_t
      external_umem_offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:379,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - cq_attr
    - external_umem
    - external_umem_offset
    argTypes:
    - struct doca_verbs_cq_attr*
    - struct doca_verbs_umem*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 391
    functionName: doca_verbs_cq_attr_set_external_dbr_umem
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_cq_attr_set_external_dbr_umem(struct doca_verbs_cq_attr
      *cq_attr,\n                                                      struct doca_verbs_umem
      *external_umem,\n                                                      uint64_t
      external_umem_offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:396,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - cq_attr
    - external_uar
    argTypes:
    - struct doca_verbs_cq_attr*
    - struct doca_verbs_uar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 407
    functionName: doca_verbs_cq_attr_set_external_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_cq_attr_set_external_uar(struct doca_verbs_cq_attr
      *cq_attr,\n                                                 struct doca_verbs_uar
      *external_uar)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cq_attr
    - overrun
    argTypes:
    - struct doca_verbs_cq_attr*
    - enum doca_verbs_cq_overrun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 419
    functionName: doca_verbs_cq_attr_set_cq_overrun
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_cq_attr_set_cq_overrun(struct doca_verbs_cq_attr
      *cq_attr,\n                                               enum doca_verbs_cq_overrun
      overrun)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:424,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - cq_attr
    - collapsed
    argTypes:
    - struct doca_verbs_cq_attr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 436
    functionName: doca_verbs_cq_attr_set_cq_collapsed
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_cq_attr_set_cq_collapsed(struct doca_verbs_cq_attr
      *cq_attr,\n                                                 uint8_t collapsed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:442,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:447,1
    - Dst: doca_verbs_cq::doca_verbs_cq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:452,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - context
    - verbs_cq_attr
    - verbs_cq
    argTypes:
    - struct ibv_context*
    - struct doca_verbs_cq_attr*
    - struct doca_verbs_cq**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 458
    functionName: doca_verbs_cq_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_cq::doca_verbs_cq
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_cq_create(struct ibv_context *context,\n                                  struct
      doca_verbs_cq_attr *verbs_cq_attr,\n                                  struct
      doca_verbs_cq **verbs_cq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:462,1
    - Dst: struct doca_verbs_cq*::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:466,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - verbs_cq
    argTypes:
    - struct doca_verbs_cq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 474
    functionName: doca_verbs_cq_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    - struct doca_verbs_cq*::destroy
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_cq_destroy(struct doca_verbs_cq *verbs_cq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_cq*::get_cq_buf
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:478,1
    - Dst: struct doca_verbs_cq*::get_cq_num_entries
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - verbs_cq
    - cq_buf
    - cq_num_entries
    - cq_entry_size
    argTypes:
    - struct doca_verbs_cq*
    - void**
    - uint32_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 481
    functionName: doca_verbs_cq_get_wq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_cq*::get_cq_num_entries
    - struct doca_verbs_cq*::get_cq_buf
    linkageType: ''
    returnType: void
    signature: "void doca_verbs_cq_get_wq(struct doca_verbs_cq *verbs_cq, void **cq_buf,
      uint32_t *cq_num_entries,\n                          uint8_t *cq_entry_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_cq*::get_cq_uar_db_reg
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:485,1
    - Dst: struct doca_verbs_cq*::get_cq_ci_dbr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:486,1
    - Dst: struct doca_verbs_cq*::get_cq_arm_dbr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - verbs_cq
    - uar_db_reg
    - ci_dbr
    - arm_dbr
    argTypes:
    - struct doca_verbs_cq*
    - uint64_t**
    - uint32_t**
    - uint32_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: doca_verbs_cq_get_dbr_addr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_cq*::get_cq_ci_dbr
    - struct doca_verbs_cq*::get_cq_uar_db_reg
    - struct doca_verbs_cq*::get_cq_arm_dbr
    linkageType: ''
    returnType: void
    signature: "void doca_verbs_cq_get_dbr_addr(struct doca_verbs_cq *verbs_cq, uint64_t
      **uar_db_reg,\n                                uint32_t **ci_dbr, uint32_t **arm_dbr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_cq*::get_cqn
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_cq
    argTypes:
    - struct doca_verbs_cq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 490
    functionName: doca_verbs_cq_get_cqn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_cq*::get_cqn
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_cq_get_cqn(const struct doca_verbs_cq *verbs_cq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: get_uar_id
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_uar_id() const noexcept
  - 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: get_reg_addr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *get_reg_addr() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: get_dbr_less_addr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *get_dbr_less_addr() const noexcept
  - 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: get_uar_mtype
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum doca_verbs_uar_allocation_type
    signature: enum doca_verbs_uar_allocation_type get_uar_mtype() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: doca_verbs_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void doca_verbs_uar(doca_verbs_uar const &)
  - 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: '&operator=(doca_verbs_uar const &)'
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: doca_verbs_uar
    signature: doca_verbs_uar &operator=(doca_verbs_uar 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: get_umem_id
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_umem_id() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: get_umem_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_umem_size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: get_umem_address
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *get_umem_address() const 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: doca_verbs_umem
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void doca_verbs_umem(doca_verbs_umem const &)
  - 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: '&operator=(doca_verbs_umem const &)'
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: doca_verbs_umem
    signature: doca_verbs_umem &operator=(doca_verbs_umem const &)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:97,1
    - Dst: dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:99,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:102,1
    - Dst: dlerror
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:102,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:108,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:110,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:112,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:114,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:116,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:118,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:120,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:122,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:124,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:126,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:128,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:130,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:132,1
    - Dst: dlclose
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:141,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 148
    functionName: doca_verbs_wrapper_init_once
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - dlopen
    - dlerror
    - DOCA_LOG
    - dlclose
    - dlsym
    linkageType: ''
    returnType: void
    signature: void doca_verbs_wrapper_init_once(int *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: doca_verbs_wrapper_init_dlopen
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - std::call_once
    linkageType: ''
    returnType: int
    signature: int doca_verbs_wrapper_init_dlopen(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:161,1
    - Dst: mlx5dv_init_obj_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - obj_type
    argTypes:
    - struct mlx5dv_obj*
    - enum mlx5dv_obj_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: doca_verbs_wrapper_mlx5dv_init_obj
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - mlx5dv_init_obj_func
    - doca_verbs_wrapper_init_dlopen
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_init_obj(struct mlx5dv_obj
      *obj,\n                                                enum mlx5dv_obj_type
      obj_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:171,1
    - Dst: mlx5dv_devx_obj_create_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - context
    - in
    - inlen
    - out
    - outlen
    - obj_out
    argTypes:
    - struct ibv_context*
    - void*
    - size_t
    - void*
    - size_t
    - struct mlx5dv_devx_obj**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: doca_verbs_wrapper_mlx5dv_devx_obj_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 1
    functionsReached:
    - doca_verbs_wrapper_init_dlopen
    - mlx5dv_devx_obj_create_func
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_obj_create(struct ibv_context
      *context, const void *in,\n                                                       size_t
      inlen, void *out, size_t outlen,\n                                                       struct
      mlx5dv_devx_obj **obj_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:183,1
    - Dst: mlx5dv_devx_obj_destroy_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct mlx5dv_devx_obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: doca_verbs_wrapper_mlx5dv_devx_obj_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 1
    functionsReached:
    - doca_verbs_wrapper_init_dlopen
    - mlx5dv_devx_obj_destroy_func
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_mlx5dv_devx_obj_destroy(struct mlx5dv_devx_obj
      *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:192,1
    - Dst: mlx5dv_devx_obj_query_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - obj
    - in
    - inlen
    - out
    - outlen
    argTypes:
    - struct mlx5dv_devx_obj*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: doca_verbs_wrapper_mlx5dv_devx_obj_query
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_wrapper_init_dlopen
    - mlx5dv_devx_obj_query_func
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_obj_query(struct mlx5dv_devx_obj
      *obj, const void *in,\n                                                      size_t
      inlen, void *out, size_t outlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:201,1
    - Dst: mlx5dv_devx_obj_modify_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - obj
    - in
    - inlen
    - out
    - outlen
    argTypes:
    - struct mlx5dv_devx_obj*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: doca_verbs_wrapper_mlx5dv_devx_obj_modify
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_wrapper_init_dlopen
    - mlx5dv_devx_obj_modify_func
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_obj_modify(struct mlx5dv_devx_obj
      *obj, const void *in,\n                                                       size_t
      inlen, void *out, size_t outlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:210,1
    - Dst: mlx5dv_devx_general_cmd_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - context
    - in
    - inlen
    - out
    - outlen
    argTypes:
    - struct ibv_context*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 215
    functionName: doca_verbs_wrapper_mlx5dv_devx_general_cmd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - mlx5dv_devx_general_cmd_func
    - doca_verbs_wrapper_init_dlopen
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_general_cmd(struct ibv_context
      *context, const void *in,\n                                                        size_t
      inlen, void *out, size_t outlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:219,1
    - Dst: mlx5dv_devx_query_eqn_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - context
    - cpus
    - eqn
    argTypes:
    - struct ibv_context*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: doca_verbs_wrapper_mlx5dv_devx_query_eqn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 1
    functionsReached:
    - doca_verbs_wrapper_init_dlopen
    - mlx5dv_devx_query_eqn_func
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_query_eqn(struct ibv_context
      *context, uint32_t cpus,\n                                                      uint32_t
      *eqn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:229,1
    - Dst: mlx5dv_devx_umem_reg_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - context
    - addr
    - size
    - access
    - umem_out
    argTypes:
    - struct ibv_context*
    - void*
    - size_t
    - uint32_t
    - struct mlx5dv_devx_umem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 238
    functionName: doca_verbs_wrapper_mlx5dv_devx_umem_reg
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 1
    functionsReached:
    - doca_verbs_wrapper_init_dlopen
    - mlx5dv_devx_umem_reg_func
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_umem_reg(struct ibv_context
      *context, void *addr,\n                                                     size_t
      size, uint32_t access,\n                                                     struct
      mlx5dv_devx_umem **umem_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:243,1
    - Dst: mlx5dv_devx_umem_reg_ex_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - context
    - umem_in
    - umem_out
    argTypes:
    - struct ibv_context*
    - struct mlx5dv_devx_umem_in*
    - struct mlx5dv_devx_umem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 252
    functionName: doca_verbs_wrapper_mlx5dv_devx_umem_reg_ex
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_wrapper_init_dlopen
    - mlx5dv_devx_umem_reg_ex_func
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_umem_reg_ex(struct ibv_context
      *context,\n                                                        struct mlx5dv_devx_umem_in
      *umem_in,\n                                                        struct mlx5dv_devx_umem
      **umem_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:255,1
    - Dst: mlx5dv_devx_umem_dereg_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - umem
    argTypes:
    - struct mlx5dv_devx_umem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: doca_verbs_wrapper_mlx5dv_devx_umem_dereg
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 1
    functionsReached:
    - doca_verbs_wrapper_init_dlopen
    - mlx5dv_devx_umem_dereg_func
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_mlx5dv_devx_umem_dereg(struct mlx5dv_devx_umem
      *umem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:265,1
    - Dst: mlx5dv_devx_alloc_uar_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - context
    - uar_type
    - uar_out
    argTypes:
    - struct ibv_context*
    - uint32_t
    - struct mlx5dv_devx_uar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 274
    functionName: doca_verbs_wrapper_mlx5dv_devx_alloc_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 1
    functionsReached:
    - doca_verbs_wrapper_init_dlopen
    - mlx5dv_devx_alloc_uar_func
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_alloc_uar(struct ibv_context
      *context,\n                                                      uint32_t uar_type,\n
      \                                                     struct mlx5dv_devx_uar
      **uar_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:277,1
    - Dst: mlx5dv_devx_free_uar_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - uar
    argTypes:
    - struct mlx5dv_devx_uar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: doca_verbs_wrapper_mlx5dv_devx_free_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 1
    functionsReached:
    - doca_verbs_wrapper_init_dlopen
    - mlx5dv_devx_free_uar_func
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_mlx5dv_devx_free_uar(struct mlx5dv_devx_uar
      *uar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_init_dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:286,1
    - Dst: mlx5dv_query_device_func
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - context
    - attrs_out
    argTypes:
    - struct ibv_context*
    - struct mlx5dv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: doca_verbs_wrapper_mlx5dv_query_device
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_wrapper_init_dlopen
    - mlx5dv_query_device_func
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_query_device(struct ibv_context
      *context,\n                                                    struct mlx5dv_context
      *attrs_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - unaligned_mapping_size
    - ','
    - align_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: CUDA_ROUND_UP
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDA_ROUND_UP(unaligned_mapping_size, align_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - unaligned_mapping_size
    - ','
    - align_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: CUDA_ROUND_DOWN
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDA_ROUND_DOWN(unaligned_mapping_size, align_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cudaGetLastError
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cuda_result
    argTypes:
    - cudaError_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: doca_verbs_cuda_clear_error
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
    functionUses: 0
    functionsReached:
    - cudaGetLastError
    linkageType: ''
    returnType: cudaError_t
    signature: cudaError_t doca_verbs_cuda_clear_error(cudaError_t cuda_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: doca_internal_utils_is_power_of_two
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool doca_internal_utils_is_power_of_two(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: doca_internal_utils_next_power_of_two
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t doca_internal_utils_next_power_of_two(uint64_t x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp:113,1
    - Dst: std::log2
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: doca_internal_utils_log2
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
    functionUses: 1
    functionsReached:
    - static_cast<T>
    - std::log2
    linkageType: ''
    returnType: T
    signature: T doca_internal_utils_log2(T x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - alignment
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: doca_internal_utils_align_up_uint64
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t doca_internal_utils_align_up_uint64(uint64_t value, uint64_t
      alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doca_internal_utils_align_up_uint64
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - alignment
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: doca_internal_utils_align_up_uint32
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
    functionUses: 1
    functionsReached:
    - doca_internal_utils_align_up_uint64
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_internal_utils_align_up_uint32(uint32_t value, uint32_t
      alignment)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:65,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - uar_type
    - mlx5_uar_type
    argTypes:
    - doca_verbs_uar_allocation_type
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: convert_doca_verbs_uar_type_to_mlx5_uar_type
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t convert_doca_verbs_uar_type_to_mlx5_uar_type(doca_verbs_uar_allocation_type
      uar_type,\n                                                          uint32_t
      &mlx5_uar_type) noexcept"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:65,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - uar_type
    - mlx5_uar_type
    argTypes:
    - doca_verbs_uar_allocation_type
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: convert_doca_verbs_uar_type_to_mlx5_uar_type
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t convert_doca_verbs_uar_type_to_mlx5_uar_type(doca_verbs_uar_allocation_type
      uar_type,\n                                                          uint32_t
      &mlx5_uar_type) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_uar::create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:86,1
    - Dst: doca_verbs_uar::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:88,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - context
    - allocation_type
    argTypes:
    - struct ibv_context*
    - enum doca_verbs_uar_allocation_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: doca_verbs_uar::doca_verbs_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_uar::create
    - DOCA_LOG
    - doca_verbs_uar::destroy
    linkageType: ''
    returnType: void
    signature: "void doca_verbs_uar::doca_verbs_uar(struct ibv_context *context,\n
      \                              enum doca_verbs_uar_allocation_type allocation_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:94,1
    - Dst: doca_verbs_uar::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: doca_verbs_uar::~doca_verbs_uar()
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - doca_verbs_uar::destroy
    linkageType: ''
    returnType: void
    signature: void doca_verbs_uar::~doca_verbs_uar()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: convert_doca_verbs_uar_type_to_mlx5_uar_type
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:100,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:102,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_alloc_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:107,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:109,1
    - Dst: reinterpret_cast<void *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:115,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: doca_verbs_uar::create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
    functionUses: 1
    functionsReached:
    - convert_doca_verbs_uar_type_to_mlx5_uar_type
    - doca_verbs_wrapper_mlx5dv_devx_alloc_uar
    - reinterpret_cast<void *>
    - reinterpret_cast<uintptr_t>
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: void doca_verbs_uar::create()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_mlx5dv_devx_free_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:121,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 130
    functionName: doca_verbs_uar::destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
    functionUses: 2
    functionsReached:
    - doca_verbs_wrapper_mlx5dv_devx_free_uar
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_uar::destroy() noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:140,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:144,1
    - Dst: doca_verbs_uar::doca_verbs_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:149,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - context
    - allocation_type
    - uar_obj
    argTypes:
    - struct ibv_context*
    - enum doca_verbs_uar_allocation_type
    - struct doca_verbs_uar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: doca_verbs_uar_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_uar::doca_verbs_uar
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_uar_create(struct ibv_context *context,\n
      \                                  enum doca_verbs_uar_allocation_type allocation_type,\n
      \                                  struct doca_verbs_uar **uar_obj)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:159,1
    - Dst: struct doca_verbs_uar*::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:163,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - uar_obj
    argTypes:
    - struct doca_verbs_uar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 171
    functionName: doca_verbs_uar_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_uar*::destroy
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_uar_destroy(struct doca_verbs_uar *uar_obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:175,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:179,1
    - Dst: struct doca_verbs_uar*::get_uar_id
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - uar_obj
    - uar_id
    argTypes:
    - struct doca_verbs_uar*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 186
    functionName: doca_verbs_uar_id_get
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
    functionUses: 1
    functionsReached:
    - struct doca_verbs_uar*::get_uar_id
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_uar_id_get(const struct doca_verbs_uar *uar_obj,
      uint32_t *uar_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:190,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:194,1
    - Dst: struct doca_verbs_uar*::get_reg_addr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - uar_obj
    - reg_addr
    argTypes:
    - struct doca_verbs_uar*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 201
    functionName: doca_verbs_uar_reg_addr_get
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
    functionUses: 1
    functionsReached:
    - struct doca_verbs_uar*::get_reg_addr
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_uar_reg_addr_get(const struct doca_verbs_uar
      *uar_obj, void **reg_addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:206,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:210,1
    - Dst: struct doca_verbs_uar*::get_dbr_less_addr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - uar_obj
    - reg_addr
    argTypes:
    - struct doca_verbs_uar*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: doca_verbs_uar_dbr_less_addr_get
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_uar*::get_dbr_less_addr
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_uar_dbr_less_addr_get(const struct doca_verbs_uar
      *uar_obj,\n                                              void **reg_addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: priv_get_page_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 0
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: size_t
    signature: size_t priv_get_page_size()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - alignment
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: align_up_uint32
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t align_up_uint32(uint32_t value, uint32_t alignment)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_uar_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:77,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:80,1
    - Dst: doca_verbs_uar_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:82,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:84,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:86,1
    - Dst: doca_verbs_uar_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:96,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - ibctx
    - nic_handler
    - external_uar
    argTypes:
    - struct ibv_context*
    - enum doca_gpu_dev_verbs_nic_handler
    - struct doca_verbs_uar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 105
    functionName: create_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_uar_create
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t create_uar(struct ibv_context *ibctx,\n                               enum
      doca_gpu_dev_verbs_nic_handler nic_handler,\n                               struct
      doca_verbs_uar **external_uar)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: doca_gpu_dmabuf_fd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:115,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:117,1
    - Dst: doca_verbs_umem_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:122,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:126,1
    - Dst: doca_verbs_umem_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:129,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:132,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:136,1
    - Dst: doca_gpu_dmabuf_fd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:141,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:143,1
    - Dst: doca_verbs_umem_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:147,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:150,1
    - Dst: doca_verbs_umem_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:154,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:157,1
    - Dst: close
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:163,1
    - Dst: doca_verbs_umem_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:168,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 6
    argNames:
    - gpu_dev
    - ibpd
    - mreg_type
    - umem_sz
    - umem_ptr
    - umem
    argTypes:
    - struct doca_gpu*
    - struct ibv_pd*
    - enum doca_gpu_verbs_mem_reg_type
    - uint32_t
    - void*
    - struct doca_verbs_umem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 171
    functionName: create_gpu_umem
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_umem_destroy
    - close
    - DOCA_LOG
    - doca_verbs_umem_create
    - doca_gpu_dmabuf_fd
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t create_gpu_umem(struct doca_gpu *gpu_dev, struct ibv_pd
      *ibpd,\n                                    enum doca_gpu_verbs_mem_reg_type
      mreg_type, uint32_t umem_sz,\n                                    void *umem_ptr,
      struct doca_verbs_umem **umem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: align_up_uint32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:179,1
    - Dst: priv_get_page_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - queue_size
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: calc_cq_external_umem_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 0
    functionsReached:
    - priv_get_page_size
    - align_up_uint32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t calc_cq_external_umem_size(uint32_t queue_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cqes
    - nb_cqes
    argTypes:
    - struct doca_gpunetio_ib_mlx5_cqe64*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: mlx5_init_cqes
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mlx5_init_cqes(struct doca_gpunetio_ib_mlx5_cqe64 *cqes, uint32_t
      nb_cqes)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_cq_attr_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:204,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:206,1
    - Dst: calc_cq_external_umem_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:210,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:212,1
    - Dst: doca_gpu_mem_alloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:216,1
    - Dst: priv_get_page_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:216,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:219,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:224,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:226,1
    - Dst: mlx5_init_cqes
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:231,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:233,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:236,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:236,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:239,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:243,1
    - Dst: create_gpu_umem
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:247,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:249,1
    - Dst: doca_verbs_cq_attr_set_external_umem
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:253,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:255,1
    - Dst: CUDA_ROUND_UP
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:259,1
    - Dst: priv_get_page_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:259,1
    - Dst: doca_gpu_mem_alloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:260,1
    - Dst: priv_get_page_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:260,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:263,1
    - Dst: create_gpu_umem
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:267,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:270,1
    - Dst: doca_verbs_cq_attr_set_external_dbr_umem
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:274,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:276,1
    - Dst: doca_verbs_cq_attr_set_cq_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:280,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:282,1
    - Dst: doca_verbs_cq_attr_set_cq_overrun
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:286,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:288,1
    - Dst: doca_verbs_cq_attr_set_cq_collapsed
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:293,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:295,1
    - Dst: doca_verbs_cq_attr_set_external_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:301,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:303,1
    - Dst: doca_verbs_cq_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:308,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:310,1
    - Dst: doca_verbs_cq_attr_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:314,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:316,1
    - Dst: doca_verbs_cq_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:326,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:327,1
    - Dst: doca_verbs_cq_attr_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:331,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:333,1
    - Dst: doca_verbs_umem_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:337,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:338,1
    - Dst: doca_verbs_umem_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:342,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:343,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:347,1
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:351,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:353,1
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:357,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:359,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 144
    argCount: 11
    argNames:
    - gpu_dev
    - ibpd
    - mreg_type
    - ncqes
    - gpu_umem_dev_ptr
    - gpu_umem
    - gpu_umem_dbr_dev_ptr
    - gpu_umem_dbr
    - external_uar
    - cq_collapsed
    - verbs_cq
    argTypes:
    - struct doca_gpu*
    - struct ibv_pd*
    - enum doca_gpu_verbs_mem_reg_type
    - uint32_t
    - void**
    - struct doca_verbs_umem**
    - void**
    - struct doca_verbs_umem**
    - struct doca_verbs_uar*
    - bool
    - struct doca_verbs_cq**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 363
    functionName: create_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 3
    functionsReached:
    - calloc
    - doca_verbs_umem_destroy
    - priv_get_page_size
    - doca_verbs_cq_attr_destroy
    - doca_verbs_cq_attr_set_cq_overrun
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - doca_verbs_cq_attr_set_cq_collapsed
    - doca_verbs_cq_attr_set_external_uar
    - doca_verbs_cq_attr_set_cq_size
    - DOCA_LOG
    - doca_verbs_cq_create
    - doca_gpu_mem_free
    - doca_gpu_mem_alloc
    - free
    - doca_verbs_cq_attr_set_external_umem
    - CUDA_ROUND_UP
    - doca_verbs_cq_destroy
    - create_gpu_umem
    - cudaMemcpy
    - doca_verbs_cq_attr_create
    - calc_cq_external_umem_size
    - mlx5_init_cqes
    - doca_verbs_cq_attr_set_external_dbr_umem
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t create_cq(struct doca_gpu *gpu_dev, struct ibv_pd *ibpd,\n
      \                             enum doca_gpu_verbs_mem_reg_type mreg_type, uint32_t
      ncqes,\n                              void **gpu_umem_dev_ptr, struct doca_verbs_umem
      **gpu_umem,\n                              void **gpu_umem_dbr_dev_ptr, struct
      doca_verbs_umem **gpu_umem_dbr,\n                              struct doca_verbs_uar
      *external_uar, bool cq_collapsed,\n                              struct doca_verbs_cq
      **verbs_cq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: align_up_uint32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:370,1
    - Dst: priv_get_page_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sq_nwqes
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: calc_qp_external_umem_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 0
    functionsReached:
    - priv_get_page_size
    - align_up_uint32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t calc_qp_external_umem_size(uint32_t sq_nwqes)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: align_up_uint32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:385,1
    - Dst: priv_get_page_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:385,1
    - Dst: doca_verbs_qp_init_attr_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:390,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:392,1
    - Dst: doca_verbs_qp_init_attr_set_external_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:396,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:398,1
    - Dst: doca_gpu_verbs_can_gpu_register_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:404,1
    - Dst: struct doca_verbs_uar*::get_reg_addr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:404,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:406,1
    - Dst: calc_qp_external_umem_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:419,1
    - Dst: doca_gpu_mem_alloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:421,1
    - Dst: priv_get_page_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:421,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:424,1
    - Dst: create_gpu_umem
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:429,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:431,1
    - Dst: doca_verbs_qp_init_attr_set_external_umem
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:435,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:437,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:443,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:445,1
    - Dst: doca_gpu_mem_alloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:449,1
    - Dst: priv_get_page_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:449,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:452,1
    - Dst: create_gpu_umem
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:464,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:467,1
    - Dst: doca_verbs_qp_init_attr_set_external_dbr_umem
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:471,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:473,1
    - Dst: doca_verbs_qp_init_attr_set_pd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:477,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:479,1
    - Dst: doca_verbs_qp_init_attr_set_sq_wr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:483,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:485,1
    - Dst: doca_verbs_qp_init_attr_set_rq_wr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:489,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:491,1
    - Dst: doca_verbs_qp_init_attr_set_qp_type
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:495,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:497,1
    - Dst: doca_verbs_qp_init_attr_set_send_cq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:501,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:503,1
    - Dst: doca_verbs_qp_init_attr_set_send_max_sges
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:507,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:509,1
    - Dst: doca_verbs_qp_init_attr_set_receive_max_sges
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:513,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:515,1
    - Dst: doca_verbs_qp_init_attr_set_core_direct_master
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:520,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:522,1
    - Dst: doca_verbs_qp_init_attr_set_send_dbr_mode
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:528,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:531,1
    - Dst: doca_verbs_qp_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:536,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:538,1
    - Dst: doca_verbs_qp_init_attr_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:542,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:544,1
    - Dst: doca_verbs_qp_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:555,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:556,1
    - Dst: doca_verbs_qp_init_attr_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:560,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:562,1
    - Dst: doca_verbs_umem_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:566,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:567,1
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:572,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:573,1
    - Dst: doca_verbs_umem_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:578,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:579,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:585,1
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:587,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:589,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 185
    argCount: 15
    argNames:
    - gpu_dev
    - ibpd
    - mreg_type
    - cq_sq
    - sq_nwqe
    - gpu_umem_dev_ptr
    - gpu_umem
    - gpu_umem_dbr_dev_ptr
    - gpu_umem_dbr
    - external_uar
    - req_nic_handler
    - set_core_direct
    - send_dbr_mode_ext
    - verbs_qp
    - out_nic_handler
    argTypes:
    - struct doca_gpu*
    - struct ibv_pd*
    - enum doca_gpu_verbs_mem_reg_type
    - struct doca_verbs_cq*
    - uint32_t
    - void**
    - struct doca_verbs_umem**
    - void**
    - struct doca_verbs_umem**
    - struct doca_verbs_uar*
    - enum doca_gpu_dev_verbs_nic_handler
    - bool
    - enum doca_gpu_verbs_send_dbr_mode_ext
    - struct doca_verbs_qp**
    - enum doca_gpu_dev_verbs_nic_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 598
    functionName: create_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 2
    functionsReached:
    - calloc
    - doca_verbs_umem_destroy
    - doca_verbs_qp_init_attr_set_receive_max_sges
    - priv_get_page_size
    - align_up_uint32
    - doca_verbs_qp_init_attr_set_pd
    - doca_verbs_qp_init_attr_set_rq_wr
    - DOCA_LOG
    - doca_verbs_qp_init_attr_set_send_dbr_mode
    - doca_gpu_mem_free
    - doca_gpu_mem_alloc
    - doca_verbs_qp_init_attr_create
    - free
    - doca_verbs_qp_init_attr_set_core_direct_master
    - doca_verbs_qp_create
    - doca_verbs_qp_init_attr_set_sq_wr
    - create_gpu_umem
    - doca_verbs_qp_init_attr_set_external_umem
    - doca_verbs_qp_init_attr_set_external_uar
    - doca_gpu_verbs_can_gpu_register_uar
    - doca_verbs_qp_init_attr_set_qp_type
    - doca_verbs_qp_init_attr_set_send_max_sges
    - doca_verbs_qp_init_attr_set_send_cq
    - calc_qp_external_umem_size
    - doca_verbs_qp_init_attr_destroy
    - doca_verbs_qp_init_attr_set_external_dbr_umem
    - doca_verbs_qp_destroy
    - struct doca_verbs_uar*::get_reg_addr
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t create_qp(\n    struct doca_gpu *gpu_dev, struct ibv_pd
      *ibpd, enum doca_gpu_verbs_mem_reg_type mreg_type,\n    struct doca_verbs_cq
      *cq_sq, uint32_t sq_nwqe, void **gpu_umem_dev_ptr,\n    struct doca_verbs_umem
      **gpu_umem, void **gpu_umem_dbr_dev_ptr,\n    struct doca_verbs_umem **gpu_umem_dbr,
      struct doca_verbs_uar *external_uar,\n    enum doca_gpu_dev_verbs_nic_handler
      req_nic_handler, bool set_core_direct,\n    enum doca_gpu_verbs_send_dbr_mode_ext
      send_dbr_mode_ext, struct doca_verbs_qp **verbs_qp,\n    enum doca_gpu_dev_verbs_nic_handler
      *out_nic_handler)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: doca_gpu_verbs_unexport_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:609,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:611,1
    - Dst: doca_verbs_qp_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:615,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:616,1
    - Dst: doca_verbs_umem_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:620,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:621,1
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:625,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:627,1
    - Dst: doca_verbs_umem_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:631,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:632,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:637,1
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:639,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:641,1
    - Dst: doca_verbs_uar_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:646,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:647,1
    - Dst: doca_verbs_cq_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:651,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:652,1
    - Dst: doca_verbs_umem_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:655,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:657,1
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:661,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:663,1
    - Dst: doca_verbs_umem_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:667,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:669,1
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:673,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:675,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:679,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 69
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct doca_gpu_verbs_qp_hl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 682
    functionName: doca_gpu_verbs_destroy_qp_hl_internal
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 0
    functionsReached:
    - doca_gpu_mem_free
    - doca_verbs_umem_destroy
    - doca_verbs_cq_destroy
    - doca_gpu_verbs_unexport_qp
    - free
    - doca_verbs_qp_destroy
    - memset
    - DOCA_LOG
    - doca_verbs_uar_destroy
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_destroy_qp_hl_internal(struct doca_gpu_verbs_qp_hl
      *qp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:689,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:696,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:704,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:712,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:722,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:724,1
    - Dst: doca_internal_utils_next_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:733,1
    - Dst: create_cq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:735,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:740,1
    - Dst: create_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:747,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:749,1
    - Dst: create_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:753,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:759,1
    - Dst: doca_gpu_verbs_export_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:763,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:766,1
    - Dst: doca_gpu_verbs_destroy_qp_hl_internal
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:776,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:779,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 2
    argNames:
    - qp_init_attr
    - qp
    argTypes:
    - struct doca_gpu_verbs_qp_init_attr_hl*
    - struct doca_gpu_verbs_qp_hl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 781
    functionName: doca_gpu_verbs_create_qp_hl
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 1
    functionsReached:
    - calloc
    - create_qp
    - DOCA_LOG
    - free
    - doca_gpu_verbs_destroy_qp_hl_internal
    - doca_internal_utils_next_power_of_two
    - doca_gpu_verbs_export_qp
    - create_cq
    - create_uar
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_verbs_create_qp_hl(struct doca_gpu_verbs_qp_init_attr_hl
      *qp_init_attr,\n                                         struct doca_gpu_verbs_qp_hl
      **qp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_gpu_verbs_destroy_qp_hl_internal
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:786,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct doca_gpu_verbs_qp_hl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 790
    functionName: doca_gpu_verbs_destroy_qp_hl
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 2
    functionsReached:
    - free
    - doca_gpu_verbs_destroy_qp_hl_internal
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_destroy_qp_hl(struct doca_gpu_verbs_qp_hl
      *qp)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:797,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:804,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:812,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:824,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:829,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:831,1
    - Dst: create_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:840,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:843,1
    - Dst: doca_internal_utils_next_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:849,1
    - Dst: create_cq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:851,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:857,1
    - Dst: create_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:862,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:869,1
    - Dst: doca_gpu_verbs_export_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:874,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:878,1
    - Dst: doca_internal_utils_next_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:890,1
    - Dst: create_cq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:893,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:899,1
    - Dst: create_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:904,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:912,1
    - Dst: doca_gpu_verbs_export_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:916,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:921,1
    - Dst: doca_gpu_verbs_destroy_qp_hl_internal
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:931,1
    - Dst: doca_gpu_verbs_destroy_qp_hl_internal
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:933,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:936,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 83
    argCount: 2
    argNames:
    - qp_init_attr
    - qpg
    argTypes:
    - struct doca_gpu_verbs_qp_init_attr_hl*
    - struct doca_gpu_verbs_qp_group_hl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 938
    functionName: doca_gpu_verbs_create_qp_group_hl
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 1
    functionsReached:
    - calloc
    - create_qp
    - DOCA_LOG
    - free
    - doca_gpu_verbs_destroy_qp_hl_internal
    - doca_internal_utils_next_power_of_two
    - doca_gpu_verbs_export_qp
    - create_cq
    - create_uar
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_verbs_create_qp_group_hl(struct doca_gpu_verbs_qp_init_attr_hl
      *qp_init_attr,\n                                               struct doca_gpu_verbs_qp_group_hl
      **qpg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_gpu_verbs_destroy_qp_hl_internal
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:943,1
    - Dst: doca_gpu_verbs_destroy_qp_hl_internal
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:945,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:947,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - qpg
    argTypes:
    - struct doca_gpu_verbs_qp_group_hl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 940
    functionDepth: 3
    functionLinenumber: 940
    functionLinenumberEnd: 952
    functionName: doca_gpu_verbs_destroy_qp_group_hl
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 2
    functionsReached:
    - free
    - doca_gpu_verbs_destroy_qp_hl_internal
    - memset
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_destroy_qp_group_hl(struct doca_gpu_verbs_qp_group_hl
      *qpg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:963,1
    - Dst: cudaMalloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:964,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:968,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:969,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:979,1
    - Dst: cudaFree
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:979,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - qp_list
    - num_elems
    - qp_gpu
    argTypes:
    - struct doca_gpu_verbs_qp_hl**
    - uint32_t
    - struct doca_gpu_dev_verbs_qp**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 981
    functionName: doca_gpu_verbs_qp_flat_list_create_hl
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 0
    functionsReached:
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - cudaMalloc
    - cudaFree
    - cudaMemcpy
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_verbs_qp_flat_list_create_hl(struct doca_gpu_verbs_qp_hl
      **qp_list,\n                                                   uint32_t num_elems,\n
      \                                                  struct doca_gpu_dev_verbs_qp
      **qp_gpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:986,1
    - Dst: cudaFree
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp:986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - qp_gpu
    argTypes:
    - struct doca_gpu_dev_verbs_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 988
    functionName: doca_gpu_verbs_qp_flat_list_destroy_hl
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
    functionUses: 0
    functionsReached:
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - cudaFree
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_qp_flat_list_destroy_hl(struct doca_gpu_dev_verbs_qp
      *qp_gpu)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - gid_table_size_prm
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: translate_gid_table_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t translate_gid_table_size(uint16_t gid_table_size_prm)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - gid_table_size_prm
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: translate_gid_table_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t translate_gid_table_size(uint16_t gid_table_size_prm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_device_attr::query_caps
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:88,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ibv_ctx
    argTypes:
    - struct ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: doca_verbs_device_attr::doca_verbs_device_attr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_device_attr::query_caps
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: void doca_verbs_device_attr::doca_verbs_device_attr(struct ibv_context
      *ibv_ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_ibv_query_device
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:98,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:100,1
    - Dst: MLX5_ST_SZ_DW
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:121,1
    - Dst: MLX5_ST_SZ_DW
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:122,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:124,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:125,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_general_cmd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:128,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:130,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:134,1
    - Dst: translate_gid_table_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:136,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:137,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:138,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:140,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:141,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:142,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:143,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:145,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:147,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:148,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:150,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:151,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_general_cmd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:154,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:156,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:162,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:164,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:166,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:169,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:170,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:172,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:173,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_general_cmd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:177,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:179,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:184,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 1
    argNames:
    - ibv_ctx
    argTypes:
    - struct ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 186
    functionName: doca_verbs_device_attr::query_caps
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 1
    functionsReached:
    - translate_gid_table_size
    - MLX5_ST_SZ_DW
    - doca_verbs_wrapper_ibv_query_device
    - doca_verbs_wrapper_mlx5dv_devx_general_cmd
    - memset
    - DEVX_GET
    - DEVX_SET
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: void doca_verbs_device_attr::query_caps(struct ibv_context *ibv_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:195,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:200,1
    - Dst: doca_verbs_device_attr::doca_verbs_device_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - context
    - verbs_device_attr
    argTypes:
    - struct ibv_context*
    - struct doca_verbs_device_attr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: doca_verbs_query_device
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 1
    functionsReached:
    - doca_verbs_device_attr::doca_verbs_device_attr
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_query_device(struct ibv_context *context,\n
      \                                    struct doca_verbs_device_attr **verbs_device_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: doca_verbs_device_attr_free
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_device_attr_free(struct doca_verbs_device_attr
      *verbs_device_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: doca_verbs_device_attr_get_max_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_device_attr_get_max_qp(const struct doca_verbs_device_attr
      *verbs_device_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: doca_verbs_device_attr_get_max_qp_wr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_device_attr_get_max_qp_wr(\n    const struct doca_verbs_device_attr
      *verbs_device_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: doca_verbs_device_attr_get_max_sge
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_device_attr_get_max_sge(\n    const struct doca_verbs_device_attr
      *verbs_device_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: doca_verbs_device_attr_get_max_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_device_attr_get_max_cq(const struct doca_verbs_device_attr
      *verbs_device_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: doca_verbs_device_attr_get_max_cqe
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_device_attr_get_max_cqe(\n    const struct doca_verbs_device_attr
      *verbs_device_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: doca_verbs_device_attr_get_max_mr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_device_attr_get_max_mr(const struct doca_verbs_device_attr
      *verbs_device_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: doca_verbs_device_attr_get_max_pd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_device_attr_get_max_pd(const struct doca_verbs_device_attr
      *verbs_device_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: doca_verbs_device_attr_get_max_ah
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_device_attr_get_max_ah(const struct doca_verbs_device_attr
      *verbs_device_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: doca_verbs_device_attr_get_max_srq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_device_attr_get_max_srq(\n    const struct doca_verbs_device_attr
      *verbs_device_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: doca_verbs_device_attr_get_max_srq_wr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_device_attr_get_max_srq_wr(\n    const struct
      doca_verbs_device_attr *verbs_device_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: doca_verbs_device_attr_get_max_srq_sge
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_device_attr_get_max_srq_sge(\n    const struct
      doca_verbs_device_attr *verbs_device_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: doca_verbs_device_attr_get_max_pkeys
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t doca_verbs_device_attr_get_max_pkeys(\n    const struct doca_verbs_device_attr
      *verbs_device_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - verbs_device_attr
    - qp_type
    argTypes:
    - struct doca_verbs_device_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: doca_verbs_device_attr_get_is_qp_type_supported
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_device_attr_get_is_qp_type_supported(\n    const
      struct doca_verbs_device_attr *verbs_device_attr, uint32_t qp_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: doca_verbs_device_attr_get_send_dbr_mode_no_dbr_ext
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t doca_verbs_device_attr_get_send_dbr_mode_no_dbr_ext(\n    const
      struct doca_verbs_device_attr *verbs_device_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: doca_verbs_device_attr_get_max_qp_init_rd_atom
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t doca_verbs_device_attr_get_max_qp_init_rd_atom(\n    const
      struct doca_verbs_device_attr *verbs_device_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_device_attr
    argTypes:
    - struct doca_verbs_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: doca_verbs_device_attr_get_max_qp_rd_atom
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t doca_verbs_device_attr_get_max_qp_rd_atom(\n    const struct
      doca_verbs_device_attr *verbs_device_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: doca_verbs_srq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void doca_verbs_srq(doca_verbs_srq const &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: '&operator=(doca_verbs_srq const &)'
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: doca_verbs_srq
    signature: doca_verbs_srq &operator=(doca_verbs_srq const &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: doca_verbs_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void doca_verbs_qp(doca_verbs_qp const &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: '&operator=(doca_verbs_qp const &)'
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: doca_verbs_qp
    signature: doca_verbs_qp &operator=(doca_verbs_qp const &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: doca_cuda_wrapper_init
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: doca_cuda_wrapper_init()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp:51,1
    - Dst: atoi
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp:53,1
    - Dst: time
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp:66,1
    - Dst: ctime
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp:67,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp:68,1
    - Dst: va_start
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp:70,1
    - Dst: fprintf
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp:71,1
    - Dst: vfprintf
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp:73,1
    - Dst: fprintf
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp:74,1
    - Dst: va_end
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - log_level
    - file
    - line
    - func
    - fmt
    argTypes:
    - int
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 77
    functionName: doca_gpu_log_print
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp
    functionUses: 0
    functionsReached:
    - ctime
    - fprintf
    - va_start
    - strlen
    - va_end
    - atoi
    - time
    - getenv
    - vfprintf
    linkageType: ''
    returnType: void
    signature: "void doca_gpu_log_print(int log_level, const char *file, int line,
      const char *func,\n                        const char *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:83,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:83,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:86,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: priv_query_async_store_release_support
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached:
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - cudaGetDevice
    - cudaDeviceGetAttribute
    linkageType: ''
    returnType: bool
    signature: bool priv_query_async_store_release_support(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: priv_is_power_of_two
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool priv_is_power_of_two(uint64_t x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: priv_get_page_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 4
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: size_t
    signature: size_t priv_get_page_size()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:110,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:114,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:116,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:121,1
    - Dst: cudaDeviceGetByPCIBusId
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:121,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:123,1
    - Dst: doca_verbs_wrapper_cuDeviceGetAttribute
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:127,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:130,1
    - Dst: doca_verbs_wrapper_cuDeviceGetAttribute
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:138,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:141,1
    - Dst: priv_query_async_store_release_support
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:155,1
    - Dst: doca_gpu_gdrcopy_is_supported
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:156,1
    - Dst: std::unordered_map<uintptr_t, struct doca_gpu_mtable *>::unordered_map<uintptr_t,
        struct doca_gpu_mtable *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:159,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:161,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:170,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 2
    argNames:
    - gpu_bus_id
    - gpu_dev
    argTypes:
    - char*
    - struct doca_gpu**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 173
    functionName: doca_gpu_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 1
    functionsReached:
    - calloc
    - doca_verbs_wrapper_cuDeviceGetAttribute
    - priv_query_async_store_release_support
    - cudaDeviceGetByPCIBusId
    - doca_gpu_gdrcopy_is_supported
    - free
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - std::unordered_map<uintptr_t, struct doca_gpu_mtable *>::unordered_map<uintptr_t,
      struct doca_gpu_mtable *>
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_create(const char *gpu_bus_id, struct doca_gpu
      **gpu_dev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:177,1
    - Dst: struct doca_gpu*::mtable::size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:182,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:183,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - gpu_dev
    argTypes:
    - struct doca_gpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 192
    functionName: doca_gpu_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 2
    functionsReached:
    - free
    - struct doca_gpu*::mtable::size
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_destroy(struct doca_gpu *gpu_dev)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:209,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:214,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:219,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:224,1
    - Dst: priv_get_page_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:228,1
    - Dst: priv_is_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:230,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:231,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:235,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:244,1
    - Dst: cudaMalloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:245,1
    - Dst: cudaGetErrorString
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:247,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:248,1
    - Dst: doca_verbs_wrapper_cuPointerSetAttribute
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:262,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:265,1
    - Dst: cudaFree
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:265,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:266,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:279,1
    - Dst: cudaMalloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:280,1
    - Dst: cudaGetErrorString
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:282,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:283,1
    - Dst: doca_verbs_wrapper_cuPointerSetAttribute
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:296,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:299,1
    - Dst: cudaFree
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:299,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:300,1
    - Dst: doca_gpu_gdrcopy_create_mapping
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:312,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:315,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:320,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:326,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:328,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:333,1
    - Dst: cudaHostRegister
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:333,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:336,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:338,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:345,1
    - Dst: cudaHostGetDevicePointer
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:346,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:348,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:350,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:362,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:364,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:369,1
    - Dst: cudaHostRegister
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:369,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:372,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:374,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:381,1
    - Dst: cudaHostGetDevicePointer
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:382,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:384,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:386,1
    - Dst: struct doca_gpu*::mtable::insert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:406,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:408,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:416,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 161
    argCount: 6
    argNames:
    - gpu_dev
    - size
    - alignment
    - mtype
    - memptr_gpu
    - memptr_cpu
    argTypes:
    - struct doca_gpu*
    - size_t
    - size_t
    - enum doca_gpu_mem_type
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 418
    functionName: doca_gpu_mem_alloc
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 2
    functionsReached:
    - calloc
    - cudaHostGetDevicePointer
    - cudaHostRegister
    - priv_get_page_size
    - doca_verbs_wrapper_cuPointerSetAttribute
    - doca_gpu_gdrcopy_create_mapping
    - free
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - cudaGetErrorString
    - priv_is_power_of_two
    - cudaMalloc
    - struct doca_gpu*::mtable::insert
    - cudaFree
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_mem_alloc(struct doca_gpu *gpu_dev, size_t size,
      size_t alignment,\n                                enum doca_gpu_mem_type mtype,
      void **memptr_gpu,\n                                void **memptr_cpu)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:425,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:430,1
    - Dst: struct doca_gpu*::mtable::find
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:435,1
    - Dst: struct doca_gpu*::mtable::end
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:436,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:437,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:444,1
    - Dst: cudaFree
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:444,1
    - Dst: doca_gpu_gdrcopy_destroy_mapping
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:447,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:449,1
    - Dst: cudaFree
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:449,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:451,1
    - Dst: cudaHostUnregister
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:451,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:453,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:454,1
    - Dst: struct doca_gpu*::mtable::erase
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:457,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - gpu_dev
    - memptr_gpu
    argTypes:
    - struct doca_gpu*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 461
    functionName: doca_gpu_mem_free
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 3
    functionsReached:
    - struct doca_gpu*::mtable::erase
    - cudaHostUnregister
    - struct doca_gpu*::mtable::find
    - free
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - struct doca_gpu*::mtable::end
    - doca_gpu_gdrcopy_destroy_mapping
    - cudaFree
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_mem_free(struct doca_gpu *gpu_dev, void *memptr_gpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:469,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:474,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:479,1
    - Dst: doca_verbs_wrapper_cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:483,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - gpu_dev
    - memptr_gpu
    - size
    - dmabuf_fd
    argTypes:
    - struct doca_gpu*
    - void*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 494
    functionName: doca_gpu_dmabuf_fd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 1
    functionsReached:
    - doca_verbs_wrapper_cuMemGetHandleForAddressRange
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_dmabuf_fd(struct doca_gpu *gpu_dev, void *memptr_gpu,
      size_t size,\n                                int *dmabuf_fd)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:508,1
    - Dst: cudaHostRegister
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:508,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:515,1
    - Dst: cudaHostUnregister
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - db
    - out_can_register
    argTypes:
    - void*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 522
    functionName: doca_gpu_verbs_can_gpu_register_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 1
    functionsReached:
    - cudaHostUnregister
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - cudaHostRegister
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_can_gpu_register_uar(void *db, bool *out_can_register)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:537,1
    - Dst: end
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:537,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:542,1
    - Dst: cudaHostRegister
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:542,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:546,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:555,1
    - Dst: cudaHostGetDevicePointer
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:555,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:557,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:570,1
    - Dst: cudaHostUnregister
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:570,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - sq_db
    - uar_addr_gpu
    argTypes:
    - uint64_t*
    - uint64_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 575
    functionName: doca_gpu_verbs_export_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached:
    - cudaHostGetDevicePointer
    - cudaHostRegister
    - cudaHostUnregister
    - find
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - end
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_export_uar(uint64_t *sq_db, uint64_t **uar_addr_gpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:586,1
    - Dst: end
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:586,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:587,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:591,1
    - Dst: erase
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:593,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:594,1
    - Dst: cudaHostUnregister
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:594,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:596,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - uar_addr_gpu
    argTypes:
    - uint64_t*
    assertStmts:
    - condition: (registered_uar_refcount[uar_key] >= 0)
      pos:
        line_end: 590
        line_start: 590
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    constantsTouched: []
    func_position:
      end: 602
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 602
    functionName: doca_gpu_verbs_unexport_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached:
    - cudaHostUnregister
    - find
    - assert
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - erase
    - end
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_unexport_uar(uint64_t *uar_addr_gpu)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:627,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:634,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:643,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:648,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:650,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:656,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:658,1
    - Dst: struct doca_verbs_qp*::get_uar_mtype
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:666,1
    - Dst: doca_verbs_qp_get_wq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:671,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:677,1
    - Dst: doca_verbs_qp_get_dbr_addr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:677,1
    - Dst: doca_verbs_qp_get_qpn
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:681,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:683,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:684,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:685,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:686,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:687,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:688,1
    - Dst: doca_verbs_qp_init_attr_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:703,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:705,1
    - Dst: doca_verbs_qp_attr_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:709,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:711,1
    - Dst: doca_verbs_qp_query
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:715,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:717,1
    - Dst: doca_verbs_qp_init_attr_get_send_dbr_mode
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:721,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:726,1
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:731,1
    - Dst: doca_verbs_qp_get_uar_addr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:731,1
    - Dst: doca_gpu_verbs_export_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:734,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:736,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:743,1
    - Dst: doca_gpu_mem_alloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:745,1
    - Dst: priv_get_page_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:745,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:749,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:765,1
    - Dst: doca_verbs_cq_get_wq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:780,1
    - Dst: doca_verbs_cq_get_dbr_addr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:783,1
    - Dst: doca_verbs_cq_get_cqn
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:786,1
    - Dst: doca_verbs_qp_attr_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:798,1
    - Dst: doca_verbs_qp_init_attr_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:800,1
    - Dst: doca_gpu_verbs_unexport_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:806,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:807,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:809,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 153
    argCount: 7
    argNames:
    - gpu_dev
    - qp
    - nic_handler
    - gpu_qp_umem_dev_ptr
    - cq_sq
    - send_dbr_mode_ext
    - qp_out
    argTypes:
    - struct doca_gpu*
    - struct doca_verbs_qp*
    - enum doca_gpu_dev_verbs_nic_handler
    - void*
    - struct doca_verbs_cq*
    - enum doca_gpu_verbs_send_dbr_mode_ext
    - struct doca_gpu_verbs_qp**
    assertStmts:
    - condition: (gpu_dev->support_gdrcopy)
      pos:
        line_end: 764
        line_start: 764
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    constantsTouched: []
    func_position:
      end: 814
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 814
    functionName: doca_gpu_verbs_export_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 2
    functionsReached:
    - calloc
    - doca_verbs_cq_get_dbr_addr
    - priv_get_page_size
    - assert
    - doca_verbs_qp_attr_create
    - DOCA_LOG
    - doca_verbs_qp_get_dbr_addr
    - doca_verbs_qp_get_qpn
    - doca_verbs_qp_get_uar_addr
    - doca_gpu_mem_alloc
    - doca_gpu_verbs_export_uar
    - doca_verbs_qp_init_attr_create
    - free
    - doca_verbs_qp_init_attr_get_send_dbr_mode
    - doca_verbs_qp_query
    - doca_verbs_qp_attr_destroy
    - htobe32
    - doca_verbs_qp_get_wq
    - struct doca_verbs_qp*::get_uar_mtype
    - doca_verbs_cq_get_cqn
    - doca_verbs_cq_get_wq
    - doca_gpu_verbs_unexport_uar
    - reinterpret_cast<uint32_t *>
    - doca_verbs_qp_init_attr_destroy
    - reinterpret_cast<uint64_t *>
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_verbs_export_qp(struct doca_gpu *gpu_dev, struct
      doca_verbs_qp *qp,\n                                      enum doca_gpu_dev_verbs_nic_handler
      nic_handler,\n                                      void *gpu_qp_umem_dev_ptr,
      struct doca_verbs_cq *cq_sq,\n                                      enum doca_gpu_verbs_send_dbr_mode_ext
      send_dbr_mode_ext,\n                                      struct doca_gpu_verbs_qp
      **qp_out)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:825,1
    - Dst: doca_gpu_mem_alloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:831,1
    - Dst: priv_get_page_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:832,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:835,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:839,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:839,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:842,1
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:843,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:851,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - qp
    - qp_gpu
    argTypes:
    - struct doca_gpu_verbs_qp*
    - struct doca_gpu_dev_verbs_qp**
    assertStmts:
    - condition: (qp->qp_cpu)
      pos:
        line_end: 824
        line_start: 824
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    - condition: (qp->gpu_dev->support_gdrcopy)
      pos:
        line_end: 850
        line_start: 850
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    constantsTouched: []
    func_position:
      end: 859
      start: 816
    functionDepth: 2
    functionLinenumber: 816
    functionLinenumberEnd: 859
    functionName: doca_gpu_verbs_get_qp_dev
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached:
    - doca_gpu_mem_free
    - doca_gpu_mem_alloc
    - priv_get_page_size
    - cudaMemcpy
    - assert
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_verbs_get_qp_dev(struct doca_gpu_verbs_qp *qp,\n
      \                                      struct doca_gpu_dev_verbs_qp **qp_gpu)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:869,1
    - Dst: doca_gpu_verbs_unexport_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:873,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:874,1
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:878,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:883,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - gpu_dev
    - qp_gverbs
    argTypes:
    - struct doca_gpu*
    - struct doca_gpu_verbs_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 861
    functionDepth: 2
    functionLinenumber: 861
    functionLinenumberEnd: 886
    functionName: doca_gpu_verbs_unexport_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 1
    functionsReached:
    - doca_gpu_verbs_unexport_uar
    - doca_gpu_mem_free
    - free
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_verbs_unexport_qp(struct doca_gpu *gpu_dev,\n
      \                                       struct doca_gpu_verbs_qp *qp_gverbs)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:911,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:916,1
    - Dst: doca_gpu_mem_alloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:919,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:922,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:927,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:929,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:935,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:942,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:945,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:946,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:949,1
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:958,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:960,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - gpu_dev
    - qps
    - num_qps
    - out_qp_gpus
    argTypes:
    - struct doca_gpu*
    - struct doca_gpu_verbs_qp**
    - unsigned int
    - struct doca_gpu_dev_verbs_qp**
    assertStmts:
    - condition: (qp->qp_cpu != nullptr)
      pos:
        line_end: 910
        line_start: 910
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    - condition: (gpu_dev->support_gdrcopy)
      pos:
        line_end: 915
        line_start: 915
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    - condition: (qp->qp_cpu != nullptr)
      pos:
        line_end: 934
        line_start: 934
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    constantsTouched: []
    func_position:
      end: 962
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 962
    functionName: doca_gpu_verbs_export_multi_qps_dev
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 1
    functionsReached:
    - calloc
    - doca_gpu_mem_free
    - doca_gpu_mem_alloc
    - cudaMemcpy
    - memcpy
    - assert
    - free
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_verbs_export_multi_qps_dev(struct doca_gpu *gpu_dev,\n
      \                                                struct doca_gpu_verbs_qp **qps,\n
      \                                                unsigned int num_qps,\n                                                 struct
      doca_gpu_dev_verbs_qp **out_qp_gpus)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_gpu_mem_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - gpu_dev
    - qps
    - num_qps
    - qp_gpus
    argTypes:
    - struct doca_gpu*
    - struct doca_gpu_verbs_qp**
    - unsigned int
    - struct doca_gpu_dev_verbs_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 980
    functionName: doca_gpu_verbs_unexport_multi_qps_dev
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 2
    functionsReached:
    - doca_gpu_mem_free
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_verbs_unexport_multi_qps_dev(struct doca_gpu
      *gpu_dev,\n                                                   struct doca_gpu_verbs_qp
      **qps,\n                                                   unsigned int num_qps,\n
      \                                                  struct doca_gpu_dev_verbs_qp
      *qp_gpus)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::atomic<uint64_t> *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:988,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:992,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:995,1
    - Dst: reinterpret_cast<std::atomic<uint64_t> *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1000,1
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1001,1
    - Dst: reinterpret_cast<std::atomic<uint32_t> *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1002,1
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1004,1
    - Dst: reinterpret_cast<std::atomic<uint64_t> *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1006,1
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - qp
    - out_progressed
    argTypes:
    - struct doca_gpu_verbs_qp*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 1013
    functionName: priv_cpu_proxy_progress_full_assisted
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached:
    - htobe32
    - reinterpret_cast<std::atomic<uint64_t> *>
    - std::atomic_thread_fence
    - reinterpret_cast<uint64_t *>
    - reinterpret_cast<std::atomic<uint32_t> *>
    linkageType: ''
    returnType: void
    signature: "void priv_cpu_proxy_progress_full_assisted(struct doca_gpu_verbs_qp
      *qp,\n                                                         bool *out_progressed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::atomic<uint64_t> *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1019,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1023,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1025,1
    - Dst: reinterpret_cast<std::atomic<uint32_t> *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1026,1
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1028,1
    - Dst: reinterpret_cast<std::atomic<uint64_t> *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1029,1
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct doca_gpu_verbs_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1034
    functionName: priv_cpu_proxy_progress_dbr_assisted
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached:
    - htobe32
    - reinterpret_cast<std::atomic<uint64_t> *>
    - std::atomic_thread_fence
    - reinterpret_cast<uint64_t *>
    - reinterpret_cast<std::atomic<uint32_t> *>
    linkageType: ''
    returnType: void
    signature: void priv_cpu_proxy_progress_dbr_assisted(struct doca_gpu_verbs_qp
      *qp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: priv_cpu_proxy_progress_dbr_assisted
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1044,1
    - Dst: priv_cpu_proxy_progress_full_assisted
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1046,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - qp
    - out_progressed
    argTypes:
    - struct doca_gpu_verbs_qp*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1051
    functionName: doca_gpu_verbs_cpu_proxy_progress
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 1
    functionsReached:
    - priv_cpu_proxy_progress_full_assisted
    - priv_cpu_proxy_progress_dbr_assisted
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_cpu_proxy_progress(struct doca_gpu_verbs_qp
      *qp, bool *out_progressed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_rdlock
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1058,1
    - Dst: doca_gpu_verbs_cpu_proxy_progress
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1063,1
    - Dst: pthread_rwlock_unlock
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1067,1
    - Dst: sched_yield
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1068,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1072
    functionName: priv_service_mainloop
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached:
    - doca_gpu_verbs_cpu_proxy_progress
    - sched_yield
    - pthread_rwlock_rdlock
    - pthread_rwlock_unlock
    linkageType: ''
    returnType: void
    signature: void *priv_service_mainloop(void *args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1081,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1083,1
    - Dst: pthread_rwlock_init
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1088,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1090,1
    - Dst: std::set<struct doca_gpu_verbs_qp *>::set<struct doca_gpu_verbs_qp *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1096,1
    - Dst: pthread_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1097,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1099,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - out_service
    argTypes:
    - doca_gpu_verbs_service_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1112
    functionName: doca_gpu_verbs_create_service
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached:
    - calloc
    - pthread_rwlock_init
    - std::set<struct doca_gpu_verbs_qp *>::set<struct doca_gpu_verbs_qp *>
    - pthread_create
    - free
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_create_service(doca_gpu_verbs_service_t
      *out_service)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_wrlock
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1119,1
    - Dst: struct doca_gpu_verbs_service*::qps::insert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1120,1
    - Dst: pthread_rwlock_unlock
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - service
    - qp
    argTypes:
    - doca_gpu_verbs_service_t
    - struct doca_gpu_verbs_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1124
    functionName: doca_gpu_verbs_service_monitor_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached:
    - struct doca_gpu_verbs_service*::qps::insert
    - pthread_rwlock_wrlock
    - pthread_rwlock_unlock
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_verbs_service_monitor_qp(doca_gpu_verbs_service_t
      service,\n                                               struct doca_gpu_verbs_qp
      *qp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1131,1
    - Dst: pthread_rwlock_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1132,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - service
    argTypes:
    - doca_gpu_verbs_service_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1137
    functionName: doca_gpu_verbs_destroy_service
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached:
    - free
    - pthread_join
    - pthread_rwlock_destroy
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_destroy_service(doca_gpu_verbs_service_t
      service)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1146,1
    - Dst: doca_verbs_qp_query
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1150,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - qp
    - error_info
    argTypes:
    - struct doca_gpu_verbs_qp*
    - struct doca_gpu_verbs_qp_error_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1159
    functionName: doca_gpu_verbs_query_last_error
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 1
    functionsReached:
    - memset
    - DOCA_LOG
    - doca_verbs_qp_query
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_gpu_verbs_query_last_error(struct doca_gpu_verbs_qp
      *qp,\n                                             struct doca_gpu_verbs_qp_error_info
      *error_info)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1172,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1173,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1173,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1177,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1182,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1195,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1199,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1200,1
    - Dst: cudaMemset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1201,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1203,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1209,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1210,1
    - Dst: cudaMemset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1211,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1214,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1219,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1220,1
    - Dst: cudaMemset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1221,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1224,1
    - Dst: DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1229,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1229,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1233,1
    - Dst: cudaDeviceSynchronize
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1238,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp:1240,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 1
    argNames:
    - qp_gverbs
    argTypes:
    - struct doca_gpu_verbs_qp*
    assertStmts:
    - condition: (qp_gverbs->qp_gpu)
      pos:
        line_end: 1171
        line_start: 1171
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    - condition: (qp_gverbs->qp_cpu->cq_sq.cqe_daddr)
      pos:
        line_end: 1208
        line_start: 1208
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    - condition: (qp_gverbs->qp_cpu)
      pos:
        line_end: 1181
        line_start: 1181
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    - condition: (qp_gverbs->qp_cpu->sq_dbrec)
      pos:
        line_end: 1198
        line_start: 1198
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    - condition: (qp_gverbs->sq_dbrec)
      pos:
        line_end: 1194
        line_start: 1194
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    - condition: (qp_gverbs->qp_cpu->sq_wqe_daddr)
      pos:
        line_end: 1218
        line_start: 1218
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    constantsTouched: []
    func_position:
      end: 1247
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1247
    functionName: doca_gpu_verbs_reset_tracking_and_memory
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached:
    - cudaMemcpy
    - cudaMemset
    - assert
    - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
    - DOCA_LOG
    - cudaDeviceSynchronize
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_reset_tracking_and_memory(struct doca_gpu_verbs_qp
      *qp_gverbs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1253
    functionName: doca_gpu_verbs_get_library_version
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_get_library_version(uint32_t *version)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - device_code_version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1260
    functionName: doca_gpu_verbs_check_device_code_compatibility
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_check_device_code_compatibility(uint32_t
      device_code_version)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - host_code_version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1262
    functionDepth: 0
    functionLinenumber: 1262
    functionLinenumberEnd: 1267
    functionName: doca_gpu_verbs_check_host_code_compatibility
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_gpu_verbs_check_host_code_compatibility(uint32_t
      host_code_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: __devx_nullp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __devx_nullp(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: __devx_st_sz_bits
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __devx_st_sz_bits(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typ
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: __devx_bit_sz
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __devx_bit_sz(typ, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typ
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: __devx_bit_off
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __devx_bit_off(typ, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bit_off
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: __devx_dw_off
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __devx_dw_off(bit_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bit_off
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: __devx_64_off
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __devx_64_off(bit_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bit_sz
    - ','
    - bit_off
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: __devx_dw_bit_off
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __devx_dw_bit_off(bit_sz, bit_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bit_sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: __devx_mask
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __devx_mask(bit_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bit_sz
    - ','
    - bit_off
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: __devx_dw_mask
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __devx_dw_mask(bit_sz, bit_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typ
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: DEVX_FLD_SZ_BYTES
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_FLD_SZ_BYTES(typ, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: DEVX_ST_SZ_BYTES
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_ST_SZ_BYTES(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: DEVX_ST_SZ_DW
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_ST_SZ_DW(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: DEVX_ST_SZ_QW
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_ST_SZ_QW(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: DEVX_UN_SZ_BYTES
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_UN_SZ_BYTES(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: DEVX_UN_SZ_DW
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_UN_SZ_DW(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typ
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: DEVX_BYTE_OFF
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_BYTE_OFF(typ, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - typ
    - ','
    - p
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: DEVX_ADDR_OF
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_ADDR_OF(typ, p, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __devx_dw_off
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:205,1
    - Dst: __devx_dw_mask
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:206,1
    - Dst: __devx_mask
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:207,1
    - Dst: htobe32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:209,1
    - Dst: be32toh
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:209,1
    - Dst: __devx_dw_bit_off
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - value
    - bit_off
    - bit_sz
    argTypes:
    - void*
    - uint32_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: _devx_set
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached:
    - htobe32
    - __devx_dw_bit_off
    - __devx_dw_mask
    - be32toh
    - __devx_mask
    - __devx_dw_off
    linkageType: ''
    returnType: void
    signature: void _devx_set(void *p, uint32_t value, size_t bit_off, size_t bit_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - typ
    - ','
    - p
    - ','
    - fld
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: DEVX_SET
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_SET(typ, p, fld, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be32toh
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:216,1
    - Dst: __devx_dw_off
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:216,1
    - Dst: __devx_dw_bit_off
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:217,1
    - Dst: __devx_mask
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - bit_off
    - bit_sz
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: _devx_get
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached:
    - __devx_dw_bit_off
    - be32toh
    - __devx_mask
    - __devx_dw_off
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _devx_get(const void *p, size_t bit_off, size_t bit_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - typ
    - ','
    - p
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: DEVX_GET
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_GET(typ, p, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __devx_64_off
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:224,1
    - Dst: htobe64
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - v
    - bit_off
    argTypes:
    - void*
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: _devx_set64
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached:
    - htobe64
    - __devx_64_off
    linkageType: ''
    returnType: void
    signature: void _devx_set64(void *p, uint64_t v, size_t bit_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - typ
    - ','
    - p
    - ','
    - fld
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: DEVX_SET64
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_SET64(typ, p, fld, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be64toh
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:230,1
    - Dst: __devx_64_off
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - bit_off
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: _devx_get64
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached:
    - be64toh
    - __devx_64_off
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _devx_get64(const void *p, size_t bit_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - typ
    - ','
    - p
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: DEVX_GET64
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVX_GET64(typ, p, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_init_obj
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - obj_type
    argTypes:
    - struct mlx5dv_obj*
    - enum mlx5dv_obj_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: doca_verbs_wrapper_mlx5dv_init_obj
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached:
    - mlx5dv_init_obj
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_init_obj(struct mlx5dv_obj
      *obj,\n                                                              enum mlx5dv_obj_type
      obj_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_devx_obj_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - context
    - in
    - inlen
    - out
    - outlen
    - obj_out
    argTypes:
    - struct ibv_context*
    - void*
    - size_t
    - void*
    - size_t
    - struct mlx5dv_devx_obj**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: doca_verbs_wrapper_mlx5dv_devx_obj_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 1
    functionsReached:
    - mlx5dv_devx_obj_create
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_obj_create(\n    struct
      ibv_context *context, const void *in, size_t inlen, void *out, size_t outlen,\n
      \   struct mlx5dv_devx_obj **obj_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_devx_obj_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct mlx5dv_devx_obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: doca_verbs_wrapper_mlx5dv_devx_obj_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 1
    functionsReached:
    - mlx5dv_devx_obj_destroy
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_mlx5dv_devx_obj_destroy(struct mlx5dv_devx_obj
      *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_devx_obj_query
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - obj
    - in
    - inlen
    - out
    - outlen
    argTypes:
    - struct mlx5dv_devx_obj*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: doca_verbs_wrapper_mlx5dv_devx_obj_query
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached:
    - mlx5dv_devx_obj_query
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_obj_query(struct mlx5dv_devx_obj
      *obj,\n                                                                    const
      void *in, size_t inlen,\n                                                                    void
      *out, size_t outlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_devx_obj_modify
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - obj
    - in
    - inlen
    - out
    - outlen
    argTypes:
    - struct mlx5dv_devx_obj*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 359
    functionName: doca_verbs_wrapper_mlx5dv_devx_obj_modify
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached:
    - mlx5dv_devx_obj_modify
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_obj_modify(struct mlx5dv_devx_obj
      *obj,\n                                                                     const
      void *in, size_t inlen,\n                                                                     void
      *out, size_t outlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_devx_general_cmd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - context
    - in
    - inlen
    - out
    - outlen
    argTypes:
    - struct ibv_context*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 366
    functionName: doca_verbs_wrapper_mlx5dv_devx_general_cmd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 1
    functionsReached:
    - mlx5dv_devx_general_cmd
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_general_cmd(struct ibv_context
      *context,\n                                                                      const
      void *in, size_t inlen,\n                                                                      void
      *out, size_t outlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_devx_query_eqn
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - cpus
    - eqn
    argTypes:
    - struct ibv_context*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: doca_verbs_wrapper_mlx5dv_devx_query_eqn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 1
    functionsReached:
    - mlx5dv_devx_query_eqn
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_query_eqn(struct ibv_context
      *context,\n                                                                    uint32_t
      cpus, uint32_t *eqn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_devx_umem_reg
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - context
    - addr
    - size
    - access
    - umem_out
    argTypes:
    - struct ibv_context*
    - void*
    - size_t
    - uint32_t
    - struct mlx5dv_devx_umem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 383
    functionName: doca_verbs_wrapper_mlx5dv_devx_umem_reg
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 1
    functionsReached:
    - mlx5dv_devx_umem_reg
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_umem_reg(\n    struct
      ibv_context *context, void *addr, size_t size, uint32_t access,\n    struct
      mlx5dv_devx_umem **umem_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_devx_umem_reg_ex
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - umem_in
    - umem_out
    argTypes:
    - struct ibv_context*
    - struct mlx5dv_devx_umem_in*
    - struct mlx5dv_devx_umem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: doca_verbs_wrapper_mlx5dv_devx_umem_reg_ex
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached:
    - mlx5dv_devx_umem_reg_ex
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_umem_reg_ex(\n    struct
      ibv_context *context, struct mlx5dv_devx_umem_in *umem_in,\n    struct mlx5dv_devx_umem
      **umem_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_devx_umem_dereg
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - umem
    argTypes:
    - struct mlx5dv_devx_umem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: doca_verbs_wrapper_mlx5dv_devx_umem_dereg
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 1
    functionsReached:
    - mlx5dv_devx_umem_dereg
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_umem_dereg(\n    struct
      mlx5dv_devx_umem *umem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_devx_alloc_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - uar_type
    - uar_out
    argTypes:
    - struct ibv_context*
    - uint32_t
    - struct mlx5dv_devx_uar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 410
    functionName: doca_verbs_wrapper_mlx5dv_devx_alloc_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 2
    functionsReached:
    - mlx5dv_devx_alloc_uar
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_devx_alloc_uar(\n    struct
      ibv_context *context, uint32_t uar_type, struct mlx5dv_devx_uar **uar_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_devx_free_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uar
    argTypes:
    - struct mlx5dv_devx_uar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: doca_verbs_wrapper_mlx5dv_devx_free_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 2
    functionsReached:
    - mlx5dv_devx_free_uar
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_mlx5dv_devx_free_uar(struct mlx5dv_devx_uar
      *uar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_query_device
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - attrs_out
    argTypes:
    - struct ibv_context*
    - struct mlx5dv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: doca_verbs_wrapper_mlx5dv_query_device
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    functionUses: 0
    functionsReached:
    - mlx5dv_query_device
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_mlx5dv_query_device(\n    struct ibv_context
      *context, struct mlx5dv_context *attrs_out)"
  - 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: ~doca_verbs_device_attr()
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~doca_verbs_device_attr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: '&operator=(doca_verbs_device_attr const &)'
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: doca_verbs_device_attr
    signature: doca_verbs_device_attr &operator=(doca_verbs_device_attr const &)
  - 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: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: MAX
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: QP_ATTR
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QP_ATTR(_mask)
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 1
    argNames:
    - attr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 203
    functionName: qp_attr_to_string
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *qp_attr_to_string(int attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:207,1
    - Dst: qp_attr_to_string
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - required_attr_mask
    - attr_mask
    - attr_to_check
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: print_if_missing_attr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - qp_attr_to_string
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: void print_if_missing_attr(int required_attr_mask, int attr_mask, int
      attr_to_check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:212,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:213,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:214,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:215,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:216,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:217,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:218,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:219,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:220,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:221,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:222,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:223,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:224,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:225,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:226,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:227,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - required_attr_mask
    - attr_mask
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 229
    functionName: print_missing_attrs
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - print_if_missing_attr
    linkageType: ''
    returnType: void
    signature: void print_missing_attrs(int required_attr_mask, int attr_mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - attr_mask
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: is_X2rst_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_X2rst_attrs_valid(int attr_mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - attr_mask
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: is_X2err_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_X2err_attrs_valid(int attr_mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:259,1
    - Dst: print_missing_attrs
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - attr_mask
    - qp_type
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: is_rst2init_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - print_missing_attrs
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_rst2init_attrs_valid(int attr_mask, uint32_t qp_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - attr_mask
    - qp_type
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 280
    functionName: is_init2init_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_init2init_attrs_valid(int attr_mask, uint32_t qp_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:287,1
    - Dst: print_missing_attrs
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - attr_mask
    - qp_type
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 297
    functionName: is_init2rtr_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - print_missing_attrs
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_init2rtr_attrs_valid(int attr_mask, uint32_t qp_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:304,1
    - Dst: print_missing_attrs
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - attr_mask
    - qp_type
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 314
    functionName: is_rtr2rts_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - print_missing_attrs
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_rtr2rts_attrs_valid(int attr_mask, uint32_t qp_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - attr_mask
    - qp_type
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 325
    functionName: is_rts2rts_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_rts2rts_attrs_valid(int attr_mask, uint32_t qp_type)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - attr_mask
    - mlx5_opt_mask
    - state_mod
    argTypes:
    - int
    - int
    - doca_verbs_qp_state_mod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 368
    functionName: convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask(\n
      \   int attr_mask, int &mlx5_opt_mask, doca_verbs_qp_state_mod state_mod)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MLX5_ST_SZ_DW
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:372,1
    - Dst: MLX5_ST_SZ_DW
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:374,1
    - Dst: MLX5_ST_SZ_DW
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:374,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:377,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:378,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_general_cmd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:380,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:382,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:386,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - sgid_index
    - roce_version
    argTypes:
    - struct ibv_context*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 391
    functionName: query_roce_version
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - MLX5_ST_SZ_DW
    - doca_verbs_wrapper_mlx5dv_devx_general_cmd
    - DEVX_GET
    - DEVX_SET
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t query_roce_version(struct ibv_context *ctx, uint8_t sgid_index,\n
      \                               uint8_t &roce_version) noexcept"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:415,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - mtu_size
    - prm_mtu_size
    argTypes:
    - doca_verbs_mtu_size
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 420
    functionName: convert_doca_mtu_size_to_prm_mtu_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t convert_doca_mtu_size_to_prm_mtu_size(doca_verbs_mtu_size
      mtu_size,\n                                                   uint32_t &prm_mtu_size)
      noexcept"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:444,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - prm_mtu_size
    - mtu_size
    argTypes:
    - uint32_t
    - doca_verbs_mtu_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 449
    functionName: convert_prm_mtu_size_to_doca_verbs_mtu_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t convert_prm_mtu_size_to_doca_verbs_mtu_size(uint32_t
      prm_mtu_size,\n                                                         doca_verbs_mtu_size
      &mtu_size) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 451
    functionName: random_in_range
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: int
    signature: int random_in_range(int min, int max)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:461,1
    - Dst: doca_verbs_wrapper_ibv_create_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:466,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:468,1
    - Dst: doca_verbs_wrapper_mlx5dv_init_obj
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:478,1
    - Dst: doca_verbs_wrapper_ibv_destroy_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:480,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:482,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:484,1
    - Dst: doca_verbs_wrapper_ibv_destroy_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:490,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:492,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:494,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:498,1
    - Dst: doca_verbs_wrapper_ibv_destroy_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:500,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 7
    argNames:
    - pd_handle
    - local_port_num
    - local_gid_index
    - remote_gid
    - hop_limit
    - is_global
    - mac
    argTypes:
    - ibv_pd*
    - uint8_t
    - uint32_t
    - uint8_t[]
    - uint8_t
    - uint8_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 507
    functionName: resolve_remote_mac
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - doca_verbs_wrapper_ibv_destroy_ah
    - doca_verbs_wrapper_mlx5dv_init_obj
    - DOCA_LOG
    - doca_verbs_wrapper_ibv_create_ah
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t resolve_remote_mac(ibv_pd *pd_handle, uint8_t local_port_num,
      uint32_t local_gid_index,\n                                uint8_t remote_gid[PRIV_DOCA_GID_BYTE_LENGTH],
      uint8_t hop_limit,\n                                uint8_t is_global,\n                                uint8_t
      mac[PRIV_DOCA_MAC_BYTE_LENGTH]) noexcept"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:528,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - qp_state
    - state
    argTypes:
    - uint32_t
    - doca_verbs_qp_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 533
    functionName: convert_prm_qp_state_to_doca_verbs_qp_state
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t convert_prm_qp_state_to_doca_verbs_qp_state(uint32_t
      qp_state,\n                                                         doca_verbs_qp_state
      &state)"
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 1
    argNames:
    - attr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 203
    functionName: qp_attr_to_string
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *qp_attr_to_string(int attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:207,1
    - Dst: qp_attr_to_string
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - required_attr_mask
    - attr_mask
    - attr_to_check
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: print_if_missing_attr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - qp_attr_to_string
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: void print_if_missing_attr(int required_attr_mask, int attr_mask, int
      attr_to_check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:212,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:213,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:214,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:215,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:216,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:217,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:218,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:219,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:220,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:221,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:222,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:223,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:224,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:225,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:226,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:227,1
    - Dst: print_if_missing_attr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - required_attr_mask
    - attr_mask
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 229
    functionName: print_missing_attrs
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 3
    functionsReached:
    - print_if_missing_attr
    linkageType: ''
    returnType: void
    signature: void print_missing_attrs(int required_attr_mask, int attr_mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - attr_mask
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: is_X2rst_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_X2rst_attrs_valid(int attr_mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - attr_mask
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: is_X2err_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_X2err_attrs_valid(int attr_mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:259,1
    - Dst: print_missing_attrs
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - attr_mask
    - qp_type
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: is_rst2init_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - print_missing_attrs
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_rst2init_attrs_valid(int attr_mask, uint32_t qp_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - attr_mask
    - qp_type
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 280
    functionName: is_init2init_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_init2init_attrs_valid(int attr_mask, uint32_t qp_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:287,1
    - Dst: print_missing_attrs
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - attr_mask
    - qp_type
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 297
    functionName: is_init2rtr_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - print_missing_attrs
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_init2rtr_attrs_valid(int attr_mask, uint32_t qp_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:304,1
    - Dst: print_missing_attrs
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - attr_mask
    - qp_type
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 314
    functionName: is_rtr2rts_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - print_missing_attrs
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_rtr2rts_attrs_valid(int attr_mask, uint32_t qp_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - attr_mask
    - qp_type
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 325
    functionName: is_rts2rts_attrs_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool is_rts2rts_attrs_valid(int attr_mask, uint32_t qp_type)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - attr_mask
    - mlx5_opt_mask
    - state_mod
    argTypes:
    - int
    - int
    - doca_verbs_qp_state_mod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 368
    functionName: convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask(\n
      \   int attr_mask, int &mlx5_opt_mask, doca_verbs_qp_state_mod state_mod)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MLX5_ST_SZ_DW
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:372,1
    - Dst: MLX5_ST_SZ_DW
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:374,1
    - Dst: MLX5_ST_SZ_DW
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:374,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:377,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:378,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_general_cmd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:380,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:382,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:386,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - sgid_index
    - roce_version
    argTypes:
    - struct ibv_context*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 391
    functionName: query_roce_version
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - MLX5_ST_SZ_DW
    - doca_verbs_wrapper_mlx5dv_devx_general_cmd
    - DEVX_GET
    - DEVX_SET
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t query_roce_version(struct ibv_context *ctx, uint8_t sgid_index,\n
      \                               uint8_t &roce_version) noexcept"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:415,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - mtu_size
    - prm_mtu_size
    argTypes:
    - doca_verbs_mtu_size
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 420
    functionName: convert_doca_mtu_size_to_prm_mtu_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t convert_doca_mtu_size_to_prm_mtu_size(doca_verbs_mtu_size
      mtu_size,\n                                                   uint32_t &prm_mtu_size)
      noexcept"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:444,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - prm_mtu_size
    - mtu_size
    argTypes:
    - uint32_t
    - doca_verbs_mtu_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 449
    functionName: convert_prm_mtu_size_to_doca_verbs_mtu_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t convert_prm_mtu_size_to_doca_verbs_mtu_size(uint32_t
      prm_mtu_size,\n                                                         doca_verbs_mtu_size
      &mtu_size) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 451
    functionName: random_in_range
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: int
    signature: int random_in_range(int min, int max)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:461,1
    - Dst: doca_verbs_wrapper_ibv_create_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:466,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:468,1
    - Dst: doca_verbs_wrapper_mlx5dv_init_obj
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:478,1
    - Dst: doca_verbs_wrapper_ibv_destroy_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:480,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:482,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:484,1
    - Dst: doca_verbs_wrapper_ibv_destroy_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:490,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:492,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:494,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:498,1
    - Dst: doca_verbs_wrapper_ibv_destroy_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:500,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 7
    argNames:
    - pd_handle
    - local_port_num
    - local_gid_index
    - remote_gid
    - hop_limit
    - is_global
    - mac
    argTypes:
    - ibv_pd*
    - uint8_t
    - uint32_t
    - uint8_t[]
    - uint8_t
    - uint8_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 507
    functionName: resolve_remote_mac
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - doca_verbs_wrapper_ibv_destroy_ah
    - doca_verbs_wrapper_mlx5dv_init_obj
    - DOCA_LOG
    - doca_verbs_wrapper_ibv_create_ah
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t resolve_remote_mac(ibv_pd *pd_handle, uint8_t local_port_num,
      uint32_t local_gid_index,\n                                uint8_t remote_gid[PRIV_DOCA_GID_BYTE_LENGTH],
      uint8_t hop_limit,\n                                uint8_t is_global,\n                                uint8_t
      mac[PRIV_DOCA_MAC_BYTE_LENGTH]) noexcept"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:528,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - qp_state
    - state
    argTypes:
    - uint32_t
    - doca_verbs_qp_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 533
    functionName: convert_prm_qp_state_to_doca_verbs_qp_state
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t convert_prm_qp_state_to_doca_verbs_qp_state(uint32_t
      qp_state,\n                                                         doca_verbs_qp_state
      &state)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum doca_verbs_qp_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 556
    functionName: doca_verbs_qp::is_qp_attr_state_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool doca_verbs_qp::is_qp_attr_state_valid(enum doca_verbs_qp_state
      state) noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - path_mtu
    argTypes:
    - enum doca_verbs_mtu_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 573
    functionName: doca_verbs_qp::is_qp_attr_path_mtu_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool doca_verbs_qp::is_qp_attr_path_mtu_valid(enum doca_verbs_mtu_size
      path_mtu) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - psn
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 583
    functionName: doca_verbs_qp::is_qp_attr_queue_psn_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_qp::is_qp_attr_queue_psn_valid(uint32_t psn) noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - addr_type
    argTypes:
    - enum doca_verbs_addr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 599
    functionName: doca_verbs_qp::is_qp_attr_ah_add_type_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool doca_verbs_qp::is_qp_attr_ah_add_type_valid(enum doca_verbs_addr_type
      addr_type) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sgid_index
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 609
    functionName: doca_verbs_qp::is_qp_attr_ah_sgid_index_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool doca_verbs_qp::is_qp_attr_ah_sgid_index_valid(uint8_t sgid_index)
      noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey_index
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 619
    functionName: doca_verbs_qp::is_qp_attr_pkey_index_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool doca_verbs_qp::is_qp_attr_pkey_index_valid(uint16_t pkey_index)
      noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - port_num
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 629
    functionName: doca_verbs_qp::is_qp_attr_port_num_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool doca_verbs_qp::is_qp_attr_port_num_valid(uint16_t port_num) noexcept
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_qp::is_qp_attr_state_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:634,1
    - Dst: doca_verbs_qp::is_qp_attr_state_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:637,1
    - Dst: doca_verbs_qp::is_qp_attr_path_mtu_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:640,1
    - Dst: doca_verbs_qp::is_qp_attr_queue_psn_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:643,1
    - Dst: doca_verbs_qp::is_qp_attr_queue_psn_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:645,1
    - Dst: doca_verbs_qp::is_qp_attr_ah_add_type_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:647,1
    - Dst: doca_verbs_qp::is_qp_attr_ah_sgid_index_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:650,1
    - Dst: doca_verbs_qp::is_qp_attr_pkey_index_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:653,1
    - Dst: doca_verbs_qp::is_qp_attr_port_num_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:656,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 20
    argCount: 2
    argNames:
    - verbs_qp_attr
    - attr_mask
    argTypes:
    - struct doca_verbs_qp_attr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 660
    functionName: doca_verbs_qp::is_qp_attr_valid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_qp::is_qp_attr_ah_sgid_index_valid
    - doca_verbs_qp::is_qp_attr_path_mtu_valid
    - doca_verbs_qp::is_qp_attr_queue_psn_valid
    - doca_verbs_qp::is_qp_attr_ah_add_type_valid
    - doca_verbs_qp::is_qp_attr_pkey_index_valid
    - doca_verbs_qp::is_qp_attr_port_num_valid
    - doca_verbs_qp::is_qp_attr_state_valid
    linkageType: ''
    returnType: bool
    signature: "bool doca_verbs_qp::is_qp_attr_valid(struct doca_verbs_qp_attr *verbs_qp_attr,\n
      \                                    int attr_mask) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 662
    functionName: doca_verbs_qp::get_current_state
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: doca_verbs_qp_state
    signature: doca_verbs_qp_state doca_verbs_qp::get_current_state() const noexcept
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:671,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:675,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:676,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:681,1
    - Dst: doca_verbs_wrapper_mlx5dv_init_obj
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:685,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:687,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:691,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:693,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:694,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:698,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:701,1
    - Dst: struct doca_verbs_qp_init_attr::send_cq::get_cqn
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:701,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:702,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:704,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:709,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:713,1
    - Dst: struct doca_verbs_qp_init_attr::receive_cq::get_cqn
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:713,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:717,1
    - Dst: struct doca_verbs_qp_init_attr::srq::get_srqn
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:717,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:718,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:722,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:723,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:724,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:728,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:734,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:735,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:736,1
    - Dst: DEVX_SET64
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:737,1
    - Dst: DEVX_SET64
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:739,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:740,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:741,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:744,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:747,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:750,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:751,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:755,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 57
    argCount: 8
    argNames:
    - uar_id
    - log_rq_size
    - log_sq_size_wqebb
    - log_stride
    - dbr_umem_offset
    - dbr_umem_id
    - wq_umem_id
    - verbs_qp_init_attr
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint64_t
    - uint32_t
    - uint32_t
    - struct doca_verbs_qp_init_attr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 759
    functionName: doca_verbs_qp::create_qp_obj
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - MLX5_ADDR_OF
    - doca_verbs_wrapper_mlx5dv_init_obj
    - struct doca_verbs_qp_init_attr::send_cq::get_cqn
    - doca_verbs_wrapper_mlx5dv_devx_obj_create
    - struct doca_verbs_qp_init_attr::receive_cq::get_cqn
    - memset
    - DEVX_SET64
    - DEVX_GET
    - DEVX_SET
    - struct doca_verbs_qp_init_attr::srq::get_srqn
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp::create_qp_obj(\n    uint32_t uar_id, uint32_t
      log_rq_size, uint32_t log_sq_size_wqebb, uint32_t log_stride,\n    uint64_t
      dbr_umem_offset, uint32_t dbr_umem_id, uint32_t wq_umem_id,\n    struct doca_verbs_qp_init_attr
      &verbs_qp_init_attr) noexcept"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_rst2init_attrs_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:766,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:767,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:771,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:772,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:773,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:774,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:775,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:777,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:780,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:785,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:789,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:793,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:794,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_modify
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:798,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:800,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:806,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - verbs_qp_attr
    - attr_mask
    argTypes:
    - struct doca_verbs_qp_attr
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 761
    functionDepth: 4
    functionLinenumber: 761
    functionLinenumberEnd: 809
    functionName: doca_verbs_qp::rst2init
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - MLX5_ADDR_OF
    - DEVX_SET
    - is_rst2init_attrs_valid
    - doca_verbs_wrapper_mlx5dv_devx_obj_modify
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp::rst2init(struct doca_verbs_qp_attr &verbs_qp_attr,\n
      \                                    int attr_mask) noexcept"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_init2init_attrs_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:816,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:817,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:821,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:822,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:823,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:824,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:825,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:828,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:833,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:837,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:838,1
    - Dst: convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:842,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:844,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_modify
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:847,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:849,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:855,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - verbs_qp_attr
    - attr_mask
    argTypes:
    - struct doca_verbs_qp_attr
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 811
    functionDepth: 2
    functionLinenumber: 811
    functionLinenumberEnd: 858
    functionName: doca_verbs_qp::init2init
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
    - MLX5_ADDR_OF
    - DEVX_SET
    - is_init2init_attrs_valid
    - doca_verbs_wrapper_mlx5dv_devx_obj_modify
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp::init2init(struct doca_verbs_qp_attr &verbs_qp_attr,\n
      \                                     int attr_mask) noexcept"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: is_init2rtr_attrs_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:862,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:863,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:867,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:874,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:875,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:876,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:877,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:878,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:879,1
    - Dst: convert_doca_mtu_size_to_prm_mtu_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:882,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:884,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:887,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:890,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:891,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:892,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:894,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:897,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:897,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:899,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:900,1
    - Dst: resolve_remote_mac
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:907,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:911,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:915,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:915,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:917,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:917,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:923,1
    - Dst: query_roce_version
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:928,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:930,1
    - Dst: srand
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:936,1
    - Dst: time
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:936,1
    - Dst: random_in_range
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:937,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:939,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:941,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:942,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:947,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:949,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:954,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:958,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:959,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:963,1
    - Dst: doca_internal_utils_log2
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:963,1
    - Dst: convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:966,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:968,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_modify
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:971,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:973,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:974,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:981,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 2
    argNames:
    - verbs_qp_attr
    - attr_mask
    argTypes:
    - struct doca_verbs_qp_attr
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 860
    functionDepth: 4
    functionLinenumber: 860
    functionLinenumberEnd: 984
    functionName: doca_verbs_qp::init2rtr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - srand
    - convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
    - random_in_range
    - query_roce_version
    - MLX5_ADDR_OF
    - time
    - memcpy
    - doca_internal_utils_log2
    - DEVX_GET
    - convert_doca_mtu_size_to_prm_mtu_size
    - DEVX_SET
    - is_init2rtr_attrs_valid
    - doca_verbs_wrapper_mlx5dv_devx_obj_modify
    - DOCA_LOG
    - resolve_remote_mac
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp::init2rtr(struct doca_verbs_qp_attr &verbs_qp_attr,\n
      \                                    int attr_mask) noexcept"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_rtr2rts_attrs_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:991,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:992,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:996,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:997,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:998,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:999,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1001,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1003,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1005,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1007,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1009,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1012,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1013,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1017,1
    - Dst: doca_internal_utils_log2
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1017,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1019,1
    - Dst: convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1022,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1025,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_modify
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1028,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1030,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1036,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - verbs_qp_attr
    - attr_mask
    argTypes:
    - struct doca_verbs_qp_attr
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 986
    functionDepth: 4
    functionLinenumber: 986
    functionLinenumberEnd: 1039
    functionName: doca_verbs_qp::rtr2rts
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
    - MLX5_ADDR_OF
    - is_rtr2rts_attrs_valid
    - doca_internal_utils_log2
    - DEVX_SET
    - doca_verbs_wrapper_mlx5dv_devx_obj_modify
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp::rtr2rts(struct doca_verbs_qp_attr &verbs_qp_attr,\n
      \                                   int attr_mask) noexcept"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_rts2rts_attrs_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1043,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1044,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1048,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1055,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1056,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1057,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1060,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1062,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1067,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1070,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1071,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1075,1
    - Dst: query_roce_version
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1081,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1083,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1088,1
    - Dst: convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1094,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1097,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_modify
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1100,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1102,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1108,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - verbs_qp_attr
    - attr_mask
    argTypes:
    - struct doca_verbs_qp_attr
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1041
    functionDepth: 2
    functionLinenumber: 1041
    functionLinenumberEnd: 1111
    functionName: doca_verbs_qp::rts2rts
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
    - query_roce_version
    - MLX5_ADDR_OF
    - is_rts2rts_attrs_valid
    - DEVX_SET
    - doca_verbs_wrapper_mlx5dv_devx_obj_modify
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp::rts2rts(struct doca_verbs_qp_attr &verbs_qp_attr,\n
      \                                   int attr_mask) noexcept"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_X2err_attrs_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1118,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1119,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1123,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1124,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_modify
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1127,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1129,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - verbs_qp_attr
    - attr_mask
    argTypes:
    - struct doca_verbs_qp_attr
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1138
    functionName: doca_verbs_qp::qp2err
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - is_X2err_attrs_valid
    - DEVX_SET
    - doca_verbs_wrapper_mlx5dv_devx_obj_modify
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp::qp2err(struct doca_verbs_qp_attr &verbs_qp_attr,\n
      \                                  int attr_mask) noexcept"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_X2rst_attrs_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1145,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1146,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1150,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1151,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_modify
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1154,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1156,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - verbs_qp_attr
    - attr_mask
    argTypes:
    - struct doca_verbs_qp_attr
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1140
    functionDepth: 2
    functionLinenumber: 1140
    functionLinenumberEnd: 1165
    functionName: doca_verbs_qp::qp2rst
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DEVX_SET
    - doca_verbs_wrapper_mlx5dv_devx_obj_modify
    - DOCA_LOG
    - is_X2rst_attrs_valid
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp::qp2rst(struct doca_verbs_qp_attr &verbs_qp_attr,\n
      \                                  int attr_mask) noexcept"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1172,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1173,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_query
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1175,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1177,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1182,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1183,1
    - Dst: convert_prm_qp_state_to_doca_verbs_qp_state
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1186,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1188,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1194,1
    - Dst: convert_prm_mtu_size_to_doca_verbs_mtu_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1195,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1197,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1201,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1202,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1203,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1204,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1205,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1206,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1207,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1208,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1209,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1210,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1211,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1213,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1214,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1218,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1219,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1220,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1221,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1222,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1223,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1225,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1226,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 2
    argNames:
    - verbs_qp_attr
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_attr
    - struct doca_verbs_qp_init_attr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1167
    functionDepth: 2
    functionLinenumber: 1167
    functionLinenumberEnd: 1250
    functionName: doca_verbs_qp::query_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - MLX5_ADDR_OF
    - doca_verbs_wrapper_mlx5dv_devx_obj_query
    - memcpy
    - convert_prm_qp_state_to_doca_verbs_qp_state
    - DEVX_GET
    - convert_prm_mtu_size_to_doca_verbs_mtu_size
    - DEVX_SET
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp::query_qp(struct doca_verbs_qp_attr &verbs_qp_attr,\n
      \                                    struct doca_verbs_qp_init_attr &verbs_qp_init_attr)
      noexcept"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1259,1
    - Dst: doca_verbs_query_device
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1264,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1266,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1271,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1277,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1283,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1294,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1298,1
    - Dst: doca_internal_utils_next_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1303,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1307,1
    - Dst: static_cast<uint8_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1310,1
    - Dst: doca_internal_utils_log2
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1310,1
    - Dst: static_cast<uint32_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1314,1
    - Dst: doca_internal_utils_next_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1315,1
    - Dst: MAX
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1317,1
    - Dst: doca_internal_utils_log2
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1320,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1326,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1330,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1343,1
    - Dst: doca_internal_utils_align_up_uint64
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1357,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1364,1
    - Dst: MAX
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1372,1
    - Dst: doca_internal_utils_align_up_uint32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1376,1
    - Dst: static_cast<uint32_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1378,1
    - Dst: doca_internal_utils_next_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1379,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1383,1
    - Dst: doca_internal_utils_log2
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1386,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_alloc_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1403,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_alloc_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1406,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1409,1
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1414,1
    - Dst: doca_verbs_uar_id_get
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1418,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1420,1
    - Dst: doca_verbs_uar_reg_addr_get
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1426,1
    - Dst: doca_verbs_uar_dbr_less_addr_get
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1428,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1431,1
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1434,1
    - Dst: doca_internal_utils_align_up_uint32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1446,1
    - Dst: doca_internal_utils_align_up_uint32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1449,1
    - Dst: memalign
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1452,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1454,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_umem_reg
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1460,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1463,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1471,1
    - Dst: doca_verbs_umem_get_address
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1476,1
    - Dst: reinterpret_cast<void **>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1477,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1479,1
    - Dst: doca_verbs_umem_get_id
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1487,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1489,1
    - Dst: doca_verbs_umem_get_address
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1494,1
    - Dst: reinterpret_cast<void **>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1495,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1497,1
    - Dst: doca_verbs_umem_get_id
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1501,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1503,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1508,1
    - Dst: doca_verbs_qp::create_qp_obj
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1512,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1515,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1519,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 156
    argCount: 1
    argNames:
    - ibv_ctx
    argTypes:
    - struct ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1252
    functionDepth: 3
    functionLinenumber: 1252
    functionLinenumberEnd: 1520
    functionName: doca_verbs_qp::create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<void **>
    - doca_internal_utils_log2
    - doca_verbs_query_device
    - doca_internal_utils_next_power_of_two
    - static_cast<uint8_t>
    - DOCA_LOG
    - doca_verbs_uar_id_get
    - static_cast<uint32_t>
    - doca_verbs_wrapper_mlx5dv_devx_umem_reg
    - doca_verbs_umem_get_id
    - doca_verbs_uar_dbr_less_addr_get
    - doca_verbs_umem_get_address
    - memset
    - reinterpret_cast<uint64_t *>
    - doca_internal_utils_align_up_uint32
    - memalign
    - reinterpret_cast<uint32_t *>
    - doca_verbs_wrapper_mlx5dv_devx_alloc_uar
    - doca_verbs_qp::create_qp_obj
    - doca_verbs_uar_reg_addr_get
    - MAX
    - doca_internal_utils_align_up_uint64
    linkageType: ''
    returnType: void
    signature: void doca_verbs_qp::create(struct ibv_context *ibv_ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_device_attr_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1526,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1528,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1535,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1537,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_free_uar
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1544,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_umem_dereg
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1549,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1551,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1558,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1522
    functionDepth: 2
    functionLinenumber: 1522
    functionLinenumberEnd: 1563
    functionName: doca_verbs_qp::destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_wrapper_mlx5dv_devx_free_uar
    - doca_verbs_wrapper_mlx5dv_devx_obj_destroy
    - doca_verbs_wrapper_mlx5dv_devx_umem_dereg
    - free
    - doca_verbs_device_attr_free
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_qp::destroy() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_qp::create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1569,1
    - Dst: doca_verbs_qp::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1571,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ibv_ctx
    - verbs_qp_init_attr
    argTypes:
    - struct ibv_context*
    - struct doca_verbs_qp_init_attr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1565
    functionDepth: 4
    functionLinenumber: 1565
    functionLinenumberEnd: 1575
    functionName: doca_verbs_qp::doca_verbs_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    - doca_verbs_qp::create
    - doca_verbs_qp::destroy
    linkageType: ''
    returnType: void
    signature: "void doca_verbs_qp::doca_verbs_qp(struct ibv_context *ibv_ctx,\n                             struct
      doca_verbs_qp_init_attr &verbs_qp_init_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1577,1
    - Dst: doca_verbs_qp::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1577
    functionDepth: 3
    functionLinenumber: 1577
    functionLinenumberEnd: 1577
    functionName: doca_verbs_qp::~doca_verbs_qp()
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - doca_verbs_qp::destroy
    linkageType: ''
    returnType: void
    signature: void doca_verbs_qp::~doca_verbs_qp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1579
    functionDepth: 0
    functionLinenumber: 1579
    functionLinenumberEnd: 1579
    functionName: doca_verbs_qp::get_qpn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_qp::get_qpn() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1581
    functionName: doca_verbs_qp::get_dbr_addr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *doca_verbs_qp::get_dbr_addr() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1583
    functionDepth: 0
    functionLinenumber: 1583
    functionLinenumberEnd: 1583
    functionName: doca_verbs_qp::get_uar_addr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *doca_verbs_qp::get_uar_addr() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: external_uar::get_uar_mtype
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1587
    functionName: doca_verbs_qp::get_uar_mtype
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - external_uar::get_uar_mtype
    linkageType: ''
    returnType: enum doca_verbs_uar_allocation_type
    signature: enum doca_verbs_uar_allocation_type doca_verbs_qp::get_uar_mtype()
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1589
    functionName: doca_verbs_qp::get_sq_buf
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *doca_verbs_qp::get_sq_buf() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1591
    functionName: doca_verbs_qp::get_rq_buf
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *doca_verbs_qp::get_rq_buf() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1593
    functionDepth: 0
    functionLinenumber: 1593
    functionLinenumberEnd: 1593
    functionName: doca_verbs_qp::get_sq_size_wqebb
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_qp::get_sq_size_wqebb() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1595
    functionDepth: 0
    functionLinenumber: 1595
    functionLinenumberEnd: 1595
    functionName: doca_verbs_qp::get_rq_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_qp::get_rq_size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1597
    functionName: doca_verbs_qp::get_rcv_wqe_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_qp::get_rcv_wqe_size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<enum doca_verbs_qp_send_dbr_mode>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1601
    functionName: doca_verbs_qp::get_send_dbr_mode
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<enum doca_verbs_qp_send_dbr_mode>
    linkageType: ''
    returnType: enum doca_verbs_qp_send_dbr_mode
    signature: enum doca_verbs_qp_send_dbr_mode doca_verbs_qp::get_send_dbr_mode()
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1603
    functionDepth: 0
    functionLinenumber: 1603
    functionLinenumberEnd: 1605
    functionName: doca_verbs_qp::get_emulate_no_dbr_ext
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool doca_verbs_qp::get_emulate_no_dbr_ext() const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1613,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1618,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1611
    functionDepth: 1
    functionLinenumber: 1611
    functionLinenumberEnd: 1625
    functionName: doca_verbs_qp_init_attr_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 2
    functionsReached:
    - calloc
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_qp_init_attr_create(struct doca_verbs_qp_init_attr
      **verbs_qp_init_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1629,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1637
    functionName: doca_verbs_qp_init_attr_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 2
    functionsReached:
    - free
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_qp_init_attr_destroy(struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1642,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - pd
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - struct ibv_pd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1639
    functionDepth: 1
    functionLinenumber: 1639
    functionLinenumberEnd: 1653
    functionName: doca_verbs_qp_init_attr_set_pd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_pd(struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr,\n                                            struct ibv_pd
      *pd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1663
    functionName: doca_verbs_qp_init_attr_get_pd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: struct ibv_pd
    signature: "struct ibv_pd *doca_verbs_qp_init_attr_get_pd(\n    const struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1668,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - send_cq
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - struct doca_verbs_cq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1665
    functionDepth: 1
    functionLinenumber: 1665
    functionLinenumberEnd: 1679
    functionName: doca_verbs_qp_init_attr_set_send_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_send_cq(struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr,\n                                                 struct
      doca_verbs_cq *send_cq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1681
    functionDepth: 1
    functionLinenumber: 1681
    functionLinenumberEnd: 1689
    functionName: doca_verbs_qp_init_attr_get_send_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: struct doca_verbs_cq
    signature: "struct doca_verbs_cq *doca_verbs_qp_init_attr_get_send_cq(\n    const
      struct doca_verbs_qp_init_attr *verbs_qp_init_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1694,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - receive_cq
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - struct doca_verbs_cq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1691
    functionDepth: 1
    functionLinenumber: 1691
    functionLinenumberEnd: 1705
    functionName: doca_verbs_qp_init_attr_set_receive_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_receive_cq(\n    struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr, struct doca_verbs_cq *receive_cq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1707
    functionDepth: 1
    functionLinenumber: 1707
    functionLinenumberEnd: 1715
    functionName: doca_verbs_qp_init_attr_get_receive_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: struct doca_verbs_cq
    signature: "struct doca_verbs_cq *doca_verbs_qp_init_attr_get_receive_cq(\n    const
      struct doca_verbs_qp_init_attr *verbs_qp_init_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - sq_sig_all
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1717
    functionDepth: 1
    functionLinenumber: 1717
    functionLinenumberEnd: 1727
    functionName: doca_verbs_qp_init_attr_set_sq_sig_all
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_sq_sig_all(\n    struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr, int sq_sig_all)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1729
    functionDepth: 1
    functionLinenumber: 1729
    functionLinenumberEnd: 1737
    functionName: doca_verbs_qp_init_attr_get_sq_sig_all
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: int
    signature: "int doca_verbs_qp_init_attr_get_sq_sig_all(\n    const struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - sq_wr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1739
    functionDepth: 1
    functionLinenumber: 1739
    functionLinenumberEnd: 1749
    functionName: doca_verbs_qp_init_attr_set_sq_wr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_sq_wr(struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr,\n                                               uint32_t
      sq_wr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1751
    functionDepth: 1
    functionLinenumber: 1751
    functionLinenumberEnd: 1759
    functionName: doca_verbs_qp_init_attr_get_sq_wr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_qp_init_attr_get_sq_wr(\n    const struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - rq_wr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1771
    functionName: doca_verbs_qp_init_attr_set_rq_wr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_rq_wr(struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr,\n                                               uint32_t
      rq_wr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1773
    functionDepth: 1
    functionLinenumber: 1773
    functionLinenumberEnd: 1781
    functionName: doca_verbs_qp_init_attr_get_rq_wr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_qp_init_attr_get_rq_wr(\n    const struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - send_max_sges
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1783
    functionDepth: 1
    functionLinenumber: 1783
    functionLinenumberEnd: 1793
    functionName: doca_verbs_qp_init_attr_set_send_max_sges
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_send_max_sges(\n    struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr, uint32_t send_max_sges)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1795
    functionDepth: 1
    functionLinenumber: 1795
    functionLinenumberEnd: 1803
    functionName: doca_verbs_qp_init_attr_get_send_max_sges
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_qp_init_attr_get_send_max_sges(\n    const struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - receive_max_sges
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1805
    functionDepth: 1
    functionLinenumber: 1805
    functionLinenumberEnd: 1815
    functionName: doca_verbs_qp_init_attr_set_receive_max_sges
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_receive_max_sges(\n    struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr, uint32_t receive_max_sges)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1817
    functionDepth: 1
    functionLinenumber: 1817
    functionLinenumberEnd: 1825
    functionName: doca_verbs_qp_init_attr_get_receive_max_sges
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_qp_init_attr_get_receive_max_sges(\n    const
      struct doca_verbs_qp_init_attr *verbs_qp_init_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - max_inline_data
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1837
    functionName: doca_verbs_qp_init_attr_set_max_inline_data
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_max_inline_data(\n    struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr, uint32_t max_inline_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1839
    functionDepth: 1
    functionLinenumber: 1839
    functionLinenumberEnd: 1847
    functionName: doca_verbs_qp_init_attr_get_max_inline_data
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_qp_init_attr_get_max_inline_data(\n    const struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1852,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - user_index
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1865
    functionName: doca_verbs_qp_init_attr_set_user_index
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_user_index(\n    struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr, uint32_t user_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1867
    functionDepth: 1
    functionLinenumber: 1867
    functionLinenumberEnd: 1875
    functionName: doca_verbs_qp_init_attr_get_user_index
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_qp_init_attr_get_user_index(\n    const struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - qp_type
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1877
    functionDepth: 1
    functionLinenumber: 1877
    functionLinenumberEnd: 1887
    functionName: doca_verbs_qp_init_attr_set_qp_type
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_qp_type(struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr,\n                                                 uint32_t
      qp_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1889
    functionDepth: 1
    functionLinenumber: 1889
    functionLinenumberEnd: 1897
    functionName: doca_verbs_qp_init_attr_get_qp_type
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_qp_init_attr_get_qp_type(\n    const struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1903,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - verbs_qp_init_attr
    - external_umem
    - external_umem_offset
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - struct doca_verbs_umem*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1899
    functionDepth: 1
    functionLinenumber: 1899
    functionLinenumberEnd: 1915
    functionName: doca_verbs_qp_init_attr_set_external_umem
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_external_umem(\n    struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr, struct doca_verbs_umem *external_umem,\n
      \   uint64_t external_umem_offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1921,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1925,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - verbs_qp_init_attr
    - external_umem
    - external_umem_offset
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - struct doca_verbs_umem*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1917
    functionDepth: 1
    functionLinenumber: 1917
    functionLinenumberEnd: 1933
    functionName: doca_verbs_qp_init_attr_set_external_dbr_umem
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_external_dbr_umem(\n    struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr, struct doca_verbs_umem *external_umem,\n
      \   uint64_t external_umem_offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1939,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1943,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1947,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - verbs_qp_init_attr
    - external_umem
    - external_umem_offset
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - struct doca_verbs_umem**
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1935
    functionDepth: 1
    functionLinenumber: 1935
    functionLinenumberEnd: 1955
    functionName: doca_verbs_qp_init_attr_get_external_umem
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_get_external_umem(\n    const
      struct doca_verbs_qp_init_attr *verbs_qp_init_attr,\n    struct doca_verbs_umem
      **external_umem, uint64_t *external_umem_offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1960,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - external_uar
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - struct doca_verbs_uar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1957
    functionDepth: 1
    functionLinenumber: 1957
    functionLinenumberEnd: 1971
    functionName: doca_verbs_qp_init_attr_set_external_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_external_uar(\n    struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr, struct doca_verbs_uar *external_uar)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1977,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - external_uar
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - struct doca_verbs_uar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1973
    functionDepth: 1
    functionLinenumber: 1973
    functionLinenumberEnd: 1988
    functionName: doca_verbs_qp_init_attr_get_external_uar
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_get_external_uar(\n    const
      struct doca_verbs_qp_init_attr *verbs_qp_init_attr,\n    struct doca_verbs_uar
      **external_uar)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1993,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:1997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - qp_context
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1990
    functionDepth: 1
    functionLinenumber: 1990
    functionLinenumberEnd: 2004
    functionName: doca_verbs_qp_init_attr_set_qp_context
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_qp_context(\n    struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr, void *qp_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2006
    functionDepth: 1
    functionLinenumber: 2006
    functionLinenumberEnd: 2014
    functionName: doca_verbs_qp_init_attr_get_qp_context
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: "void *doca_verbs_qp_init_attr_get_qp_context(\n    const struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2019,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2024,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - core_direct_master
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2032
    functionName: doca_verbs_qp_init_attr_set_core_direct_master
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_core_direct_master(\n    struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr, uint8_t core_direct_master)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2034
    functionDepth: 1
    functionLinenumber: 2034
    functionLinenumberEnd: 2042
    functionName: doca_verbs_qp_init_attr_get_core_direct_master
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t doca_verbs_qp_init_attr_get_core_direct_master(\n    const
      struct doca_verbs_qp_init_attr *verbs_qp_init_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2048,1
    - Dst: static_cast<uint8_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - send_dbr_mode
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - enum doca_verbs_qp_send_dbr_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2044
    functionDepth: 1
    functionLinenumber: 2044
    functionLinenumberEnd: 2054
    functionName: doca_verbs_qp_init_attr_set_send_dbr_mode
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint8_t>
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_send_dbr_mode(\n    struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr,\n    enum doca_verbs_qp_send_dbr_mode
      send_dbr_mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2059,1
    - Dst: static_cast<enum doca_verbs_qp_send_dbr_mode>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2056
    functionDepth: 1
    functionLinenumber: 2056
    functionLinenumberEnd: 2064
    functionName: doca_verbs_qp_init_attr_get_send_dbr_mode
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - static_cast<enum doca_verbs_qp_send_dbr_mode>
    - DOCA_LOG
    linkageType: ''
    returnType: enum doca_verbs_qp_send_dbr_mode
    signature: "enum doca_verbs_qp_send_dbr_mode doca_verbs_qp_init_attr_get_send_dbr_mode(\n
      \   const struct doca_verbs_qp_init_attr *verbs_qp_init_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - emulate_no_dbr_ext
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2066
    functionDepth: 1
    functionLinenumber: 2066
    functionLinenumberEnd: 2076
    functionName: doca_verbs_qp_init_attr_set_emulate_no_dbr_ext
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_emulate_no_dbr_ext(\n    struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr, bool emulate_no_dbr_ext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2081,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2078
    functionDepth: 1
    functionLinenumber: 2078
    functionLinenumberEnd: 2086
    functionName: doca_verbs_qp_init_attr_get_emulate_no_dbr_ext
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: "bool doca_verbs_qp_init_attr_get_emulate_no_dbr_ext(\n    const struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2090,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2094,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2101
    functionName: doca_verbs_qp_attr_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 2
    functionsReached:
    - calloc
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_qp_attr_create(struct doca_verbs_qp_attr **verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2105,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2103
    functionDepth: 1
    functionLinenumber: 2103
    functionLinenumberEnd: 2113
    functionName: doca_verbs_qp_attr_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 2
    functionsReached:
    - free
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_qp_attr_destroy(struct doca_verbs_qp_attr *verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - next_state
    argTypes:
    - struct doca_verbs_qp_attr*
    - enum doca_verbs_qp_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2115
    functionDepth: 1
    functionLinenumber: 2115
    functionLinenumberEnd: 2125
    functionName: doca_verbs_qp_attr_set_next_state
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_next_state(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                               enum doca_verbs_qp_state
      next_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2130,1
    - Dst: static_cast<enum doca_verbs_qp_state>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2127
    functionDepth: 1
    functionLinenumber: 2127
    functionLinenumberEnd: 2135
    functionName: doca_verbs_qp_attr_get_next_state
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<enum doca_verbs_qp_state>
    - DOCA_LOG
    linkageType: ''
    returnType: enum doca_verbs_qp_state
    signature: "enum doca_verbs_qp_state doca_verbs_qp_attr_get_next_state(\n    const
      struct doca_verbs_qp_attr *verbs_qp_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - current_state
    argTypes:
    - struct doca_verbs_qp_attr*
    - enum doca_verbs_qp_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2137
    functionDepth: 1
    functionLinenumber: 2137
    functionLinenumberEnd: 2147
    functionName: doca_verbs_qp_attr_set_current_state
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_current_state(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                                  enum doca_verbs_qp_state
      current_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2152,1
    - Dst: static_cast<enum doca_verbs_qp_state>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2149
    functionDepth: 1
    functionLinenumber: 2149
    functionLinenumberEnd: 2157
    functionName: doca_verbs_qp_attr_get_current_state
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<enum doca_verbs_qp_state>
    - DOCA_LOG
    linkageType: ''
    returnType: enum doca_verbs_qp_state
    signature: "enum doca_verbs_qp_state doca_verbs_qp_attr_get_current_state(\n    const
      struct doca_verbs_qp_attr *verbs_qp_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - path_mtu
    argTypes:
    - struct doca_verbs_qp_attr*
    - enum doca_verbs_mtu_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2159
    functionDepth: 1
    functionLinenumber: 2159
    functionLinenumberEnd: 2169
    functionName: doca_verbs_qp_attr_set_path_mtu
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_path_mtu(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                             enum doca_verbs_mtu_size
      path_mtu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2174,1
    - Dst: static_cast<enum doca_verbs_mtu_size>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2171
    functionDepth: 1
    functionLinenumber: 2171
    functionLinenumberEnd: 2179
    functionName: doca_verbs_qp_attr_get_path_mtu
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<enum doca_verbs_mtu_size>
    - DOCA_LOG
    linkageType: ''
    returnType: enum doca_verbs_mtu_size
    signature: "enum doca_verbs_mtu_size doca_verbs_qp_attr_get_path_mtu(\n    const
      struct doca_verbs_qp_attr *verbs_qp_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - rq_psn
    argTypes:
    - struct doca_verbs_qp_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2181
    functionDepth: 1
    functionLinenumber: 2181
    functionLinenumberEnd: 2191
    functionName: doca_verbs_qp_attr_set_rq_psn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_rq_psn(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                           uint32_t rq_psn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2193
    functionDepth: 1
    functionLinenumber: 2193
    functionLinenumberEnd: 2200
    functionName: doca_verbs_qp_attr_get_rq_psn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_qp_attr_get_rq_psn(const struct doca_verbs_qp_attr
      *verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - sq_psn
    argTypes:
    - struct doca_verbs_qp_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2212
    functionName: doca_verbs_qp_attr_set_sq_psn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_sq_psn(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                           uint32_t sq_psn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2214
    functionDepth: 1
    functionLinenumber: 2214
    functionLinenumberEnd: 2221
    functionName: doca_verbs_qp_attr_get_sq_psn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_qp_attr_get_sq_psn(const struct doca_verbs_qp_attr
      *verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - dest_qp_num
    argTypes:
    - struct doca_verbs_qp_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2223
    functionDepth: 1
    functionLinenumber: 2223
    functionLinenumberEnd: 2233
    functionName: doca_verbs_qp_attr_set_dest_qp_num
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_dest_qp_num(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                                uint32_t dest_qp_num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2235
    functionDepth: 1
    functionLinenumber: 2235
    functionLinenumberEnd: 2242
    functionName: doca_verbs_qp_attr_get_dest_qp_num
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_qp_attr_get_dest_qp_num(const struct doca_verbs_qp_attr
      *verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - allow_remote_write
    argTypes:
    - struct doca_verbs_qp_attr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2254
    functionName: doca_verbs_qp_attr_set_allow_remote_write
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_allow_remote_write(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                                       int
      allow_remote_write)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2256
    functionDepth: 1
    functionLinenumber: 2256
    functionLinenumberEnd: 2263
    functionName: doca_verbs_qp_attr_get_allow_remote_write
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: int
    signature: int doca_verbs_qp_attr_get_allow_remote_write(const struct doca_verbs_qp_attr
      *verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - allow_remote_read
    argTypes:
    - struct doca_verbs_qp_attr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2265
    functionDepth: 1
    functionLinenumber: 2265
    functionLinenumberEnd: 2275
    functionName: doca_verbs_qp_attr_set_allow_remote_read
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_allow_remote_read(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                                      int allow_remote_read)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2277
    functionDepth: 1
    functionLinenumber: 2277
    functionLinenumberEnd: 2284
    functionName: doca_verbs_qp_attr_get_allow_remote_read
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: int
    signature: int doca_verbs_qp_attr_get_allow_remote_read(const struct doca_verbs_qp_attr
      *verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - atomic_type
    argTypes:
    - struct doca_verbs_qp_attr*
    - enum doca_verbs_qp_atomic_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2286
    functionDepth: 1
    functionLinenumber: 2286
    functionLinenumberEnd: 2296
    functionName: doca_verbs_qp_attr_set_allow_remote_atomic
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_allow_remote_atomic(\n    struct
      doca_verbs_qp_attr *verbs_qp_attr, enum doca_verbs_qp_atomic_type atomic_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2298
    functionDepth: 1
    functionLinenumber: 2298
    functionLinenumberEnd: 2306
    functionName: doca_verbs_qp_attr_get_allow_remote_atomic
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: enum doca_verbs_qp_atomic_type
    signature: "enum doca_verbs_qp_atomic_type doca_verbs_qp_attr_get_allow_remote_atomic(\n
      \   const struct doca_verbs_qp_attr *verbs_qp_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2311,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_attr
    - ah_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    - doca_verbs_ah_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2308
    functionDepth: 1
    functionLinenumber: 2308
    functionLinenumberEnd: 2322
    functionName: doca_verbs_qp_attr_set_ah_attr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_ah_attr(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                            doca_verbs_ah_attr
      *ah_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2327,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2324
    functionDepth: 1
    functionLinenumber: 2324
    functionLinenumberEnd: 2336
    functionName: doca_verbs_qp_attr_get_ah_attr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: struct doca_verbs_ah_attr
    signature: "struct doca_verbs_ah_attr *doca_verbs_qp_attr_get_ah_attr(\n    const
      struct doca_verbs_qp_attr *verbs_qp_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - pkey_index
    argTypes:
    - struct doca_verbs_qp_attr*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2338
    functionDepth: 1
    functionLinenumber: 2338
    functionLinenumberEnd: 2348
    functionName: doca_verbs_qp_attr_set_pkey_index
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_pkey_index(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                               uint16_t pkey_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2350
    functionDepth: 1
    functionLinenumber: 2350
    functionLinenumberEnd: 2357
    functionName: doca_verbs_qp_attr_get_pkey_index
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t doca_verbs_qp_attr_get_pkey_index(const struct doca_verbs_qp_attr
      *verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - port_num
    argTypes:
    - struct doca_verbs_qp_attr*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2359
    functionDepth: 1
    functionLinenumber: 2359
    functionLinenumberEnd: 2369
    functionName: doca_verbs_qp_attr_set_port_num
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_port_num(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                             uint16_t port_num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2371
    functionDepth: 1
    functionLinenumber: 2371
    functionLinenumberEnd: 2378
    functionName: doca_verbs_qp_attr_get_port_num
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t doca_verbs_qp_attr_get_port_num(const struct doca_verbs_qp_attr
      *verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - ack_timeout
    argTypes:
    - struct doca_verbs_qp_attr*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2380
    functionDepth: 1
    functionLinenumber: 2380
    functionLinenumberEnd: 2390
    functionName: doca_verbs_qp_attr_set_ack_timeout
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_ack_timeout(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                                uint16_t ack_timeout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2392
    functionDepth: 1
    functionLinenumber: 2392
    functionLinenumberEnd: 2399
    functionName: doca_verbs_qp_attr_get_ack_timeout
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t doca_verbs_qp_attr_get_ack_timeout(const struct doca_verbs_qp_attr
      *verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - retry_cnt
    argTypes:
    - struct doca_verbs_qp_attr*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2401
    functionDepth: 1
    functionLinenumber: 2401
    functionLinenumberEnd: 2411
    functionName: doca_verbs_qp_attr_set_retry_cnt
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_retry_cnt(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                              uint16_t retry_cnt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2413
    functionDepth: 1
    functionLinenumber: 2413
    functionLinenumberEnd: 2420
    functionName: doca_verbs_qp_attr_get_retry_cnt
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t doca_verbs_qp_attr_get_retry_cnt(const struct doca_verbs_qp_attr
      *verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - rnr_retry
    argTypes:
    - struct doca_verbs_qp_attr*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2432
    functionName: doca_verbs_qp_attr_set_rnr_retry
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_rnr_retry(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                              uint16_t rnr_retry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2441
      start: 2434
    functionDepth: 1
    functionLinenumber: 2434
    functionLinenumberEnd: 2441
    functionName: doca_verbs_qp_attr_get_rnr_retry
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t doca_verbs_qp_attr_get_rnr_retry(const struct doca_verbs_qp_attr
      *verbs_qp_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_qp_attr
    - min_rnr_timer
    argTypes:
    - struct doca_verbs_qp_attr*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2443
    functionDepth: 1
    functionLinenumber: 2443
    functionLinenumberEnd: 2453
    functionName: doca_verbs_qp_attr_set_min_rnr_timer
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_min_rnr_timer(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                                  uint16_t
      min_rnr_timer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_attr
    argTypes:
    - struct doca_verbs_qp_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2455
    functionDepth: 1
    functionLinenumber: 2455
    functionLinenumberEnd: 2462
    functionName: doca_verbs_qp_attr_get_min_rnr_timer
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t doca_verbs_qp_attr_get_min_rnr_timer(const struct doca_verbs_qp_attr
      *verbs_qp_attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2467,1
    - Dst: doca_internal_utils_next_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2471,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_attr
    - max_rd_atomic
    argTypes:
    - struct doca_verbs_qp_attr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2464
    functionDepth: 1
    functionLinenumber: 2464
    functionLinenumberEnd: 2480
    functionName: doca_verbs_qp_attr_set_max_rd_atomic
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - doca_internal_utils_next_power_of_two
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_max_rd_atomic(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                                  uint8_t max_rd_atomic)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2485,1
    - Dst: doca_internal_utils_next_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2489,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_attr
    - max_dest_rd_atomic
    argTypes:
    - struct doca_verbs_qp_attr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2482
    functionDepth: 1
    functionLinenumber: 2482
    functionLinenumberEnd: 2498
    functionName: doca_verbs_qp_attr_set_max_dest_rd_atomic
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - doca_internal_utils_next_power_of_two
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_attr_set_max_dest_rd_atomic(struct doca_verbs_qp_attr
      *verbs_qp_attr,\n                                                       uint8_t
      max_dest_rd_atomic)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2503,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2507,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2511,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - context
    - verbs_ah
    argTypes:
    - struct ibv_context*
    - struct doca_verbs_ah_attr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2500
    functionDepth: 1
    functionLinenumber: 2500
    functionLinenumberEnd: 2520
    functionName: doca_verbs_ah_attr_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - calloc
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_ah_attr_create(struct ibv_context *context,\n
      \                                      struct doca_verbs_ah_attr **verbs_ah)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2524,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - verbs_ah
    argTypes:
    - struct doca_verbs_ah_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2522
    functionDepth: 1
    functionLinenumber: 2522
    functionLinenumberEnd: 2532
    functionName: doca_verbs_ah_attr_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 2
    functionsReached:
    - free
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_ah_attr_destroy(struct doca_verbs_ah_attr *verbs_ah)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_ah
    - gid
    argTypes:
    - struct doca_verbs_ah_attr*
    - struct doca_verbs_gid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2534
    functionDepth: 1
    functionLinenumber: 2534
    functionLinenumberEnd: 2544
    functionName: doca_verbs_ah_attr_set_gid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_ah_attr_set_gid(struct doca_verbs_ah_attr
      *verbs_ah,\n                                        struct doca_verbs_gid gid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2548,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - verbs_ah
    argTypes:
    - struct doca_verbs_ah_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2546
    functionDepth: 1
    functionLinenumber: 2546
    functionLinenumberEnd: 2555
    functionName: doca_verbs_ah_get_gid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - memset
    - DOCA_LOG
    linkageType: ''
    returnType: struct doca_verbs_gid
    signature: struct doca_verbs_gid doca_verbs_ah_get_gid(const struct doca_verbs_ah_attr
      *verbs_ah)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_ah
    - addr_type
    argTypes:
    - struct doca_verbs_ah_attr*
    - enum doca_verbs_addr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2557
    functionDepth: 1
    functionLinenumber: 2557
    functionLinenumberEnd: 2567
    functionName: doca_verbs_ah_attr_set_addr_type
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_ah_attr_set_addr_type(struct doca_verbs_ah_attr
      *verbs_ah,\n                                              enum doca_verbs_addr_type
      addr_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2571,1
    - Dst: static_cast<enum doca_verbs_addr_type>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_ah
    argTypes:
    - struct doca_verbs_ah_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2569
    functionDepth: 1
    functionLinenumber: 2569
    functionLinenumberEnd: 2576
    functionName: doca_verbs_ah_get_addr_type
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<enum doca_verbs_addr_type>
    - DOCA_LOG
    linkageType: ''
    returnType: enum doca_verbs_addr_type
    signature: enum doca_verbs_addr_type doca_verbs_ah_get_addr_type(const struct
      doca_verbs_ah_attr *verbs_ah)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_ah
    - dlid
    argTypes:
    - struct doca_verbs_ah_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2587
      start: 2578
    functionDepth: 1
    functionLinenumber: 2578
    functionLinenumberEnd: 2587
    functionName: doca_verbs_ah_attr_set_dlid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_ah_attr_set_dlid(struct doca_verbs_ah_attr
      *verbs_ah, uint32_t dlid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_ah
    argTypes:
    - struct doca_verbs_ah_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2589
    functionDepth: 1
    functionLinenumber: 2589
    functionLinenumberEnd: 2596
    functionName: doca_verbs_ah_get_dlid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_ah_get_dlid(const struct doca_verbs_ah_attr *verbs_ah)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_ah
    - sl
    argTypes:
    - struct doca_verbs_ah_attr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2598
    functionDepth: 1
    functionLinenumber: 2598
    functionLinenumberEnd: 2607
    functionName: doca_verbs_ah_attr_set_sl
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_ah_attr_set_sl(struct doca_verbs_ah_attr *verbs_ah,
      uint8_t sl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_ah
    argTypes:
    - struct doca_verbs_ah_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2609
    functionDepth: 1
    functionLinenumber: 2609
    functionLinenumberEnd: 2616
    functionName: doca_verbs_ah_get_sl
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t doca_verbs_ah_get_sl(const struct doca_verbs_ah_attr *verbs_ah)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_ah
    - sgid_index
    argTypes:
    - struct doca_verbs_ah_attr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2618
    functionDepth: 1
    functionLinenumber: 2618
    functionLinenumberEnd: 2628
    functionName: doca_verbs_ah_attr_set_sgid_index
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_ah_attr_set_sgid_index(struct doca_verbs_ah_attr
      *verbs_ah,\n                                               uint8_t sgid_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_ah
    argTypes:
    - struct doca_verbs_ah_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2637
      start: 2630
    functionDepth: 1
    functionLinenumber: 2630
    functionLinenumberEnd: 2637
    functionName: doca_verbs_ah_get_sgid_index
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t doca_verbs_ah_get_sgid_index(const struct doca_verbs_ah_attr
      *verbs_ah)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_ah
    - static_rate
    argTypes:
    - struct doca_verbs_ah_attr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2639
    functionDepth: 1
    functionLinenumber: 2639
    functionLinenumberEnd: 2649
    functionName: doca_verbs_ah_attr_set_static_rate
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_ah_attr_set_static_rate(struct doca_verbs_ah_attr
      *verbs_ah,\n                                                uint8_t static_rate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_ah
    argTypes:
    - struct doca_verbs_ah_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2658
      start: 2651
    functionDepth: 1
    functionLinenumber: 2651
    functionLinenumberEnd: 2658
    functionName: doca_verbs_ah_get_static_rate
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t doca_verbs_ah_get_static_rate(const struct doca_verbs_ah_attr
      *verbs_ah)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_ah
    - hop_limit
    argTypes:
    - struct doca_verbs_ah_attr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2660
    functionDepth: 1
    functionLinenumber: 2660
    functionLinenumberEnd: 2670
    functionName: doca_verbs_ah_attr_set_hop_limit
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_ah_attr_set_hop_limit(struct doca_verbs_ah_attr
      *verbs_ah,\n                                              uint8_t hop_limit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_ah
    argTypes:
    - struct doca_verbs_ah_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2679
      start: 2672
    functionDepth: 1
    functionLinenumber: 2672
    functionLinenumberEnd: 2679
    functionName: doca_verbs_ah_get_hop_limit
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t doca_verbs_ah_get_hop_limit(const struct doca_verbs_ah_attr
      *verbs_ah)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - verbs_ah
    - traffic_class
    argTypes:
    - struct doca_verbs_ah_attr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2681
    functionDepth: 1
    functionLinenumber: 2681
    functionLinenumberEnd: 2691
    functionName: doca_verbs_ah_attr_set_traffic_class
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_ah_attr_set_traffic_class(struct doca_verbs_ah_attr
      *verbs_ah,\n                                                  uint8_t traffic_class)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_ah
    argTypes:
    - struct doca_verbs_ah_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2693
    functionDepth: 1
    functionLinenumber: 2693
    functionLinenumberEnd: 2700
    functionName: doca_verbs_ah_get_traffic_class
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t doca_verbs_ah_get_traffic_class(const struct doca_verbs_ah_attr
      *verbs_ah)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2706,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2710,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2714,1
    - Dst: doca_verbs_qp::doca_verbs_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2719,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - context
    - verbs_qp_init_attr
    - verbs_qp
    argTypes:
    - struct ibv_context*
    - struct doca_verbs_qp_init_attr*
    - struct doca_verbs_qp**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2702
    functionDepth: 1
    functionLinenumber: 2702
    functionLinenumberEnd: 2727
    functionName: doca_verbs_qp_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - doca_verbs_qp::doca_verbs_qp
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_create(struct ibv_context *context,\n                                  struct
      doca_verbs_qp_init_attr *verbs_qp_init_attr,\n                                  struct
      doca_verbs_qp **verbs_qp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2731,1
    - Dst: struct doca_verbs_qp*::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2735,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - verbs_qp
    argTypes:
    - struct doca_verbs_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2729
    functionDepth: 1
    functionLinenumber: 2729
    functionLinenumberEnd: 2743
    functionName: doca_verbs_qp_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 2
    functionsReached:
    - struct doca_verbs_qp*::destroy
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_qp_destroy(struct doca_verbs_qp *verbs_qp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2748,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2752,1
    - Dst: struct doca_verbs_qp*::is_qp_attr_valid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2755,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2756,1
    - Dst: struct doca_verbs_qp*::get_current_state
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2763,1
    - Dst: struct doca_verbs_qp*::qp2rst
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2773,1
    - Dst: struct doca_verbs_qp*::rst2init
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2776,1
    - Dst: struct doca_verbs_qp*::init2init
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2778,1
    - Dst: struct doca_verbs_qp*::init2rtr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2783,1
    - Dst: struct doca_verbs_qp*::rtr2rts
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2788,1
    - Dst: struct doca_verbs_qp*::rts2rts
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2790,1
    - Dst: struct doca_verbs_qp*::qp2err
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2794,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2796,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2801,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 3
    argNames:
    - verbs_qp
    - verbs_qp_attr
    - attr_mask
    argTypes:
    - struct doca_verbs_qp*
    - struct doca_verbs_qp_attr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2745
    functionDepth: 1
    functionLinenumber: 2745
    functionLinenumberEnd: 2804
    functionName: doca_verbs_qp_modify
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - struct doca_verbs_qp*::qp2err
    - struct doca_verbs_qp*::is_qp_attr_valid
    - struct doca_verbs_qp*::qp2rst
    - struct doca_verbs_qp*::rts2rts
    - struct doca_verbs_qp*::init2rtr
    - struct doca_verbs_qp*::rst2init
    - struct doca_verbs_qp*::init2init
    - struct doca_verbs_qp*::get_current_state
    - struct doca_verbs_qp*::rtr2rts
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_modify(struct doca_verbs_qp *verbs_qp,\n
      \                                 struct doca_verbs_qp_attr *verbs_qp_attr,
      int attr_mask)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2810,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2814,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2818,1
    - Dst: struct doca_verbs_qp*::query_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - verbs_qp
    - verbs_qp_attr
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp*
    - struct doca_verbs_qp_attr*
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2806
    functionDepth: 1
    functionLinenumber: 2806
    functionLinenumberEnd: 2823
    functionName: doca_verbs_qp_query
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 2
    functionsReached:
    - struct doca_verbs_qp*::query_qp
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_query(struct doca_verbs_qp *verbs_qp,\n
      \                                struct doca_verbs_qp_attr *verbs_qp_attr,\n
      \                                struct doca_verbs_qp_init_attr *verbs_qp_init_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_qp*::get_qpn
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_qp
    argTypes:
    - struct doca_verbs_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2825
    functionDepth: 0
    functionLinenumber: 2825
    functionLinenumberEnd: 2825
    functionName: doca_verbs_qp_get_qpn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 3
    functionsReached:
    - struct doca_verbs_qp*::get_qpn
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_qp_get_qpn(const struct doca_verbs_qp *verbs_qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_qp*::get_dbr_addr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_qp
    argTypes:
    - struct doca_verbs_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2829
      start: 2827
    functionDepth: 0
    functionLinenumber: 2827
    functionLinenumberEnd: 2829
    functionName: doca_verbs_qp_get_dbr_addr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - struct doca_verbs_qp*::get_dbr_addr
    linkageType: ''
    returnType: void
    signature: void *doca_verbs_qp_get_dbr_addr(const struct doca_verbs_qp *verbs_qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_qp*::get_uar_addr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_qp
    argTypes:
    - struct doca_verbs_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2831
    functionDepth: 0
    functionLinenumber: 2831
    functionLinenumberEnd: 2833
    functionName: doca_verbs_qp_get_uar_addr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - struct doca_verbs_qp*::get_uar_addr
    linkageType: ''
    returnType: void
    signature: void *doca_verbs_qp_get_uar_addr(const struct doca_verbs_qp *verbs_qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_qp*::get_sq_buf
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2838,1
    - Dst: struct doca_verbs_qp*::get_rq_buf
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2839,1
    - Dst: struct doca_verbs_qp*::get_sq_size_wqebb
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2840,1
    - Dst: struct doca_verbs_qp*::get_rq_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2841,1
    - Dst: struct doca_verbs_qp*::get_rcv_wqe_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - verbs_qp
    - sq_buf
    - sq_num_entries
    - rq_buf
    - rq_num_entries
    - rwqe_size_bytes
    argTypes:
    - struct doca_verbs_qp*
    - void**
    - uint32_t*
    - void**
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2835
    functionDepth: 0
    functionLinenumber: 2835
    functionLinenumberEnd: 2843
    functionName: doca_verbs_qp_get_wq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 1
    functionsReached:
    - struct doca_verbs_qp*::get_rq_buf
    - struct doca_verbs_qp*::get_sq_size_wqebb
    - struct doca_verbs_qp*::get_rq_size
    - struct doca_verbs_qp*::get_sq_buf
    - struct doca_verbs_qp*::get_rcv_wqe_size
    linkageType: ''
    returnType: void
    signature: "void doca_verbs_qp_get_wq(const struct doca_verbs_qp *verbs_qp, void
      **sq_buf,\n                          uint32_t *sq_num_entries, void **rq_buf,
      uint32_t *rq_num_entries,\n                          uint32_t *rwqe_size_bytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2848,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_qp_init_attr
    - srq
    argTypes:
    - struct doca_verbs_qp_init_attr*
    - struct doca_verbs_srq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2845
    functionDepth: 1
    functionLinenumber: 2845
    functionLinenumberEnd: 2859
    functionName: doca_verbs_qp_init_attr_set_srq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_qp_init_attr_set_srq(struct doca_verbs_qp_init_attr
      *verbs_qp_init_attr,\n                                             struct doca_verbs_srq
      *srq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_qp_init_attr
    argTypes:
    - struct doca_verbs_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2861
    functionDepth: 1
    functionLinenumber: 2861
    functionLinenumberEnd: 2869
    functionName: doca_verbs_qp_init_attr_get_srq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: struct doca_verbs_srq
    signature: "struct doca_verbs_srq *doca_verbs_qp_init_attr_get_srq(\n    const
      struct doca_verbs_qp_init_attr *verbs_qp_init_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_qp*::get_send_dbr_mode
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_qp
    argTypes:
    - struct doca_verbs_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2871
    functionDepth: 0
    functionLinenumber: 2871
    functionLinenumberEnd: 2874
    functionName: doca_verbs_qp_get_send_dbr_mode
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_qp*::get_send_dbr_mode
    linkageType: ''
    returnType: enum doca_verbs_qp_send_dbr_mode
    signature: "enum doca_verbs_qp_send_dbr_mode doca_verbs_qp_get_send_dbr_mode(\n
      \   const struct doca_verbs_qp *verbs_qp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_qp*::get_emulate_no_dbr_ext
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp:2877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_qp
    argTypes:
    - struct doca_verbs_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2876
    functionDepth: 0
    functionLinenumber: 2876
    functionLinenumberEnd: 2878
    functionName: doca_verbs_qp_get_emulate_no_dbr_ext
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_qp*::get_emulate_no_dbr_ext
    linkageType: ''
    returnType: bool
    signature: bool doca_verbs_qp_get_emulate_no_dbr_ext(const struct doca_verbs_qp
      *verbs_qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - LOG_LEVEL
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: DOCA_LOG
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.hpp
    functionUses: 193
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOCA_LOG(LOG_LEVEL, fmt, ...)
  - 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: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: MAX
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:77,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:79,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:80,1
    - Dst: MLX5_ADDR_OF
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:82,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:87,1
    - Dst: doca_verbs_wrapper_mlx5dv_init_obj
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:91,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:93,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:97,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:100,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:101,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:104,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:105,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:109,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:110,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:111,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:113,1
    - Dst: DEVX_SET64
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:114,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:115,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:117,1
    - Dst: DEVX_SET64
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:118,1
    - Dst: DEVX_SET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:119,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:122,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:125,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:126,1
    - Dst: DEVX_GET
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 7
    argNames:
    - log_srq_size
    - log_stride
    - dbr_umem_offset
    - dbr_umem_id
    - wq_umem_offset
    - wq_umem_id
    - verbs_srq_init_attr
    argTypes:
    - uint32_t
    - uint32_t
    - uint64_t
    - uint32_t
    - uint64_t
    - uint32_t
    - struct doca_verbs_srq_init_attr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 133
    functionName: doca_verbs_srq::create_srq_obj
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - MLX5_ADDR_OF
    - doca_verbs_wrapper_mlx5dv_init_obj
    - doca_verbs_wrapper_mlx5dv_devx_obj_create
    - memset
    - DEVX_SET64
    - DEVX_GET
    - DEVX_SET
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_srq::create_srq_obj(\n    uint32_t log_srq_size,
      uint32_t log_stride, uint64_t dbr_umem_offset, uint32_t dbr_umem_id,\n    uint64_t
      wq_umem_offset, uint32_t wq_umem_id,\n    struct doca_verbs_srq_init_attr &verbs_srq_init_attr)
      noexcept"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_device_attr_free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:137,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:139,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_obj_destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:146,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:148,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_umem_dereg
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:155,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:157,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 169
    functionName: doca_verbs_srq::destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_wrapper_mlx5dv_devx_obj_destroy
    - doca_verbs_wrapper_mlx5dv_devx_umem_dereg
    - free
    - doca_verbs_device_attr_free
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_srq::destroy() noexcept
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_query_device
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:177,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:179,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:185,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:189,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:196,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:200,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:206,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:211,1
    - Dst: MAX
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:224,1
    - Dst: static_cast<uint32_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:224,1
    - Dst: doca_internal_utils_next_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:227,1
    - Dst: static_cast<uint8_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:237,1
    - Dst: doca_internal_utils_log2
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:237,1
    - Dst: static_cast<uint32_t>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:240,1
    - Dst: doca_internal_utils_next_power_of_two
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:241,1
    - Dst: doca_internal_utils_log2
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:245,1
    - Dst: doca_internal_utils_align_up_uint32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:256,1
    - Dst: doca_internal_utils_align_up_uint32
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:261,1
    - Dst: memalign
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:263,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:264,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_umem_reg
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:269,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:272,1
    - Dst: doca_verbs_umem_get_address
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:282,1
    - Dst: reinterpret_cast<void **>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:283,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:285,1
    - Dst: doca_verbs_umem_get_id
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:291,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:293,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:299,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:300,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:300,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:303,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:311,1
    - Dst: doca_verbs_srq::create_srq_obj
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:314,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:317,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 320
    functionName: doca_verbs_srq::create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - memalign
    - reinterpret_cast<uint32_t *>
    - doca_verbs_wrapper_mlx5dv_devx_umem_reg
    - doca_verbs_umem_get_id
    - doca_verbs_srq::create_srq_obj
    - reinterpret_cast<void **>
    - doca_internal_utils_log2
    - doca_verbs_query_device
    - doca_internal_utils_next_power_of_two
    - MAX
    - memset
    - doca_verbs_umem_get_address
    - static_cast<uint8_t>
    - reinterpret_cast<uint8_t *>
    - DOCA_LOG
    - doca_internal_utils_align_up_uint32
    linkageType: ''
    returnType: void
    signature: void doca_verbs_srq::create(struct ibv_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_srq::create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:326,1
    - Dst: doca_verbs_srq::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:328,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - verbs_srq_init_attr
    argTypes:
    - struct ibv_context*
    - struct doca_verbs_srq_init_attr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 332
    functionName: doca_verbs_srq::doca_verbs_srq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_srq::create
    - doca_verbs_srq::destroy
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: "void doca_verbs_srq::doca_verbs_srq(struct ibv_context *ctx,\n                               struct
      doca_verbs_srq_init_attr &verbs_srq_init_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:334,1
    - Dst: doca_verbs_srq::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 334
    functionName: doca_verbs_srq::~doca_verbs_srq()
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - doca_verbs_srq::destroy
    linkageType: ''
    returnType: void
    signature: void doca_verbs_srq::~doca_verbs_srq()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    functionName: doca_verbs_srq::get_srq_buf
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *doca_verbs_srq::get_srq_buf() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 338
    functionName: doca_verbs_srq::get_srq_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_srq::get_srq_size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 340
    functionName: doca_verbs_srq::get_rcv_wqe_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_srq::get_rcv_wqe_size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: doca_verbs_srq::get_dbr_addr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *doca_verbs_srq::get_dbr_addr() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 344
    functionName: doca_verbs_srq::get_srqn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_srq::get_srqn() const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:353,1
    - Dst: calloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:358,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - verbs_srq_init_attr
    argTypes:
    - struct doca_verbs_srq_init_attr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 365
    functionName: doca_verbs_srq_init_attr_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - calloc
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_srq_init_attr_create(\n    struct doca_verbs_srq_init_attr
      **verbs_srq_init_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:370,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - verbs_srq_init_attr
    argTypes:
    - struct doca_verbs_srq_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 378
    functionName: doca_verbs_srq_init_attr_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - free
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_srq_init_attr_destroy(\n    struct doca_verbs_srq_init_attr
      *verbs_srq_init_attr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:384,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:388,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:392,1
    - Dst: doca_verbs_srq::doca_verbs_srq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:397,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - context
    - verbs_srq_init_attr
    - verbs_srq
    argTypes:
    - struct ibv_context*
    - struct doca_verbs_srq_init_attr*
    - struct doca_verbs_srq**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 405
    functionName: doca_verbs_srq_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_srq::doca_verbs_srq
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_srq_create(struct ibv_context *context,\n
      \                                  struct doca_verbs_srq_init_attr *verbs_srq_init_attr,\n
      \                                  struct doca_verbs_srq **verbs_srq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:409,1
    - Dst: struct doca_verbs_srq*::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:413,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - verbs_srq
    argTypes:
    - struct doca_verbs_srq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 421
    functionName: doca_verbs_srq_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_srq*::destroy
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_srq_destroy(struct doca_verbs_srq *verbs_srq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:426,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_srq_init_attr
    - srq_wr
    argTypes:
    - struct doca_verbs_srq_init_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 437
    functionName: doca_verbs_srq_init_attr_set_srq_wr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_srq_init_attr_set_srq_wr(\n    struct doca_verbs_srq_init_attr
      *verbs_srq_init_attr, uint32_t srq_wr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_srq_init_attr
    argTypes:
    - struct doca_verbs_srq_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 447
    functionName: doca_verbs_srq_init_attr_get_srq_wr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_srq_init_attr_get_srq_wr(\n    const struct doca_verbs_srq_init_attr
      *verbs_srq_init_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:452,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_srq_init_attr
    - receive_max_sges
    argTypes:
    - struct doca_verbs_srq_init_attr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 463
    functionName: doca_verbs_srq_init_attr_set_receive_max_sges
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_srq_init_attr_set_receive_max_sges(\n    struct
      doca_verbs_srq_init_attr *verbs_srq_init_attr, uint32_t receive_max_sges)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_srq_init_attr
    argTypes:
    - struct doca_verbs_srq_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 473
    functionName: doca_verbs_srq_init_attr_get_receive_max_sges
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t doca_verbs_srq_init_attr_get_receive_max_sges(\n    const
      struct doca_verbs_srq_init_attr *verbs_srq_init_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:478,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - verbs_srq_init_attr
    - srq_type
    argTypes:
    - struct doca_verbs_srq_init_attr*
    - enum doca_verbs_srq_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 489
    functionName: doca_verbs_srq_init_attr_set_type
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_srq_init_attr_set_type(struct doca_verbs_srq_init_attr
      *verbs_srq_init_attr,\n                                               enum doca_verbs_srq_type
      srq_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_srq_init_attr
    argTypes:
    - struct doca_verbs_srq_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 499
    functionName: doca_verbs_srq_init_attr_get_type
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: enum doca_verbs_srq_type
    signature: "enum doca_verbs_srq_type doca_verbs_srq_init_attr_get_type(\n    const
      struct doca_verbs_srq_init_attr *verbs_srq_init_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:504,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - verbs_srq_init_attr
    - pd
    argTypes:
    - struct doca_verbs_srq_init_attr*
    - struct ibv_pd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 515
    functionName: doca_verbs_srq_init_attr_set_pd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_srq_init_attr_set_pd(struct doca_verbs_srq_init_attr
      *verbs_srq_init_attr,\n                                             struct ibv_pd
      *pd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - verbs_srq_init_attr
    argTypes:
    - struct doca_verbs_srq_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 525
    functionName: doca_verbs_srq_init_attr_get_pd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: struct ibv_pd
    signature: "struct ibv_pd *doca_verbs_srq_init_attr_get_pd(\n    const struct
      doca_verbs_srq_init_attr *verbs_srq_init_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:531,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - verbs_srq_init_attr
    - external_umem
    - external_umem_offset
    argTypes:
    - struct doca_verbs_srq_init_attr*
    - struct doca_verbs_umem*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 543
    functionName: doca_verbs_srq_init_attr_set_external_umem
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_srq_init_attr_set_external_umem(\n    struct
      doca_verbs_srq_init_attr *verbs_srq_init_attr, struct doca_verbs_umem *external_umem,\n
      \   uint64_t external_umem_offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:549,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:553,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - verbs_srq_init_attr
    - external_umem
    - external_umem_offset
    argTypes:
    - struct doca_verbs_srq_init_attr*
    - struct doca_verbs_umem**
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 565
    functionName: doca_verbs_srq_init_attr_get_external_umem
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_srq_init_attr_get_external_umem(\n    const
      struct doca_verbs_srq_init_attr *verbs_srq_init_attr,\n    struct doca_verbs_umem
      **external_umem, uint64_t *external_umem_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_srq*::get_srq_buf
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:569,1
    - Dst: struct doca_verbs_srq*::get_srq_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:570,1
    - Dst: struct doca_verbs_srq*::get_rcv_wqe_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - verbs_srq
    - srq_buf
    - srq_num_entries
    - rwqe_size_bytes
    argTypes:
    - struct doca_verbs_srq*
    - void**
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 572
    functionName: doca_verbs_srq_get_wq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_srq*::get_rcv_wqe_size
    - struct doca_verbs_srq*::get_srq_buf
    - struct doca_verbs_srq*::get_srq_size
    linkageType: ''
    returnType: void
    signature: "void doca_verbs_srq_get_wq(const struct doca_verbs_srq *verbs_srq,
      void **srq_buf,\n                           uint32_t *srq_num_entries, uint32_t
      *rwqe_size_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_srq*::get_dbr_addr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_srq
    argTypes:
    - struct doca_verbs_srq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 576
    functionName: doca_verbs_srq_get_dbr_addr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_srq*::get_dbr_addr
    linkageType: ''
    returnType: void
    signature: void *doca_verbs_srq_get_dbr_addr(const struct doca_verbs_srq *verbs_srq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct doca_verbs_srq*::get_srqn
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verbs_srq
    argTypes:
    - struct doca_verbs_srq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 580
    functionName: doca_verbs_srq_get_srqn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_srq*::get_srqn
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t doca_verbs_srq_get_srqn(const struct doca_verbs_srq *verbs_srq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_umem::create
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:64,1
    - Dst: doca_verbs_umem::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:66,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - ibv_ctx
    - address
    - size
    - access_flags
    - dmabuf_fd
    - dmabuf_offset
    argTypes:
    - struct ibv_context*
    - void*
    - size_t
    - uint32_t
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: doca_verbs_umem::doca_verbs_umem
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_umem::destroy
    - doca_verbs_umem::create
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: "void doca_verbs_umem::doca_verbs_umem(struct ibv_context *ibv_ctx,
      void *address, size_t size,\n                                 uint32_t access_flags,
      int dmabuf_fd, size_t dmabuf_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:72,1
    - Dst: doca_verbs_umem::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: doca_verbs_umem::~doca_verbs_umem()
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp
    functionUses: 0
    functionsReached:
    - doca_verbs_umem::destroy
    - static_cast<void>
    linkageType: ''
    returnType: void
    signature: void doca_verbs_umem::~doca_verbs_umem()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:80,1
    - Dst: reinterpret_cast<void *>
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:89,1
    - Dst: doca_verbs_wrapper_mlx5dv_devx_umem_reg_ex
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:93,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 103
    functionName: doca_verbs_umem::create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<void *>
    - doca_verbs_wrapper_mlx5dv_devx_umem_reg_ex
    - sysconf
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: void doca_verbs_umem::create()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doca_verbs_wrapper_mlx5dv_devx_umem_dereg
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:107,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: doca_verbs_umem::destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp
    functionUses: 2
    functionsReached:
    - DOCA_LOG
    - doca_verbs_wrapper_mlx5dv_devx_umem_dereg
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_umem::destroy() noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:126,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:130,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:134,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:138,1
    - Dst: doca_verbs_umem::doca_verbs_umem
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:144,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 7
    argNames:
    - context
    - address
    - size
    - access_flags
    - dmabuf_id
    - dmabuf_offset
    - umem_obj
    argTypes:
    - struct ibv_context*
    - void*
    - size_t
    - uint32_t
    - int
    - size_t
    - struct doca_verbs_umem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 150
    functionName: doca_verbs_umem_create
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp
    functionUses: 1
    functionsReached:
    - doca_verbs_umem::doca_verbs_umem
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_umem_create(struct ibv_context *context, void
      *address, size_t size,\n                                    uint32_t access_flags,
      int dmabuf_id, size_t dmabuf_offset,\n                                    struct
      doca_verbs_umem **umem_obj)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:154,1
    - Dst: struct doca_verbs_umem*::destroy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:158,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - umem_obj
    argTypes:
    - struct doca_verbs_umem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: doca_verbs_umem_destroy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp
    functionUses: 4
    functionsReached:
    - struct doca_verbs_umem*::destroy
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_umem_destroy(struct doca_verbs_umem *umem_obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:170,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:174,1
    - Dst: struct doca_verbs_umem*::get_umem_id
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - umem_obj
    - umem_id
    argTypes:
    - struct doca_verbs_umem*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 181
    functionName: doca_verbs_umem_get_id
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp
    functionUses: 3
    functionsReached:
    - struct doca_verbs_umem*::get_umem_id
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_umem_get_id(const struct doca_verbs_umem *umem_obj,
      uint32_t *umem_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:185,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:189,1
    - Dst: struct doca_verbs_umem*::get_umem_size
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - umem_obj
    - umem_size
    argTypes:
    - struct doca_verbs_umem*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 196
    functionName: doca_verbs_umem_get_size
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp
    functionUses: 0
    functionsReached:
    - struct doca_verbs_umem*::get_umem_size
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_umem_get_size(const struct doca_verbs_umem
      *umem_obj, size_t *umem_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:201,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:205,1
    - Dst: struct doca_verbs_umem*::get_umem_address
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - umem_obj
    - umem_address
    argTypes:
    - struct doca_verbs_umem*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 212
    functionName: doca_verbs_umem_get_address
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp
    functionUses: 3
    functionsReached:
    - struct doca_verbs_umem*::get_umem_address
    - DOCA_LOG
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_umem_get_address(const struct doca_verbs_umem
      *umem_obj,\n                                         void **umem_address)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: get_cqn
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_cqn() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: get_cq_buf
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *get_cq_buf() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: get_cq_num_entries
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_cq_num_entries() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: get_cq_uar_db_reg
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t *get_cq_uar_db_reg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: get_cq_ci_dbr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t *get_cq_ci_dbr() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: get_cq_arm_dbr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t *get_cq_arm_dbr() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: doca_verbs_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void doca_verbs_cq(doca_verbs_cq const &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: '&operator=(doca_verbs_cq const &)'
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: doca_verbs_cq
    signature: doca_verbs_cq &operator=(doca_verbs_cq const &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: TYPEOF
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPEOF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: TYPEOF
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPEOF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - handle
    - ','
    - symbol
    - ','
    - funcptr
    - ','
    - on_error_status
    - ','
    - on_error_out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM(handle, symbol, funcptr, on_error_status,
      on_error_out)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:94,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:96,1
    - Dst: malloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:101,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:104,1
    - Dst: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:109,1
    - Dst: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:110,1
    - Dst: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:111,1
    - Dst: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:112,1
    - Dst: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:113,1
    - Dst: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:114,1
    - Dst: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:115,1
    - Dst: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:117,1
    - Dst: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:119,1
    - Dst: DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:121,1
    - Dst: dlclose
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:130,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - ftable
    argTypes:
    - struct doca_gpu_gdrcopy_function_table**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 137
    functionName: doca_gpu_gdrcopy_ftable_init
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    functionUses: 0
    functionsReached:
    - dlopen
    - dlclose
    - free
    - malloc
    - DOCA_LOG
    - DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
    linkageType: ''
    returnType: int
    signature: int doca_gpu_gdrcopy_ftable_init(struct doca_gpu_gdrcopy_function_table
      **ftable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: doca_gpu_gdrcopy_ftable_init
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:143,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:145,1
    - Dst: open
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:150,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 160
    functionName: doca_gpu_init_gdrcopy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    functionUses: 0
    functionsReached:
    - open
    - DOCA_LOG
    - doca_gpu_gdrcopy_ftable_init
    linkageType: ''
    returnType: int
    signature: int doca_gpu_init_gdrcopy()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:163,1
    - Dst: atoi
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:164,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: doca_gpu_enable_gdrcopy
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    functionUses: 0
    functionsReached:
    - getenv
    - atoi
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool doca_gpu_enable_gdrcopy()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doca_gpu_enable_gdrcopy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:175,1
    - Dst: doca_gpu_init_gdrcopy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:176,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: doca_gpu_gdrcopy_is_supported
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    functionUses: 1
    functionsReached:
    - doca_gpu_init_gdrcopy
    - doca_gpu_enable_gdrcopy
    - DOCA_LOG
    linkageType: ''
    returnType: bool
    signature: bool doca_gpu_gdrcopy_is_supported()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: doca_gpu_init_gdrcopy
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:190,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:192,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:196,1
    - Dst: pin_buffer
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:198,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:201,1
    - Dst: map
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:206,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:208,1
    - Dst: unpin_buffer
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - dev_aligned_ptr
    - size
    - out_mh
    - out_host_ptr
    argTypes:
    - void*
    - size_t
    - gdr_mh_t*
    - void**
    assertStmts:
    - condition: (((uintptr_t)dev_aligned_ptr & (GPU_PAGE_SIZE - 1ULL)) == 0)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    constantsTouched: []
    func_position:
      end: 220
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 220
    functionName: priv_doca_gpu_gdrcopy_create_mapping
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    functionUses: 0
    functionsReached:
    - doca_gpu_init_gdrcopy
    - pin_buffer
    - assert
    - unpin_buffer
    - map
    - DOCA_LOG
    linkageType: ''
    returnType: int
    signature: "int priv_doca_gpu_gdrcopy_create_mapping(void *dev_aligned_ptr, size_t
      size,\n                                                gdr_mh_t *out_mh, void
      **out_host_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:226,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:228,1
    - Dst: priv_doca_gpu_gdrcopy_create_mapping
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:233,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:235,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - dev_aligned_ptr
    - size
    - out_mh
    - out_host_ptr
    argTypes:
    - void*
    - size_t
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 248
    functionName: doca_gpu_gdrcopy_create_mapping
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    functionUses: 2
    functionsReached:
    - priv_doca_gpu_gdrcopy_create_mapping
    - malloc
    - free
    - DOCA_LOG
    linkageType: ''
    returnType: int
    signature: "int doca_gpu_gdrcopy_create_mapping(void *dev_aligned_ptr, size_t
      size, void **out_mh,\n                                    void **out_host_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:251,1
    - Dst: unmap
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:252,1
    - Dst: unpin_buffer
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mh
    - host_ptr
    - size
    argTypes:
    - gdr_mh_t*
    - void*
    - size_t
    assertStmts:
    - condition: (doca_gpu_gdr)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: _doca_gpu_gdrcopy_destroy_mapping
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    functionUses: 0
    functionsReached:
    - unmap
    - unpin_buffer
    - assert
    linkageType: ''
    returnType: void
    signature: void _doca_gpu_gdrcopy_destroy_mapping(gdr_mh_t *mh, void *host_ptr,
      size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _doca_gpu_gdrcopy_destroy_mapping
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:258,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mh
    - host_ptr
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: doca_gpu_gdrcopy_destroy_mapping
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    functionUses: 2
    functionsReached:
    - free
    - _doca_gpu_gdrcopy_destroy_mapping
    linkageType: ''
    returnType: void
    signature: void doca_gpu_gdrcopy_destroy_mapping(void *mh, void *host_ptr, size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:59,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:61,1
    - Dst: dlerror
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - symbol_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: get_cuda_symbol
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
    functionUses: 0
    functionsReached:
    - dlerror
    - dlsym
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: void *get_cuda_symbol(const char *symbol_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:69,1
    - Dst: dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:71,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:74,1
    - Dst: dlerror
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:74,1
    - Dst: get_cuda_symbol
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:80,1
    - Dst: get_cuda_symbol
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:81,1
    - Dst: get_cuda_symbol
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:83,1
    - Dst: get_cuda_symbol
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:84,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:89,1
    - Dst: dlclose
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 97
    functionName: doca_verbs_wrapper_init_once
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
    functionUses: 0
    functionsReached:
    - dlopen
    - get_cuda_symbol
    - dlerror
    - dlclose
    - DOCA_LOG
    linkageType: ''
    returnType: void
    signature: void doca_verbs_wrapper_init_once(int *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: init_cuda_wrapper
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
    functionUses: 0
    functionsReached:
    - std::call_once
    linkageType: ''
    returnType: int
    signature: int init_cuda_wrapper(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_cuda_wrapper
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:108,1
    - Dst: p_cuDeviceGetAttribute
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pi
    - attrib
    - dev
    argTypes:
    - int*
    - CUdevice_attribute
    - CUdevice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: doca_verbs_wrapper_cuDeviceGetAttribute
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
    functionUses: 1
    functionsReached:
    - init_cuda_wrapper
    - p_cuDeviceGetAttribute
    linkageType: ''
    returnType: CUresult
    signature: CUresult doca_verbs_wrapper_cuDeviceGetAttribute(int *pi, CUdevice_attribute
      attrib, CUdevice dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_cuda_wrapper
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:114,1
    - Dst: p_cuPointerSetAttribute
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - value
    - attribute
    - ptr
    argTypes:
    - void*
    - CUpointer_attribute
    - CUdeviceptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: doca_verbs_wrapper_cuPointerSetAttribute
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
    functionUses: 1
    functionsReached:
    - init_cuda_wrapper
    - p_cuPointerSetAttribute
    linkageType: ''
    returnType: CUresult
    signature: "CUresult doca_verbs_wrapper_cuPointerSetAttribute(const void *value,
      CUpointer_attribute attribute,\n                                                  CUdeviceptr
      ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_cuda_wrapper
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:122,1
    - Dst: p_cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - pHandle
    - dptr
    - size
    - handleType
    - flags
    argTypes:
    - int*
    - CUdeviceptr
    - size_t
    - CUmemRangeHandleType
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: doca_verbs_wrapper_cuMemGetHandleForAddressRange
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
    functionUses: 1
    functionsReached:
    - p_cuMemGetHandleForAddressRange
    - init_cuda_wrapper
    linkageType: ''
    returnType: CUresult
    signature: "CUresult doca_verbs_wrapper_cuMemGetHandleForAddressRange(int *pHandle,
      CUdeviceptr dptr,\n                                                          size_t
      size,\n                                                          CUmemRangeHandleType
      handleType,\n                                                          unsigned
      long long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_cuda_wrapper
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:127,1
    - Dst: p_cuCtxGetCurrent
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pctx
    argTypes:
    - CUcontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: doca_verbs_wrapper_cuCtxGetCurrent
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
    functionUses: 0
    functionsReached:
    - p_cuCtxGetCurrent
    - init_cuda_wrapper
    linkageType: ''
    returnType: CUresult
    signature: CUresult doca_verbs_wrapper_cuCtxGetCurrent(CUcontext *pctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_get_device_list
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - num_devices
    - device_list
    argTypes:
    - int*
    - struct ibv_device***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: doca_verbs_wrapper_ibv_get_device_list
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_get_device_list
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_get_device_list(\n    int *num_devices,
      struct ibv_device ***device_list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_free_device_list
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct ibv_device**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: doca_verbs_wrapper_ibv_free_device_list
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_free_device_list
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_free_device_list(struct ibv_device
      **list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_get_device_name
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - device_name
    argTypes:
    - struct ibv_device*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: doca_verbs_wrapper_ibv_get_device_name
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_get_device_name
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_get_device_name(struct ibv_device
      *device,\n                                                                  const
      char **device_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_open_device
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - context
    argTypes:
    - struct ibv_device*
    - struct ibv_context**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: doca_verbs_wrapper_ibv_open_device
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_open_device
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_open_device(struct ibv_device
      *device,\n                                                              struct
      ibv_context **context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_close_device
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: doca_verbs_wrapper_ibv_close_device
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_close_device
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_close_device(struct ibv_context
      *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_alloc_pd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - context
    - pd
    argTypes:
    - struct ibv_context*
    - struct ibv_pd**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: doca_verbs_wrapper_ibv_alloc_pd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_alloc_pd
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_alloc_pd(struct ibv_context *context,\n
      \                                                          struct ibv_pd **pd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_dealloc_pd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pd
    argTypes:
    - struct ibv_pd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: doca_verbs_wrapper_ibv_dealloc_pd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_dealloc_pd
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_dealloc_pd(struct ibv_pd *pd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - pd
    - addr
    - length
    - access
    - mr
    argTypes:
    - struct ibv_pd*
    - void*
    - size_t
    - int
    - struct ibv_mr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: doca_verbs_wrapper_ibv_reg_mr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_reg_mr
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_reg_mr(struct ibv_pd *pd, void
      *addr,\n                                                         size_t length,
      int access,\n                                                         struct
      ibv_mr **mr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mr
    argTypes:
    - struct ibv_mr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: doca_verbs_wrapper_ibv_dereg_mr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_dereg_mr
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_dereg_mr(struct ibv_mr *mr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_query_device
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:364,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: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: doca_verbs_wrapper_ibv_query_device
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 1
    functionsReached:
    - ibv_query_device
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_query_device(\n    struct ibv_context
      *context, struct ibv_device_attr *device_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_query_port
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:371,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: 373
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 373
    functionName: doca_verbs_wrapper_ibv_query_port
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_query_port
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_query_port(struct ibv_context
      *context,\n                                                             uint8_t
      port_num,\n                                                             struct
      ibv_port_attr *port_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_query_gid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:378,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: 380
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: doca_verbs_wrapper_ibv_query_gid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_query_gid
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_query_gid(struct ibv_context *context,\n
      \                                                           uint8_t port_num,
      int index,\n                                                            union
      ibv_gid *gid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_create_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pd
    - attr
    - ah
    argTypes:
    - struct ibv_pd*
    - struct ibv_ah_attr*
    - struct ibv_ah**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 387
    functionName: doca_verbs_wrapper_ibv_create_ah
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 2
    functionsReached:
    - ibv_create_ah
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_create_ah(struct ibv_pd *pd,\n
      \                                                           struct ibv_ah_attr
      *attr,\n                                                            struct ibv_ah
      **ah)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_destroy_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ah
    argTypes:
    - struct ibv_ah*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: doca_verbs_wrapper_ibv_destroy_ah
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 2
    functionsReached:
    - ibv_destroy_ah
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_destroy_ah(struct ibv_ah *ah)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_create_cq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - context
    - cqe
    - cq_context
    - channel
    - comp_vector
    - cq
    argTypes:
    - struct ibv_context*
    - int
    - void*
    - struct ibv_comp_channel*
    - int
    - struct ibv_cq**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 400
    functionName: doca_verbs_wrapper_ibv_create_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_create_cq
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_create_cq(struct ibv_context *context,
      int cqe,\n                                                            void *cq_context,\n
      \                                                           struct ibv_comp_channel
      *channel,\n                                                            int comp_vector,
      struct ibv_cq **cq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_destroy_cq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cq
    argTypes:
    - struct ibv_cq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: doca_verbs_wrapper_ibv_destroy_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_destroy_cq
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_destroy_cq(struct ibv_cq *cq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_create_srq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pd
    - srq_init_attr
    - srq
    argTypes:
    - struct ibv_pd*
    - struct ibv_srq_init_attr*
    - struct ibv_srq**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: doca_verbs_wrapper_ibv_create_srq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_create_srq
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_create_srq(\n    struct ibv_pd
      *pd, struct ibv_srq_init_attr *srq_init_attr, struct ibv_srq **srq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_destroy_srq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srq
    argTypes:
    - struct ibv_srq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: doca_verbs_wrapper_ibv_destroy_srq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_destroy_srq
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_destroy_srq(struct ibv_srq *srq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_create_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pd
    - qp_init_attr
    - qp
    argTypes:
    - struct ibv_pd*
    - struct ibv_qp_init_attr*
    - struct ibv_qp**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 423
    functionName: doca_verbs_wrapper_ibv_create_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_create_qp
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_create_qp(struct ibv_pd *pd,\n
      \                                                           struct ibv_qp_init_attr
      *qp_init_attr,\n                                                            struct
      ibv_qp **qp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_destroy_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ibv_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: doca_verbs_wrapper_ibv_destroy_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_destroy_qp
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_destroy_qp(struct ibv_qp *qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_modify_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - qp
    - attr
    - attr_mask
    argTypes:
    - struct ibv_qp*
    - struct ibv_qp_attr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 435
    functionName: doca_verbs_wrapper_ibv_modify_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_modify_qp
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_modify_qp(struct ibv_qp *qp,\n
      \                                                           struct ibv_qp_attr
      *attr,\n                                                            int attr_mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_query_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h:440,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: 442
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: doca_verbs_wrapper_ibv_query_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    functionUses: 0
    functionsReached:
    - ibv_query_qp
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_query_qp(struct ibv_qp *qp,\n
      \                                                          struct ibv_qp_attr
      *attr, int attr_mask,\n                                                           struct
      ibv_qp_init_attr *init_attr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:121,1
    - Dst: dlopen
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:123,1
    - Dst: DOCA_LOG
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:126,1
    - Dst: dlerror
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:126,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:133,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:135,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:137,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:138,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:139,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:140,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:141,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:142,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:143,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:144,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:145,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:146,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:147,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:148,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:149,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:150,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:151,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:152,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:153,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:154,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:155,1
    - Dst: dlsym
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:156,1
    - Dst: fprintf
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:166,1
    - Dst: dlerror
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:166,1
    - Dst: dlclose
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:167,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 40
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 174
    functionName: doca_verbs_wrapper_init_once
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - dlopen
    - fprintf
    - dlerror
    - DOCA_LOG
    - dlclose
    - dlsym
    linkageType: ''
    returnType: void
    signature: void doca_verbs_wrapper_init_once(int *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: init_ibverbs_library
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - std::call_once
    linkageType: ''
    returnType: int
    signature: int init_ibverbs_library(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:187,1
    - Dst: real_ibv_get_device_list
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - num_devices
    - device_list
    argTypes:
    - int*
    - struct ibv_device***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: doca_verbs_wrapper_ibv_get_device_list
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_get_device_list
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_get_device_list(int *num_devices,\n
      \                                                   struct ibv_device ***device_list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: real_ibv_free_device_list
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct ibv_device**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: doca_verbs_wrapper_ibv_free_device_list
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_free_device_list
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_free_device_list(struct ibv_device
      **list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:204,1
    - Dst: real_ibv_get_device_name
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - device_name
    argTypes:
    - struct ibv_device*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: doca_verbs_wrapper_ibv_get_device_name
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_get_device_name
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_get_device_name(struct ibv_device
      *device,\n                                                    const char **device_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:213,1
    - Dst: real_ibv_open_device
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - context
    argTypes:
    - struct ibv_device*
    - struct ibv_context**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: doca_verbs_wrapper_ibv_open_device
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - init_ibverbs_library
    - real_ibv_open_device
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_open_device(struct ibv_device
      *device,\n                                                struct ibv_context
      **context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: real_ibv_close_device
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: doca_verbs_wrapper_ibv_close_device
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_close_device
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_close_device(struct ibv_context
      *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:229,1
    - Dst: real_ibv_alloc_pd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - context
    - pd
    argTypes:
    - struct ibv_context*
    - struct ibv_pd**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: doca_verbs_wrapper_ibv_alloc_pd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_alloc_pd
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_alloc_pd(struct ibv_context *context,
      struct ibv_pd **pd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: real_ibv_dealloc_pd
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pd
    argTypes:
    - struct ibv_pd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: doca_verbs_wrapper_ibv_dealloc_pd
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_dealloc_pd
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_dealloc_pd(struct ibv_pd *pd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:246,1
    - Dst: real_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - pd
    - addr
    - length
    - access
    - mr
    argTypes:
    - struct ibv_pd*
    - void*
    - size_t
    - int
    - struct ibv_mr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: doca_verbs_wrapper_ibv_reg_mr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_reg_mr
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_reg_mr(struct ibv_pd *pd, void
      *addr, size_t length, int access,\n                                           struct
      ibv_mr **mr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: real_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mr
    argTypes:
    - struct ibv_mr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: doca_verbs_wrapper_ibv_dereg_mr
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_dereg_mr
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_dereg_mr(struct ibv_mr *mr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:263,1
    - Dst: real_ibv_query_device
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - context
    - device_attr
    argTypes:
    - struct ibv_context*
    - struct ibv_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: doca_verbs_wrapper_ibv_query_device
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 1
    functionsReached:
    - real_ibv_query_device
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_query_device(struct ibv_context
      *context,\n                                                 struct ibv_device_attr
      *device_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:272,1
    - Dst: real_ibv_query_port
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:275,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: 277
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: doca_verbs_wrapper_ibv_query_port
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_query_port
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_query_port(struct ibv_context
      *context, uint8_t port_num,\n                                               struct
      ibv_port_attr *port_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:281,1
    - Dst: real_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - context
    - port_num
    - index
    - gid
    argTypes:
    - struct ibv_context*
    - uint8_t
    - int
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: doca_verbs_wrapper_ibv_query_gid
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_query_gid
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_query_gid(struct ibv_context *context,
      uint8_t port_num,\n                                              int index,
      union ibv_gid *gid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:290,1
    - Dst: real_ibv_create_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pd
    - attr
    - ah
    argTypes:
    - struct ibv_pd*
    - struct ibv_ah_attr*
    - struct ibv_ah**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 295
    functionName: doca_verbs_wrapper_ibv_create_ah
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 2
    functionsReached:
    - real_ibv_create_ah
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_create_ah(struct ibv_pd *pd, struct
      ibv_ah_attr *attr,\n                                              struct ibv_ah
      **ah)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: real_ibv_destroy_ah
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ah
    argTypes:
    - struct ibv_ah*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: doca_verbs_wrapper_ibv_destroy_ah
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 2
    functionsReached:
    - real_ibv_destroy_ah
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_destroy_ah(struct ibv_ah *ah)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:308,1
    - Dst: real_ibv_create_cq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - context
    - cqe
    - cq_context
    - channel
    - comp_vector
    - cq
    argTypes:
    - struct ibv_context*
    - int
    - void*
    - struct ibv_comp_channel*
    - int
    - struct ibv_cq**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: doca_verbs_wrapper_ibv_create_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_create_cq
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_create_cq(struct ibv_context *context,
      int cqe,\n                                              void *cq_context, struct
      ibv_comp_channel *channel,\n                                              int
      comp_vector, struct ibv_cq **cq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: real_ibv_destroy_cq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cq
    argTypes:
    - struct ibv_cq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: doca_verbs_wrapper_ibv_destroy_cq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_destroy_cq
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_destroy_cq(struct ibv_cq *cq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:326,1
    - Dst: real_ibv_create_srq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pd
    - srq_init_attr
    - srq
    argTypes:
    - struct ibv_pd*
    - struct ibv_srq_init_attr*
    - struct ibv_srq**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 331
    functionName: doca_verbs_wrapper_ibv_create_srq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - init_ibverbs_library
    - real_ibv_create_srq
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_create_srq(struct ibv_pd *pd,\n
      \                                              struct ibv_srq_init_attr *srq_init_attr,\n
      \                                              struct ibv_srq **srq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: real_ibv_destroy_srq
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - srq
    argTypes:
    - struct ibv_srq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: doca_verbs_wrapper_ibv_destroy_srq
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_destroy_srq
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_destroy_srq(struct ibv_srq *srq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:344,1
    - Dst: real_ibv_create_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pd
    - qp_init_attr
    - qp
    argTypes:
    - struct ibv_pd*
    - struct ibv_qp_init_attr*
    - struct ibv_qp**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 349
    functionName: doca_verbs_wrapper_ibv_create_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_create_qp
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_create_qp(struct ibv_pd *pd,\n
      \                                             struct ibv_qp_init_attr *qp_init_attr,\n
      \                                             struct ibv_qp **qp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: real_ibv_destroy_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ibv_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: doca_verbs_wrapper_ibv_destroy_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_destroy_qp
    linkageType: ''
    returnType: doca_error_t
    signature: doca_error_t doca_verbs_wrapper_ibv_destroy_qp(struct ibv_qp *qp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:361,1
    - Dst: real_ibv_modify_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - qp
    - attr
    - attr_mask
    argTypes:
    - struct ibv_qp*
    - struct ibv_qp_attr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 366
    functionName: doca_verbs_wrapper_ibv_modify_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_modify_qp
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_modify_qp(struct ibv_qp *qp, struct
      ibv_qp_attr *attr,\n                                              int attr_mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ibverbs_library
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:370,1
    - Dst: real_ibv_query_qp
      Src: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    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: 375
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 375
    functionName: doca_verbs_wrapper_ibv_query_qp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
    functionUses: 0
    functionsReached:
    - real_ibv_query_qp
    - init_ibverbs_library
    linkageType: ''
    returnType: doca_error_t
    signature: "doca_error_t doca_verbs_wrapper_ibv_query_qp(struct ibv_qp *qp, struct
      ibv_qp_attr *attr,\n                                             int attr_mask,
      struct ibv_qp_init_attr *init_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: __mlx5_nullp
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mlx5_nullp(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: __mlx5_st_sz_bits
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mlx5_st_sz_bits(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typ
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: __mlx5_bit_sz
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mlx5_bit_sz(typ, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typ
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: __mlx5_bit_off
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mlx5_bit_off(typ, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bit_off
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: __mlx5_dw_off
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mlx5_dw_off(bit_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bit_off
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: __mlx5_64_off
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mlx5_64_off(bit_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bit_sz
    - ','
    - bit_off
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: __mlx5_dw_bit_off
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mlx5_dw_bit_off(bit_sz, bit_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bit_sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: __mlx5_mask
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mlx5_mask(bit_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bit_sz
    - ','
    - bit_off
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: __mlx5_dw_mask
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mlx5_dw_mask(bit_sz, bit_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typ
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: MLX5_FLD_SZ_BITS
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MLX5_FLD_SZ_BITS(typ, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typ
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: MLX5_FLD_SZ_BYTES
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MLX5_FLD_SZ_BYTES(typ, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: MLX5_ST_SZ_BYTES
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MLX5_ST_SZ_BYTES(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: MLX5_ST_SZ_DW
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MLX5_ST_SZ_DW(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: MLX5_ST_SZ_QW
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MLX5_ST_SZ_QW(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: MLX5_UN_SZ_BYTES
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MLX5_UN_SZ_BYTES(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: MLX5_UN_SZ_DW
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MLX5_UN_SZ_DW(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typ
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: MLX5_BYTE_OFF
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MLX5_BYTE_OFF(typ, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - typ
    - ','
    - p
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: MLX5_ADDR_OF
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MLX5_ADDR_OF(typ, p, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: TYPEOF
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPEOF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: TYPEOF
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPEOF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: DOCA_GPUNETIO_VOLATILE
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOCA_GPUNETIO_VOLATILE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: DOCA_GPUNETIO_VERBS_ASSERT
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOCA_GPUNETIO_VERBS_ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: DOCA_GPUNETIO_VERBS_ASSERT
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOCA_GPUNETIO_VERBS_ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: ACCESS_ONCE
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACCESS_ONCE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: READ_ONCE
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_ONCE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: WRITE_ONCE
    functionSourceFile: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_ONCE(x, v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin.cc:61,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin.cc:62,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/gin.cc:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pluginLib
    argTypes:
    - ginPluginLib_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: ncclGinPluginUnload
    functionSourceFile: /src/nccl/src/plugin/gin.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclClosePluginLib
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinPluginUnload(ginPluginLib_t* pluginLib)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclOpenGinPluginLib
      Src: /src/nccl/src/plugin/gin.cc:79,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin.cc:96,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin.cc:102,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/gin.cc:102,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - pluginLib
    argTypes:
    - ginPluginLib_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 107
    functionName: ncclGinPluginLoad
    functionSourceFile: /src/nccl/src/plugin/gin.cc
    functionUses: 0
    functionsReached:
    - ncclOpenGinPluginLib
    - INFO
    - ncclClosePluginLib
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinPluginLoad(ginPluginLib_t* pluginLib)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ginPluginLib_t*::ncclGin::init
      Src: /src/nccl/src/plugin/gin.cc:113,1
    - Dst: ginPluginLib_t*::ncclGin::devices
      Src: /src/nccl/src/plugin/gin.cc:118,1
    - Dst: ginPluginLib_t*::ncclRma::init
      Src: /src/nccl/src/plugin/gin.cc:129,1
    - Dst: ginPluginLib_t*::ncclRma::devices
      Src: /src/nccl/src/plugin/gin.cc:134,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 2
    argNames:
    - comm
    - pluginLib
    argTypes:
    - struct ncclComm*
    - ginPluginLib_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 142
    functionName: ncclGinPluginInit
    functionSourceFile: /src/nccl/src/plugin/gin.cc
    functionUses: 0
    functionsReached:
    - ginPluginLib_t*::ncclRma::devices
    - ginPluginLib_t*::ncclRma::init
    - ginPluginLib_t*::ncclGin::init
    - ginPluginLib_t*::ncclGin::devices
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinPluginInit(struct ncclComm* comm, ginPluginLib_t*
      pluginLib)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin.cc:148,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin.cc:152,1
    - Dst: setLocalGinType
      Src: /src/nccl/src/plugin/gin.cc:152,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin.cc:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - comm
    - pluginIndex
    - isAssigned
    argTypes:
    - struct ncclComm*
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 161
    functionName: ncclGinPluginAssignToComm
    functionSourceFile: /src/nccl/src/plugin/gin.cc
    functionUses: 0
    functionsReached:
    - setLocalGinType
    - INFO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinPluginAssignToComm(struct ncclComm* comm, int pluginIndex,
      bool* isAssigned)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/plugin/gin.cc:170,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/gin.cc:170,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/gin.cc:170,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/gin.cc:170,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/gin.cc:174,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin.cc:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pluginIndex
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 178
    functionName: ncclGinPluginDisableOtherExternal
    functionSourceFile: /src/nccl/src/plugin/gin.cc
    functionUses: 0
    functionsReached:
    - INFO
    - snprintf
    - strlen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinPluginDisableOtherExternal(int pluginIndex)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/plugin/gin.cc:188,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/plugin/gin.cc:189,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin.cc:191,1
    - Dst: strcasecmp
      Src: /src/nccl/src/plugin/gin.cc:192,1
    - Dst: strdup
      Src: /src/nccl/src/plugin/gin.cc:194,1
    - Dst: strtok_r
      Src: /src/nccl/src/plugin/gin.cc:196,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin.cc:200,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/gin.cc:204,1
    - Dst: ncclParamGinPluginRefCount
      Src: /src/nccl/src/plugin/gin.cc:206,1
    - Dst: strcpy
      Src: /src/nccl/src/plugin/gin.cc:207,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin.cc:210,1
    - Dst: strtok_r
      Src: /src/nccl/src/plugin/gin.cc:212,1
    - Dst: free
      Src: /src/nccl/src/plugin/gin.cc:214,1
    - Dst: ncclParamGinPluginRefCount
      Src: /src/nccl/src/plugin/gin.cc:218,1
    - Dst: strcpy
      Src: /src/nccl/src/plugin/gin.cc:219,1
    - Dst: ncclGetNetPluginLib
      Src: /src/nccl/src/plugin/gin.cc:223,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 237
    functionName: initPluginLibsOnceFunc
    functionSourceFile: /src/nccl/src/plugin/gin.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - INFO
    - ncclGetNetPluginLib
    - strdup
    - strlen
    - free
    - strcasecmp
    - memset
    - strcpy
    - strtok_r
    - ncclParamGinPluginRefCount
    linkageType: ''
    returnType: void
    signature: void initPluginLibsOnceFunc()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin.cc:240,1
    - Dst: ncclRma::finalize
      Src: /src/nccl/src/plugin/gin.cc:240,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin.cc:241,1
    - Dst: ncclGin::finalize
      Src: /src/nccl/src/plugin/gin.cc:241,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin.cc:244,1
    - Dst: ncclGinPluginUnload
      Src: /src/nccl/src/plugin/gin.cc:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - comm
    - pluginIndex
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: ncclGinPluginFinalize
    functionSourceFile: /src/nccl/src/plugin/gin.cc
    functionUses: 0
    functionsReached:
    - ncclRma::finalize
    - ncclGinPluginUnload
    - ncclGin::finalize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinPluginFinalize(struct ncclComm* comm, int pluginIndex)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/plugin/gin.cc:251,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin.cc:255,1
    - Dst: ncclGinPluginLoad
      Src: /src/nccl/src/plugin/gin.cc:255,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin.cc:259,1
    - Dst: ncclGinPluginInit
      Src: /src/nccl/src/plugin/gin.cc:259,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin.cc:262,1
    - Dst: ncclGinPluginAssignToComm
      Src: /src/nccl/src/plugin/gin.cc:262,1
    - Dst: ncclGinPluginDisableOtherExternal
      Src: /src/nccl/src/plugin/gin.cc:265,1
    - Dst: ncclGinPluginFinalize
      Src: /src/nccl/src/plugin/gin.cc:269,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin.cc:274,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 276
    functionName: ncclGinInit
    functionSourceFile: /src/nccl/src/plugin/gin.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclGinPluginFinalize
    - ncclGinPluginInit
    - ncclGinPluginLoad
    - std::call_once
    - ncclGinPluginDisableOtherExternal
    - ncclGinPluginAssignToComm
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinInit(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - parent
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: ncclGinInitFromParent
    functionSourceFile: /src/nccl/src/plugin/gin.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinInitFromParent(struct ncclComm* comm, struct ncclComm*
      parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin.cc:288,1
    - Dst: ncclGinPluginFinalize
      Src: /src/nccl/src/plugin/gin.cc:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: ncclGinFinalize
    functionSourceFile: /src/nccl/src/plugin/gin.cc
    functionUses: 1
    functionsReached:
    - ncclGinPluginFinalize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinFinalize(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/plugin/gin.cc:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ginPluginIndex
    - nPhysDevs
    - nVirtDevs
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: ncclGinGetDevCount
    functionSourceFile: /src/nccl/src/plugin/gin.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinGetDevCount(int ginPluginIndex, int* nPhysDevs,
      int* nVirtDevs)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/plugin/profiler.cc:58,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler.cc:59,1
    - Dst: strcasecmp
      Src: /src/nccl/src/plugin/profiler.cc:60,1
    - Dst: ncclOpenProfilerPluginLib
      Src: /src/nccl/src/plugin/profiler.cc:63,1
    - Dst: ncclGetNetPluginLib
      Src: /src/nccl/src/plugin/profiler.cc:65,1
    - Dst: getNcclProfiler_v6
      Src: /src/nccl/src/plugin/profiler.cc:74,1
    - Dst: getNcclProfiler_v5
      Src: /src/nccl/src/plugin/profiler.cc:76,1
    - Dst: getNcclProfiler_v4
      Src: /src/nccl/src/plugin/profiler.cc:79,1
    - Dst: getNcclProfiler_v3
      Src: /src/nccl/src/plugin/profiler.cc:82,1
    - Dst: getNcclProfiler_v2
      Src: /src/nccl/src/plugin/profiler.cc:85,1
    - Dst: getNcclProfiler_v1
      Src: /src/nccl/src/plugin/profiler.cc:88,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler.cc:91,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler.cc:94,1
    - Dst: ncclOsGetPid
      Src: /src/nccl/src/plugin/profiler.cc:103,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/profiler.cc:108,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/profiler.cc:108,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 112
    functionName: ncclProfilerPluginLoad
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached:
    - getNcclProfiler_v2
    - ncclGetEnv
    - getNcclProfiler_v6
    - INFO
    - ncclClosePluginLib
    - ncclGetNetPluginLib
    - NCCLCHECK
    - ncclOpenProfilerPluginLib
    - getNcclProfiler_v3
    - getNcclProfiler_v1
    - strcasecmp
    - getNcclProfiler_v4
    - ncclOsGetPid
    - getNcclProfiler_v5
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerPluginLoad(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:117,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler.cc:118,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/profiler.cc:120,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/profiler.cc:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: ncclProfilerPluginUnload
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclClosePluginLib
    - COMPILER_EXPECT
    - 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: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    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: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    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: 185
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 185
    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: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    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: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    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: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: TIME_PRINT_EVENTS
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_PRINT_EVENTS(name)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:200,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:201,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:202,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:203,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:204,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:205,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:206,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:207,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:208,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:209,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:210,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:211,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:212,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:213,1
    - Dst: sprintf
      Src: /src/nccl/src/plugin/profiler.cc:214,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler.cc:215,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - mask
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 216
    functionName: printProfilerEventMask
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached:
    - INFO
    - sprintf
    linkageType: ''
    returnType: void
    signature: void printProfilerEventMask(int mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:219,1
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:220,1
    - Dst: ncclProfilerPluginLoad
      Src: /src/nccl/src/plugin/profiler.cc:221,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:222,1
    - Dst: init
      Src: /src/nccl/src/plugin/profiler.cc:223,1
    - Dst: ncclProfilerPluginUnload
      Src: /src/nccl/src/plugin/profiler.cc:225,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler.cc:226,1
    - Dst: strerror
      Src: /src/nccl/src/plugin/profiler.cc:226,1
    - Dst: printProfilerEventMask
      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: 13
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: ncclProfilerPluginInit
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - TIME_START_EVENT
    - init
    - INFO
    - printProfilerEventMask
    - ncclProfilerPluginUnload
    - ncclProfilerPluginLoad
    - strerror
    - TIME_STOP_EVENT
    - COMPILER_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:236,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:237,1
    - Dst: finalize
      Src: /src/nccl/src/plugin/profiler.cc:238,1
    - Dst: ncclProfilerPluginUnload
      Src: /src/nccl/src/plugin/profiler.cc:240,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:241,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:242,1
    - Dst: TIME_PRINT_EVENTS
      Src: /src/nccl/src/plugin/profiler.cc:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 245
    functionName: ncclProfilerPluginFinalize
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - TIME_START_EVENT
    - ncclProfilerPluginUnload
    - TIME_STOP_EVENT
    - TIME_PRINT_EVENTS
    - finalize
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerPluginFinalize(struct ncclComm* comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/plugin/profiler.cc:252,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:256,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - info
    - isGraphCaptured
    argTypes:
    - struct ncclInfo*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 265
    functionName: ncclProfilerStartGroupApiEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 3
    functionsReached:
    - COMPILER_ATOMIC_LOAD
    - COMPILER_EXPECT
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartGroupApiEvent(struct ncclInfo* info,
      bool isGraphCaptured)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:269,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: ncclProfilerStopGroupApiEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - stopEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopGroupApiEvent()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:287,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:288,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - eState
    argTypes:
    - ncclProfilerEventState_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: ncclProfilerRecordGroupApiEventState
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 4
    functionsReached:
    - recordEventState
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerRecordGroupApiEventState(ncclProfilerEventState_t
      eState)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclFuncToString
      Src: /src/nccl/src/plugin/profiler.cc:297,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/plugin/profiler.cc:299,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:303,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:304,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler.cc:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - info
    - isGraphCaptured
    argTypes:
    - struct ncclInfo*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 310
    functionName: ncclProfilerStartP2pApiEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclFuncToString
    - ncclDatatypeToString
    - startEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartP2pApiEvent(struct ncclInfo *info, bool
      isGraphCaptured)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:313,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 318
    functionName: ncclProfilerStopP2pApiEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - stopEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopP2pApiEvent()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclFuncToString
      Src: /src/nccl/src/plugin/profiler.cc:324,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/plugin/profiler.cc:326,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:331,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:332,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler.cc:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - info
    - isGraphCaptured
    argTypes:
    - struct ncclInfo*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 338
    functionName: ncclProfilerStartCollApiEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - INFO
    - ncclFuncToString
    - ncclDatatypeToString
    - startEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartCollApiEvent(struct ncclInfo *info, bool
      isGraphCaptured)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:341,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 345
    functionName: ncclProfilerStopCollApiEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - stopEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopCollApiEvent()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:349,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:352,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:353,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:378,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - plan
    - stream
    argTypes:
    - struct ncclKernelPlan*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 382
    functionName: ncclProfilerStartKernelLaunchEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - startEvent
    - COMPILER_EXPECT
    - ncclIntruQueueHead
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartKernelLaunchEvent(struct ncclKernelPlan*
      plan, cudaStream_t stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:385,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 389
    functionName: ncclProfilerStopKernelLaunchEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - stopEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopKernelLaunchEvent(struct ncclKernelPlan*
      plan)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:392,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:393,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:395,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:396,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:418,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:421,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 423
    functionName: ncclProfilerStartGroupEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - TIME_START_EVENT
    - ncclIntruQueueHead
    - TIME_STOP_EVENT
    - startEvent
    - COMPILER_EXPECT
    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:426,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:427,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:428,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 432
    functionName: ncclProfilerStopGroupEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - stopEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopGroupEvent(struct ncclKernelPlan* plan)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:435,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:436,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:438,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/plugin/profiler.cc:447,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/plugin/profiler.cc:452,1
    - Dst: ncclAlgoToString
      Src: /src/nccl/src/plugin/profiler.cc:455,1
    - Dst: ncclProtoToString
      Src: /src/nccl/src/plugin/profiler.cc:456,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:457,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:466,1
    - Dst: COMPILER_ATOMIC_FETCH_ADD
      Src: /src/nccl/src/plugin/profiler.cc:468,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:471,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:472,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/plugin/profiler.cc:481,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/plugin/profiler.cc:484,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:487,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:492,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 494
    functionName: ncclProfilerStartTaskEvents
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - TIME_START_EVENT
    - startEvent
    - COMPILER_ATOMIC_FETCH_ADD
    - ncclFuncToString
    - ncclAlgoToString
    - ncclProtoToString
    - ncclDatatypeToString
    - TIME_STOP_EVENT
    - ncclIntruQueueHead
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartTaskEvents(struct ncclKernelPlan* plan)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:497,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:498,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:499,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:501,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:504,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:506,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 512
    functionName: ncclProfilerStopTaskEvents
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - TIME_START_EVENT
    - TIME_STOP_EVENT
    - ncclIntruQueueHead
    - stopEvent
    - COMPILER_EXPECT
    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:520,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:522,1
    - Dst: DIVUP
      Src: /src/nccl/src/plugin/profiler.cc:531,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:534,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - int
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 539
    functionName: ncclProfilerStartProxyOpEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - TIME_START_EVENT
    - TIME_STOP_EVENT
    - DIVUP
    - startEvent
    - COMPILER_EXPECT
    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:542,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:544,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:545,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - int
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 550
    functionName: ncclProfilerStopProxyOpEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - stopEvent
    - COMPILER_EXPECT
    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:553,1
    - Dst: DIVUP
      Src: /src/nccl/src/plugin/profiler.cc:555,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:556,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:563,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - s
    - args
    - stepId
    argTypes:
    - int
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 569
    functionName: ncclProfilerStartSendProxyStepEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - TIME_START_EVENT
    - TIME_STOP_EVENT
    - DIVUP
    - startEvent
    - COMPILER_EXPECT
    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:572,1
    - Dst: DIVUP
      Src: /src/nccl/src/plugin/profiler.cc:574,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:575,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:582,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - s
    - args
    - stepId
    argTypes:
    - int
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 588
    functionName: ncclProfilerStartRecvProxyStepEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - TIME_START_EVENT
    - TIME_STOP_EVENT
    - DIVUP
    - startEvent
    - COMPILER_EXPECT
    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:591,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:593,1
    - Dst: DIVUP
      Src: /src/nccl/src/plugin/profiler.cc:594,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:596,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - s
    - args
    - stepId
    argTypes:
    - int
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 602
    functionName: ncclProfilerStopProxyStepEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - TIME_START_EVENT
    - TIME_STOP_EVENT
    - DIVUP
    - stopEvent
    - COMPILER_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:605,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:606,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/plugin/profiler.cc:608,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:612,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:613,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - profilerContext
    - eHandle
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 620
    functionName: ncclProfilerStartProxyCtrlEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - TIME_START_EVENT
    - TIME_STOP_EVENT
    - COMPILER_ATOMIC_LOAD
    - startEvent
    - COMPILER_EXPECT
    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:623,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:624,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:625,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - eHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 629
    functionName: ncclProfilerStopProxyCtrlEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - stopEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopProxyCtrlEvent(void* eHandle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:632,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - args
    - s
    - start
    argTypes:
    - struct ncclProxyArgs*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 644
    functionName: ncclProfilerStartKernelChEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - COMPILER_EXPECT
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartKernelChEvent(struct ncclProxyArgs* args,
      int s, uint64_t start)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:647,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:652,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - args
    - s
    - stop
    argTypes:
    - struct ncclProxyArgs*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 657
    functionName: ncclProfilerStopKernelChEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - recordEventState
    - stopEvent
    - COMPILER_EXPECT
    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:660,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:662,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:664,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - args
    - eState
    argTypes:
    - int
    - struct ncclProxyArgs*
    - ncclProfilerEventState_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 668
    functionName: ncclProfilerRecordProxyOpEventState
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - recordEventState
    - TIME_START_EVENT
    - COMPILER_EXPECT
    - TIME_STOP_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:671,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:673,1
    - Dst: DIVUP
      Src: /src/nccl/src/plugin/profiler.cc:674,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:678,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:681,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: 683
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 683
    functionName: ncclProfilerRecordProxyStepEventState
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - TIME_START_EVENT
    - TIME_STOP_EVENT
    - recordEventState
    - DIVUP
    - COMPILER_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:686,1
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:687,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/plugin/profiler.cc:687,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:690,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - eHandle
    - appended
    - eState
    argTypes:
    - void*
    - int
    - ncclProfilerEventState_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 694
    functionName: ncclProfilerRecordProxyCtrlEventState
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - TIME_START_EVENT
    - TIME_STOP_EVENT
    - recordEventState
    - COMPILER_ATOMIC_LOAD
    - COMPILER_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: 699
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 699
    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: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/profiler.cc:708,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/plugin/profiler.cc:708,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/profiler.cc:709,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/plugin/profiler.cc:709,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/profiler.cc:710,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/plugin/profiler.cc:710,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/profiler.cc:711,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/plugin/profiler.cc:711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - comm
    - op
    argTypes:
    - struct ncclComm*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 703
    functionDepth: 4
    functionLinenumber: 703
    functionLinenumberEnd: 716
    functionName: proxyProfilerConnect
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - NCCLCHECKGOTO
    - ncclProxyConnect
    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:719,1
    - Dst: proxyProfilerConnect
      Src: /src/nccl/src/plugin/profiler.cc:720,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - op
    argTypes:
    - struct ncclComm*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 718
    functionDepth: 5
    functionLinenumber: 718
    functionLinenumberEnd: 722
    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: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 726
    functionName: ncclProfilerPluginLoaded
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 4
    functionsReached:
    - COMPILER_EXPECT
    linkageType: ''
    returnType: bool
    signature: bool ncclProfilerPluginLoaded(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:729,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:740,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:743,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:747,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:751,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:752,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: 756
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 756
    functionName: ncclProfilerCallback
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached:
    - recordEventState
    - stopEvent
    - COMPILER_EXPECT
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerCallback(void** eHandle, int type, void* pHandle,
      int64_t pluginId, void* extData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:766,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/plugin/profiler.cc:769,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/plugin/profiler.cc:776,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/plugin/profiler.cc:781,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - comm
    - args
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 794
    functionName: ncclProfilerStartCeCollEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - ncclFuncToString
    - ncclDatatypeToString
    - __atomic_load_n
    - startEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartCeCollEvent(struct ncclComm* comm, struct
      ncclCeCollArgs* args, cudaStream_t stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:800,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - comm
    - args
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 806
    functionName: ncclProfilerStopCeCollEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - stopEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopCeCollEvent(struct ncclComm* comm, struct
      ncclCeCollArgs* args, cudaStream_t stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:813,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/plugin/profiler.cc:814,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:824,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - comm
    - args
    - stream
    - ceSyncHandle
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - cudaStream_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 828
    functionName: ncclProfilerStartCeSyncEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - __atomic_load_n
    - COMPILER_EXPECT
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclProfilerStartCeSyncEvent(struct ncclComm* comm, struct
      ncclCeCollArgs* args,\n                                          cudaStream_t
      stream, void** ceSyncHandle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:835,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - comm
    - ceSyncHandle
    - stream
    argTypes:
    - struct ncclComm*
    - void*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 839
    functionName: ncclProfilerStopCeSyncEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - stopEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclProfilerStopCeSyncEvent(struct ncclComm* comm, void*
      ceSyncHandle,\n                                         cudaStream_t stream)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:849,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/plugin/profiler.cc:852,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:867,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - comm
    - args
    - params
    - stream
    - ceBatchHandle
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - struct ncclCeBatchOpsParams*
    - cudaStream_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 872
    functionName: ncclProfilerStartCeBatchEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - __atomic_load_n
    - COMPILER_EXPECT
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclProfilerStartCeBatchEvent(struct ncclComm* comm,\n
      \                                          struct ncclCeCollArgs* args,\n                                           struct
      ncclCeBatchOpsParams* params,\n                                           cudaStream_t
      stream,\n                                           void** ceBatchHandle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_EXPECT
      Src: /src/nccl/src/plugin/profiler.cc:878,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - comm
    - ceBatchHandle
    - stream
    argTypes:
    - struct ncclComm*
    - void*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 882
    functionName: ncclProfilerStopCeBatchEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - stopEvent
    - COMPILER_EXPECT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopCeBatchEvent(struct ncclComm* comm, void*
      ceBatchHandle, cudaStream_t stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:29,1
    - Dst: strncasecmp
      Src: /src/nccl/src/plugin/plugin_open.cc:33,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:33,1
    - Dst: ncclOsDlopen
      Src: /src/nccl/src/plugin/plugin_open.cc:37,1
    - Dst: ncclOsDlerror
      Src: /src/nccl/src/plugin/plugin_open.cc:39,1
    - Dst: strncpy
      Src: /src/nccl/src/plugin/plugin_open.cc:41,1
    - Dst: strstr
      Src: /src/nccl/src/plugin/plugin_open.cc:48,1
    - Dst: strstr
      Src: /src/nccl/src/plugin/plugin_open.cc:48,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - name
    - err
    - errStr
    argTypes:
    - char*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: tryOpenLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlerror
    - ncclOsDlopen
    - strncasecmp
    - strlen
    - strstr
    - strncpy
    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:56,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nameList
    - leftChars
    - name
    argTypes:
    - char*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: appendNameToList
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void appendNameToList(char* nameList, int *leftChars, char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlinfo
      Src: /src/nccl/src/plugin/plugin_open.cc:63,1
    - Dst: strdup
      Src: /src/nccl/src/plugin/plugin_open.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: getLibPath
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - dlinfo
    - strdup
    linkageType: ''
    returnType: char
    signature: char * getLibPath(void* handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleFileNameA
      Src: /src/nccl/src/plugin/plugin_open.cc:71,1
    - Dst: strdup
      Src: /src/nccl/src/plugin/plugin_open.cc:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: getLibPath
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - GetModuleFileNameA
    - strdup
    linkageType: ''
    returnType: char
    signature: char * getLibPath(void* handle)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:84,1
    - Dst: snprintf
      Src: /src/nccl/src/plugin/plugin_open.cc:85,1
    - Dst: snprintf
      Src: /src/nccl/src/plugin/plugin_open.cc:87,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: getLibPath
      Src: /src/nccl/src/plugin/plugin_open.cc:93,1
    - Dst: appendNameToList
      Src: /src/nccl/src/plugin/plugin_open.cc:97,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/plugin_open.cc:99,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:103,1
    - Dst: strchr
      Src: /src/nccl/src/plugin/plugin_open.cc:103,1
    - Dst: strncmp
      Src: /src/nccl/src/plugin/plugin_open.cc:104,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:104,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:104,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:104,1
    - Dst: strncmp
      Src: /src/nccl/src/plugin/plugin_open.cc:105,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:105,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:105,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:105,1
    - Dst: snprintf
      Src: /src/nccl/src/plugin/plugin_open.cc:106,1
    - Dst: tryOpenLib
      Src: /src/nccl/src/plugin/plugin_open.cc:108,1
    - Dst: strdup
      Src: /src/nccl/src/plugin/plugin_open.cc:110,1
    - Dst: getLibPath
      Src: /src/nccl/src/plugin/plugin_open.cc:111,1
    - Dst: appendNameToList
      Src: /src/nccl/src/plugin/plugin_open.cc:115,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/plugin_open.cc:117,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:121,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/plugin_open.cc:122,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:123,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:124,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/plugin_open.cc:125,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - type
    - libName
    argTypes:
    - enum ncclPluginType
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 128
    functionName: openPluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - appendNameToList
    - INFO
    - tryOpenLib
    - getLibPath
    - strchr
    - strncmp
    - strdup
    - strlen
    - 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:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 132
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: ncclOpenGinPluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 1
    functionsReached:
    - openPluginLib
    linkageType: ''
    returnType: void
    signature: void * ncclOpenGinPluginLib(const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openPluginLib
      Src: /src/nccl/src/plugin/plugin_open.cc:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 140
    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:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: ncclOpenProfilerPluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 1
    functionsReached:
    - openPluginLib
    linkageType: ''
    returnType: void
    signature: void * ncclOpenProfilerPluginLib(const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openPluginLib
      Src: /src/nccl/src/plugin/plugin_open.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: ncclOpenEnvPluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - openPluginLib
    linkageType: ''
    returnType: void
    signature: void * ncclOpenEnvPluginLib(const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/nccl/src/plugin/plugin_open.cc:153,1
    - Dst: strdup
      Src: /src/nccl/src/plugin/plugin_open.cc:154,1
    - Dst: ncclOsDlopen
      Src: /src/nccl/src/plugin/plugin_open.cc:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum ncclPluginType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: ncclGetNetPluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 2
    functionsReached:
    - strdup
    - ncclOsDlopen
    linkageType: ''
    returnType: void
    signature: void * ncclGetNetPluginLib(enum ncclPluginType type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlclose
      Src: /src/nccl/src/plugin/plugin_open.cc:162,1
    - Dst: free
      Src: /src/nccl/src/plugin/plugin_open.cc:164,1
    - Dst: free
      Src: /src/nccl/src/plugin/plugin_open.cc:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - type
    argTypes:
    - void*
    - enum ncclPluginType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: ncclClosePluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 4
    functionsReached:
    - free
    - ncclOsDlclose
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclClosePluginLib(void* handle, enum ncclPluginType type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/nccl/src/plugin/env.cc:41,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/env.cc:42,1
    - Dst: strcasecmp
      Src: /src/nccl/src/plugin/env.cc:43,1
    - Dst: ncclOpenEnvPluginLib
      Src: /src/nccl/src/plugin/env.cc:47,1
    - Dst: getNcclEnv_v1
      Src: /src/nccl/src/plugin/env.cc:54,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/env.cc:56,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/env.cc:59,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/env.cc:67,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/env.cc:67,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 71
    functionName: ncclEnvPluginLoad
    functionSourceFile: /src/nccl/src/plugin/env.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclClosePluginLib
    - NCCLCHECK
    - ncclOpenEnvPluginLib
    - strcasecmp
    - std::getenv
    - getNcclEnv_v1
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclEnvPluginLoad(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/plugin/env.cc:75,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/env.cc:81,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/env.cc:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: ncclEnvPluginUnload
    functionSourceFile: /src/nccl/src/plugin/env.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclClosePluginLib
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclEnvPluginUnload(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initEnv
      Src: /src/nccl/src/plugin/env.cc:90,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/env.cc:91,1
    - Dst: ncclEnvPluginLoad
      Src: /src/nccl/src/plugin/env.cc:91,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/env.cc:93,1
    - Dst: init
      Src: /src/nccl/src/plugin/env.cc:93,1
    - Dst: atexit
      Src: /src/nccl/src/plugin/env.cc:94,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/plugin/env.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: ncclEnvPluginInit
    functionSourceFile: /src/nccl/src/plugin/env.cc
    functionUses: 1
    functionsReached:
    - init
    - COMPILER_ATOMIC_STORE
    - ncclEnvPluginLoad
    - atexit
    - initEnv
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclEnvPluginInit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finalize
      Src: /src/nccl/src/plugin/env.cc:101,1
    - Dst: ncclEnvPluginUnload
      Src: /src/nccl/src/plugin/env.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: ncclEnvPluginFinalize
    functionSourceFile: /src/nccl/src/plugin/env.cc
    functionUses: 0
    functionsReached:
    - ncclEnvPluginUnload
    - finalize
    linkageType: ''
    returnType: void
    signature: void ncclEnvPluginFinalize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEnv
      Src: /src/nccl/src/plugin/env.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: ncclEnvPluginGetEnv
    functionSourceFile: /src/nccl/src/plugin/env.cc
    functionUses: 0
    functionsReached:
    - getEnv
    linkageType: ''
    returnType: char
    signature: char * ncclEnvPluginGetEnv(const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/plugin/env.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: ncclEnvPluginInitialized
    functionSourceFile: /src/nccl/src/plugin/env.cc
    functionUses: 1
    functionsReached:
    - COMPILER_ATOMIC_LOAD
    linkageType: ''
    returnType: bool
    signature: bool ncclEnvPluginInitialized(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/plugin/tuner.cc:58,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner.cc:59,1
    - Dst: strcasecmp
      Src: /src/nccl/src/plugin/tuner.cc:60,1
    - Dst: ncclOpenTunerPluginLib
      Src: /src/nccl/src/plugin/tuner.cc:63,1
    - Dst: ncclGetNetPluginLib
      Src: /src/nccl/src/plugin/tuner.cc:65,1
    - Dst: getNcclTuner_v6
      Src: /src/nccl/src/plugin/tuner.cc:74,1
    - Dst: getNcclTuner_v5
      Src: /src/nccl/src/plugin/tuner.cc:76,1
    - Dst: getNcclTuner_v4
      Src: /src/nccl/src/plugin/tuner.cc:79,1
    - Dst: getNcclTuner_v3
      Src: /src/nccl/src/plugin/tuner.cc:82,1
    - Dst: getNcclTuner_v2
      Src: /src/nccl/src/plugin/tuner.cc:85,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner.cc:88,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner.cc:91,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner.cc:101,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/tuner.cc:101,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 105
    functionName: ncclTunerPluginLoad
    functionSourceFile: /src/nccl/src/plugin/tuner.cc
    functionUses: 1
    functionsReached:
    - ncclGetEnv
    - INFO
    - ncclClosePluginLib
    - ncclGetNetPluginLib
    - getNcclTuner_v4
    - getNcclTuner_v3
    - strcasecmp
    - getNcclTuner_v2
    - ncclOpenTunerPluginLib
    - getNcclTuner_v6
    - getNcclTuner_v5
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTunerPluginLoad(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner.cc:110,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner.cc:111,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/tuner.cc:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: ncclTunerPluginUnload
    functionSourceFile: /src/nccl/src/plugin/tuner.cc
    functionUses: 1
    functionsReached:
    - INFO
    - 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:77,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:78,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/net.cc:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - pluginLib
    argTypes:
    - netPluginLib_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 92
    functionName: ncclNetPluginUnload
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclClosePluginLib
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetPluginUnload(netPluginLib_t* pluginLib)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclOpenNetPluginLib
      Src: /src/nccl/src/plugin/net.cc:95,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:107,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:125,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:131,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/net.cc:131,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - pluginLib
    argTypes:
    - netPluginLib_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 137
    functionName: ncclNetPluginLoad
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclClosePluginLib
    - ncclOpenNetPluginLib
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetPluginLoad(netPluginLib_t* pluginLib)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:142,1
    - Dst: ncclNet_t*::getProperties
      Src: /src/nccl/src/plugin/net.cc:142,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:147,1
    - Dst: WARN
      Src: /src/nccl/src/plugin/net.cc:151,1
    - Dst: WARN
      Src: /src/nccl/src/plugin/net.cc:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - comm
    - net
    - dev
    argTypes:
    - struct ncclComm*
    - ncclNet_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 161
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: netPluginLib_t*::ncclNet::init
      Src: /src/nccl/src/plugin/net.cc:170,1
    - Dst: netPluginLib_t*::ncclNet::devices
      Src: /src/nccl/src/plugin/net.cc:175,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:180,1
    - Dst: netPluginLib_t*::ncclCollNet::init
      Src: /src/nccl/src/plugin/net.cc:184,1
    - Dst: netPluginLib_t*::ncclCollNet::devices
      Src: /src/nccl/src/plugin/net.cc:188,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:199,1
    - Dst: netPluginLib_t*::ncclNet::finalize
      Src: /src/nccl/src/plugin/net.cc:200,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 2
    argNames:
    - comm
    - pluginLib
    argTypes:
    - struct ncclComm*
    - netPluginLib_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 206
    functionName: ncclNetPluginInit
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - netPluginLib_t*::ncclNet::init
    - netPluginLib_t*::ncclCollNet::init
    - netPluginLib_t*::ncclNet::devices
    - netPluginLib_t*::ncclNet::finalize
    - netPluginLib_t*::ncclCollNet::devices
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetPluginInit(struct ncclComm* comm, netPluginLib_t*
      pluginLib)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclNetCheckDeviceVersion
      Src: /src/nccl/src/plugin/net.cc:211,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - comm
    - pluginIndex
    - isAssigned
    argTypes:
    - struct ncclComm*
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 225
    functionName: ncclNetPluginAssignToComm
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclNetCheckDeviceVersion
    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:234,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/net.cc:234,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/net.cc:234,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/net.cc:234,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/net.cc:238,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pluginIndex
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 242
    functionName: ncclNetPluginDisableOtherExternal
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - snprintf
    - strlen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetPluginDisableOtherExternal(int pluginIndex)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/plugin/net.cc:252,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/plugin/net.cc:253,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:255,1
    - Dst: strcasecmp
      Src: /src/nccl/src/plugin/net.cc:256,1
    - Dst: strdup
      Src: /src/nccl/src/plugin/net.cc:258,1
    - Dst: strtok_r
      Src: /src/nccl/src/plugin/net.cc:260,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:265,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/net.cc:269,1
    - Dst: ncclParamNetPluginRefCount
      Src: /src/nccl/src/plugin/net.cc:271,1
    - Dst: strcpy
      Src: /src/nccl/src/plugin/net.cc:272,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:275,1
    - Dst: strtok_r
      Src: /src/nccl/src/plugin/net.cc:277,1
    - Dst: free
      Src: /src/nccl/src/plugin/net.cc:279,1
    - Dst: ncclParamNetPluginRefCount
      Src: /src/nccl/src/plugin/net.cc:283,1
    - Dst: strcpy
      Src: /src/nccl/src/plugin/net.cc:284,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 294
    functionName: initPluginLibsOnceFunc
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - INFO
    - strdup
    - strlen
    - free
    - strcasecmp
    - memset
    - strcpy
    - strtok_r
    - ncclParamNetPluginRefCount
    linkageType: ''
    returnType: void
    signature: void initPluginLibsOnceFunc()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:297,1
    - Dst: ncclNet::finalize
      Src: /src/nccl/src/plugin/net.cc:297,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:298,1
    - Dst: ncclCollNet::finalize
      Src: /src/nccl/src/plugin/net.cc:298,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:301,1
    - Dst: ncclNetPluginUnload
      Src: /src/nccl/src/plugin/net.cc:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - comm
    - pluginIndex
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: ncclNetPluginFinalize
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - ncclNet::finalize
    - ncclCollNet::finalize
    - ncclNetPluginUnload
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetPluginFinalize(struct ncclComm* comm, int pluginIndex)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/plugin/net.cc:308,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:312,1
    - Dst: ncclNetPluginLoad
      Src: /src/nccl/src/plugin/net.cc:312,1
    - Dst: strcasecmp
      Src: /src/nccl/src/plugin/net.cc:315,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:317,1
    - Dst: ncclNetPluginInit
      Src: /src/nccl/src/plugin/net.cc:317,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:320,1
    - Dst: ncclNetPluginAssignToComm
      Src: /src/nccl/src/plugin/net.cc:320,1
    - Dst: ncclNetPluginDisableOtherExternal
      Src: /src/nccl/src/plugin/net.cc:323,1
    - Dst: ncclNetPluginFinalize
      Src: /src/nccl/src/plugin/net.cc:328,1
    - Dst: WARN
      Src: /src/nccl/src/plugin/net.cc:334,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 336
    functionName: ncclNetInit
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 1
    functionsReached:
    - ncclNetPluginAssignToComm
    - ncclNetPluginDisableOtherExternal
    - ncclNetPluginLoad
    - ncclNetPluginInit
    - strcasecmp
    - std::call_once
    - WARN
    - ncclNetPluginFinalize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetInit(struct ncclComm* comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/nccl/src/plugin/net.cc:345,1
    - Dst: WARN
      Src: /src/nccl/src/plugin/net.cc:346,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - comm
    - parent
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 353
    functionName: ncclNetInitFromParent
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 1
    functionsReached:
    - strcasecmp
    - INFO
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetInitFromParent(struct ncclComm* comm, struct ncclComm*
      parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:358,1
    - Dst: ncclNetPluginFinalize
      Src: /src/nccl/src/plugin/net.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: ncclNetFinalize
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 1
    functionsReached:
    - ncclNetPluginFinalize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetFinalize(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/plugin/net.cc:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - netPluginIndex
    - nPhysDevs
    - nVirtDevs
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 372
    functionName: ncclNetGetDevCount
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetGetDevCount(int netPluginIndex, int* nPhysDevs,
      int* nVirtDevs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/plugin/net.cc:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - netPluginIndex
    - nPhysDevs
    - nVirtDevs
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 384
    functionName: ncclCollNetGetDevCount
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNetGetDevCount(int netPluginIndex, int* nPhysDevs,
      int* nVirtDevs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/plugin/net.cc:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - netPluginIndex
    - nVirtDevs
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 394
    functionName: ncclNetSetVirtDevCount
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSetVirtDevCount(int netPluginIndex, int nVirtDevs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/plugin/net.cc:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - netPluginIndex
    - nVirtDevs
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: ncclCollNetSetVirtDevCount
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNetSetVirtDevCount(int netPluginIndex, int nVirtDevs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/plugin/net.cc:411,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/plugin/net.cc:411,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/plugin/net.cc:414,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/plugin/net.cc:414,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/plugin/net.cc:415,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/plugin/net.cc:415,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:425,1
    - Dst: struct ncclComm*::ncclNet::devices
      Src: /src/nccl/src/plugin/net.cc:425,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:430,1
    - Dst: struct ncclComm*::ncclNet::getProperties
      Src: /src/nccl/src/plugin/net.cc:430,1
    - Dst: NCCLCHECKGOTONOWARN
      Src: /src/nccl/src/plugin/net.cc:439,1
    - Dst: struct ncclComm*::ncclNet::listen
      Src: /src/nccl/src/plugin/net.cc:439,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/plugin/net.cc:446,1
    - Dst: NCCLCHECKGOTONOWARN
      Src: /src/nccl/src/plugin/net.cc:451,1
    - Dst: struct ncclComm*::ncclNet::connect
      Src: /src/nccl/src/plugin/net.cc:451,1
    - Dst: NCCLCHECKGOTONOWARN
      Src: /src/nccl/src/plugin/net.cc:454,1
    - Dst: struct ncclComm*::ncclNet::accept
      Src: /src/nccl/src/plugin/net.cc:454,1
    - Dst: NCCLCHECKGOTONOWARN
      Src: /src/nccl/src/plugin/net.cc:459,1
    - Dst: ncclCudaMalloc
      Src: /src/nccl/src/plugin/net.cc:459,1
    - Dst: NOWARN
      Src: /src/nccl/src/plugin/net.cc:460,1
    - Dst: struct ncclComm*::ncclNet::regMr
      Src: /src/nccl/src/plugin/net.cc:460,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/plugin/net.cc:462,1
    - Dst: struct ncclComm*::ncclNet::deregMr
      Src: /src/nccl/src/plugin/net.cc:462,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/plugin/net.cc:463,1
    - Dst: struct ncclComm*::ncclNet::regMr
      Src: /src/nccl/src/plugin/net.cc:463,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/plugin/net.cc:464,1
    - Dst: struct ncclComm*::ncclNet::deregMr
      Src: /src/nccl/src/plugin/net.cc:464,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:467,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/plugin/net.cc:467,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:470,1
    - Dst: struct ncclComm*::ncclNet::closeRecv
      Src: /src/nccl/src/plugin/net.cc:470,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:472,1
    - Dst: struct ncclComm*::ncclNet::closeSend
      Src: /src/nccl/src/plugin/net.cc:472,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:473,1
    - Dst: struct ncclComm*::ncclNet::closeListen
      Src: /src/nccl/src/plugin/net.cc:473,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - comm
    - gdrSupport
    argTypes:
    - struct ncclComm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 480
    functionName: ncclGpuGdrSupport
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 1
    functionsReached:
    - struct ncclComm*::ncclNet::devices
    - struct ncclComm*::ncclNet::deregMr
    - struct ncclComm*::ncclNet::closeListen
    - ncclCudaFree
    - struct ncclComm*::ncclNet::regMr
    - COMPILER_ATOMIC_LOAD
    - struct ncclComm*::ncclNet::closeRecv
    - CUDACHECK
    - struct ncclComm*::ncclNet::closeSend
    - struct ncclComm*::ncclNet::connect
    - cudaDriverGetVersion
    - struct ncclComm*::ncclNet::listen
    - NCCLCHECKNOWARN
    - NCCLCHECKGOTONOWARN
    - struct ncclComm*::ncclNet::getProperties
    - NCCLCHECK
    - ncclCudaMalloc
    - NOWARN
    - cudaGetDevice
    - cudaDeviceGetAttribute
    - struct ncclComm*::ncclNet::accept
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGpuGdrSupport(struct ncclComm* comm, int* gdrSupport)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:18,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:25,1
    - Dst: createContext
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - collComm
    - config
    - ginCtx
    - devHandle
    argTypes:
    - void*
    - ncclGinConfig_t*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: ncclGin_createContext
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v11.cc
    functionUses: 0
    functionsReached:
    - createContext
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGin_createContext(void* collComm, ncclGinConfig_t*
      config,\n    void** ginCtx, ncclNetDeviceHandle_t** devHandle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:32,1
    - Dst: destroyContext
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ginCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: ncclGin_destroyContext
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v11.cc
    functionUses: 0
    functionsReached:
    - destroyContext
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGin_destroyContext(void* ginCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:40,1
    - Dst: iput
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 9
    argNames:
    - ginCtx
    - context
    - srcOff
    - srcMhandle
    - size
    - dstOff
    - dstMhandle
    - rank
    - request
    argTypes:
    - void*
    - int
    - uint64_t
    - void*
    - size_t
    - uint64_t
    - void*
    - uint32_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: ncclGin_iput
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v11.cc
    functionUses: 0
    functionsReached:
    - iput
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGin_iput(void* ginCtx, int context, uint64_t srcOff,
      void* srcMhandle, size_t size,\n    uint64_t dstOff, void* dstMhandle, uint32_t
      rank, void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ginCtx
    - context
    - mhandle
    - rank
    - request
    argTypes:
    - void*
    - int
    - void*
    - uint32_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ncclGin_iflush
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v11.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGin_iflush(void* ginCtx, int context, void* mhandle,
      uint32_t rank, void** request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:57,1
    - Dst: iputSignal
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 13
    argNames:
    - ginCtx
    - context
    - srcOff
    - srcMhandle
    - size
    - dstOff
    - dstMhandle
    - rank
    - signalOff
    - signalMhandle
    - signalValue
    - signalOp
    - request
    argTypes:
    - void*
    - int
    - uint64_t
    - void*
    - size_t
    - uint64_t
    - void*
    - uint32_t
    - uint64_t
    - void*
    - uint64_t
    - uint32_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: ncclGin_iputSignal
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v11.cc
    functionUses: 0
    functionsReached:
    - iputSignal
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGin_iputSignal(void* ginCtx, int context, uint64_t
      srcOff, void* srcMhandle,\n    size_t size, uint64_t dstOff, void* dstMhandle,
      uint32_t rank, uint64_t signalOff, void *signalMhandle,\n    uint64_t signalValue,
      uint32_t signalOp, void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:65,1
    - Dst: getProperties
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 89
    functionName: ncclGin_getProperties
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v11.cc
    functionUses: 0
    functionsReached:
    - getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGin_getProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:92,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin/gin_v11.cc:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 119
    functionName: getNcclGin_v11
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v11.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclGin_t
    signature: ncclGin_t * getNcclGin_v11(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/gin/gin_v13.cc:15,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin/gin_v13.cc:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: getNcclGin_v13
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v13.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclGin_t
    signature: ncclGin_t * getNcclGin_v13(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/gin/gin_v13.cc:26,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin/gin_v13.cc:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: getNcclRma_v13
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v13.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclGin_t
    signature: ncclGin_t * getNcclRma_v13(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - handles
    - nranks
    - rank
    - listenComm
    - collComm
    argTypes:
    - void*
    - void*[]
    - int
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ncclGin_connect
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v12.cc
    functionUses: 0
    functionsReached:
    - connect
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGin_connect(void* ctx, void* handles[], int nranks,
      int rank,\n  void* listenComm, void** collComm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:24,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:30,1
    - Dst: createContext
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - collComm
    - config
    - ginCtx
    - devHandle
    argTypes:
    - void*
    - ncclGinConfig_t*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: ncclGin_createContext
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v12.cc
    functionUses: 0
    functionsReached:
    - createContext
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGin_createContext(void* collComm, ncclGinConfig_t*
      config,\n    void** ginCtx, ncclNetDeviceHandle_t** devHandle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:37,1
    - Dst: destroyContext
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ginCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: ncclGin_destroyContext
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v12.cc
    functionUses: 0
    functionsReached:
    - destroyContext
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGin_destroyContext(void* ginCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ginCtx
    - context
    - mhandle
    - rank
    - request
    argTypes:
    - void*
    - int
    - void*
    - uint32_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: ncclGin_iflush
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v12.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGin_iflush(void* ginCtx, int context, void* mhandle,
      uint32_t rank, void** request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:52,1
    - Dst: iput
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 9
    argNames:
    - ginCtx
    - context
    - srcOff
    - srcMhandle
    - size
    - dstOff
    - dstMhandle
    - rank
    - request
    argTypes:
    - void*
    - int
    - uint64_t
    - void*
    - size_t
    - uint64_t
    - void*
    - uint32_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: ncclGin_iput
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v12.cc
    functionUses: 0
    functionsReached:
    - iput
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGin_iput(void* ginCtx, int context, uint64_t srcOff,
      void* srcMhandle, size_t size,\n    uint64_t dstOff, void* dstMhandle, uint32_t
      rank, void** request)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:62,1
    - Dst: iputSignal
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 13
    argNames:
    - ginCtx
    - context
    - srcOff
    - srcMhandle
    - size
    - dstOff
    - dstMhandle
    - rank
    - signalOff
    - signalMhandle
    - signalValue
    - signalOp
    - request
    argTypes:
    - void*
    - int
    - uint64_t
    - void*
    - size_t
    - uint64_t
    - void*
    - uint32_t
    - uint64_t
    - void*
    - uint64_t
    - uint32_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: ncclGin_iputSignal
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v12.cc
    functionUses: 0
    functionsReached:
    - iputSignal
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGin_iputSignal(void* ginCtx, int context, uint64_t
      srcOff, void* srcMhandle,\n    size_t size, uint64_t dstOff, void* dstMhandle,
      uint32_t rank, uint64_t signalOff, void *signalMhandle,\n    uint64_t signalValue,
      uint32_t signalOp, void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:70,1
    - Dst: getProperties
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 93
    functionName: ncclGin_getProperties
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v12.cc
    functionUses: 0
    functionsReached:
    - getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGin_getProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:96,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/gin/gin_v12.cc:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 123
    functionName: getNcclGin_v12
    functionSourceFile: /src/nccl/src/plugin/gin/gin_v12.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclGin_t
    signature: ncclGin_t * getNcclGin_v12(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v10.cc:25,1
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v10.cc:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: ncclNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_getProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/nccl/src/plugin/net/net_v10.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - dev
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: ncclNet_listen
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - listen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclNet_listen(void* ctx __attribute__((unused)),\n    int
      dev, void* handle, void** listenComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/nccl/src/plugin/net/net_v10.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - dev
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: ncclNet_connect
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - connect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_connect(void* ctx, int dev, void* handle, void**
      sendComm, ncclNetDeviceHandle_t** sendDevComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: makeVDevice
      Src: /src/nccl/src/plugin/net/net_v10.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: ncclNet_makeVDevice
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - makeVDevice
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_makeVDevice(int* d, ncclNetVDeviceProps_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/plugin/net/net_v10.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: ncclNet_finalize
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_finalize(void* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/net/net_v10.cc:80,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/plugin/net/net_v10.cc:80,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/net/net_v10.cc:86,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v10.cc:86,1
    - Dst: free
      Src: /src/nccl/src/plugin/net/net_v10.cc:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logfn
    - proffn
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 116
    functionName: ncclNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - free
    - init
    - ncclCalloc
    - NCCLCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclNet_init(void** ctx, uint64_t commId __attribute__((unused)),\n
      \   ncclNetCommConfig_t* config, ncclDebugLogger_t logfn, ncclProfilerCallback_t
      proffn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v10.cc:119,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v10.cc:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: getNcclNet_v10
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v10(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v10.cc:131,1
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v10.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 153
    functionName: ncclCollNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_getProperties(int dev, ncclNetProperties_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/nccl/src/plugin/net/net_v10.cc:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - dev
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: ncclCollNet_listen
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - listen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_listen(void* ctx __attribute__((unused)),\n
      \   int dev, void* handle , void** listenComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iallgather
      Src: /src/nccl/src/plugin/net/net_v10.cc:163,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: 165
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: ncclCollNet_iallgather
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.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_v10.cc:171,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: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: ncclCollNet_ireducescatter
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.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: makeVDevice
      Src: /src/nccl/src/plugin/net/net_v10.cc:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: ncclCollNet_makeVDevice
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - makeVDevice
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_makeVDevice(int* d, ncclNetVDeviceProps_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: ncclCollNet_finalize
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_finalize(void* ctx __attribute__((unused)))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v10.cc:192,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v10.cc:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - commId
    - logfn
    argTypes:
    - void**
    - uint64_t
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 213
    functionName: ncclCollNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_init(void** ctx __attribute__((unused)),\n
      \   uint64_t commId __attribute__((unused)),\n    ncclDebugLogger_t logfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v10.cc:216,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v10.cc:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: getNcclCollNet_v10
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    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:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 49
    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: listen
      Src: /src/nccl/src/plugin/net/net_v8.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - dev
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: ncclNet_listen
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - listen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclNet_listen(void* ctx __attribute__((unused)),\n    int
      dev, void* handle, void** listenComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/nccl/src/plugin/net/net_v8.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - dev
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    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(void* ctx __attribute__((unused)),\n
      \   int dev,\n    void* handle, void** sendComm, ncclNetDeviceHandle_t** sendDevComm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isend
      Src: /src/nccl/src/plugin/net/net_v8.cc:68,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: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    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,\n    void* pHandle __attribute__((unused)),\n    void**
      request)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: irecv
      Src: /src/nccl/src/plugin/net/net_v8.cc:82,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: 84
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 84
    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,\n    void** pHandles __attribute__((unused)),\n
      \   void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: ncclNet_finalize
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_finalize(void* ctx __attribute__((unused)))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v8.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 114
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/nccl/src/plugin/net/net_v8.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - dev
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: ncclCollNet_listen
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - listen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_listen(void* ctx __attribute__((unused)),\n
      \   int dev, void* handle, void** listenComm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iallreduce
      Src: /src/nccl/src/plugin/net/net_v8.cc:126,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: 129
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 129
    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:140,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: 144
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 144
    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:156,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: 161
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 161
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ncclCollNet_finalize
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_finalize(void* ctx __attribute__((unused)))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v8.cc:176,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v8.cc:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logfn
    - proffn
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 200
    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(void** ctx __attribute__((unused)),\n    uint64_t
      commId __attribute__((unused)),\n    ncclNetCommConfig_t* config __attribute__((unused)),\n
      \   ncclDebugLogger_t logfn, ncclProfilerCallback_t proffn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v8.cc:203,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v8.cc:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: getNcclNet_v8
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v8(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v8.cc:220,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v8.cc:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - commId
    - logfn
    argTypes:
    - void**
    - uint64_t
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 241
    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(void** ctx __attribute__((unused)),\n
      \   uint64_t commId __attribute__((unused)),\n    ncclDebugLogger_t logfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v8.cc:244,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v8.cc:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: getNcclCollNet_v8
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    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:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 49
    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:53,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: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    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: listen
      Src: /src/nccl/src/plugin/net/net_v6.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - d
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ncclNet_listen
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - listen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclNet_listen(void* ctx __attribute__((unused)),\n    int
      d, void* handle, void** listenComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/nccl/src/plugin/net/net_v6.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - dev
    - handle
    - sendComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    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(void* ctx __attribute__((unused)),\n
      \   int dev,\n    void* handle, void** sendComm, ncclNetDeviceHandle_t** /*sendDevComm*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/nccl/src/plugin/net/net_v6.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - listenComm
    - recvComm
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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:77,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: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    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,\n    void* pHandle __attribute__((unused)),\n    void**
      request)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: irecv
      Src: /src/nccl/src/plugin/net/net_v6.cc:91,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: 93
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 93
    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,\n    void** pHandles __attribute__((unused)),\n
      \   void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: ncclNet_finalize
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_finalize(void* ctx __attribute__((unused)))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v6.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 123
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/nccl/src/plugin/net/net_v6.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - d
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: ncclCollNet_listen
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - listen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_listen(void* ctx __attribute__((unused)),\n
      \   int d, void* handle, void** listenComm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regMr
      Src: /src/nccl/src/plugin/net/net_v6.cc:132,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: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    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:140,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: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: ncclCollNet_finalize
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_finalize(void* ctx __attribute__((unused)))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v6.cc:159,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v6.cc:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logfn
    - proffn
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 183
    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(void** ctx __attribute__((unused)),\n    uint64_t
      commId __attribute__((unused)),\n    ncclNetCommConfig_t* config __attribute__((unused)),\n
      \   ncclDebugLogger_t logfn,\n    ncclProfilerCallback_t proffn __attribute__((unused)))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v6.cc:186,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v6.cc:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: getNcclNet_v6
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v6(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v6.cc:203,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v6.cc:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - commId
    - logfn
    argTypes:
    - void**
    - uint64_t
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 224
    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(void** ctx __attribute__((unused)),\n
      \   uint64_t commId __attribute__((unused)),\n    ncclDebugLogger_t logfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v6.cc:227,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v6.cc:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: getNcclCollNet_v6
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclCollNet_t
    signature: ncclCollNet_t * getNcclCollNet_v6(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v11.cc:19,1
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v11.cc:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 43
    functionName: ncclNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v11.cc
    functionUses: 0
    functionsReached:
    - getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_getProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: makeVDevice
      Src: /src/nccl/src/plugin/net/net_v11.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: ncclNet_makeVDevice
    functionSourceFile: /src/nccl/src/plugin/net/net_v11.cc
    functionUses: 0
    functionsReached:
    - makeVDevice
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_makeVDevice(int* d, ncclNetVDeviceProps_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setNetAttr
      Src: /src/nccl/src/plugin/net/net_v11.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - netAttr
    argTypes:
    - void*
    - ncclNetAttr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: ncclNet_setNetAttr
    functionSourceFile: /src/nccl/src/plugin/net/net_v11.cc
    functionUses: 0
    functionsReached:
    - setNetAttr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_setNetAttr(void* ctx, ncclNetAttr_t* netAttr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v11.cc:56,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v11.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logFunction
    - profFunction
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 78
    functionName: ncclNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v11.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_init(void** ctx, uint64_t commId, ncclNetCommConfig_t*
      config, ncclDebugLogger_t logFunction, ncclProfilerCallback_t profFunction)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v11.cc:81,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v11.cc:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: getNcclNet_v11
    functionSourceFile: /src/nccl/src/plugin/net/net_v11.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v11(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v11.cc:93,1
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v11.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 114
    functionName: ncclCollNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v11.cc
    functionUses: 0
    functionsReached:
    - getProperties
    - NCCLCHECK
    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_v11.cc:120,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: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: ncclCollNet_iallgather
    functionSourceFile: /src/nccl/src/plugin/net/net_v11.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_v11.cc:129,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: 132
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: ncclCollNet_ireducescatter
    functionSourceFile: /src/nccl/src/plugin/net/net_v11.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: makeVDevice
      Src: /src/nccl/src/plugin/net/net_v11.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: ncclCollNet_makeVDevice
    functionSourceFile: /src/nccl/src/plugin/net/net_v11.cc
    functionUses: 0
    functionsReached:
    - makeVDevice
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_makeVDevice(int* d, ncclNetVDeviceProps_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v11.cc:140,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v11.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - commId
    - logFunction
    argTypes:
    - void**
    - uint64_t
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 159
    functionName: ncclCollNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v11.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_init(void** ctx, uint64_t commId, ncclDebugLogger_t
      logFunction)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v11.cc:162,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v11.cc:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: getNcclCollNet_v11
    functionSourceFile: /src/nccl/src/plugin/net/net_v11.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclCollNet_t
    signature: ncclCollNet_t * getNcclCollNet_v11(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v7.cc:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 49
    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: listen
      Src: /src/nccl/src/plugin/net/net_v7.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - dev
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: ncclNet_listen
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - listen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclNet_listen(void* ctx __attribute__((unused)),\n    int
      dev, void* handle, void** listenComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/nccl/src/plugin/net/net_v7.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - dev
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    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(void* ctx __attribute__((unused)),\n
      \   int dev,\n    void* handle, void** sendComm, ncclNetDeviceHandle_t** sendDevComm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regMr
      Src: /src/nccl/src/plugin/net/net_v7.cc:64,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: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    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:73,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: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    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,\n    void* pHandle __attribute__((unused)),\n    void**
      request)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: irecv
      Src: /src/nccl/src/plugin/net/net_v7.cc:87,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: 89
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 89
    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,\n    void** pHandles __attribute__((unused)),\n
      \   void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: ncclNet_finalize
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_finalize(void* ctx __attribute__((unused)))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v7.cc:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 119
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/nccl/src/plugin/net/net_v7.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - d
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: ncclCollNet_listen
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - listen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_listen(void* ctx __attribute__((unused)),\n
      \   int d, void* handle, void** listenComm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regMr
      Src: /src/nccl/src/plugin/net/net_v7.cc:128,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: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    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:136,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: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: ncclCollNet_finalize
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_finalize(void* ctx __attribute__((unused)))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v7.cc:155,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v7.cc:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logfn
    - proffn
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 179
    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(void** ctx __attribute__((unused)),\n    uint64_t
      commId __attribute__((unused)),\n    ncclNetCommConfig_t* config __attribute__((unused)),\n
      \   ncclDebugLogger_t logfn,\n    ncclProfilerCallback_t proffn __attribute__((unused)))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v7.cc:182,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v7.cc:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 190
    functionName: getNcclNet_v7
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v7(void* lib)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v7.cc:199,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v7.cc:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - commId
    - logfn
    argTypes:
    - void**
    - uint64_t
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 219
    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(void** ctx __attribute__((unused)),\n
      \   uint64_t commId __attribute__((unused)),\n    ncclDebugLogger_t logfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v7.cc:222,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v7.cc:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: getNcclCollNet_v7
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclCollNet_t
    signature: ncclCollNet_t * getNcclCollNet_v7(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v12.cc:16,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v12.cc:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: getNcclNet_v12
    functionSourceFile: /src/nccl/src/plugin/net/net_v12.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v12(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v12.cc:25,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v12.cc:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: getNcclCollNet_v12
    functionSourceFile: /src/nccl/src/plugin/net/net_v12.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclCollNet_t
    signature: ncclCollNet_t * getNcclCollNet_v12(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v9.cc:25,1
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v9.cc:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: ncclNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - getProperties
    - NCCLCHECK
    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:55,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: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    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,\n    void* pHandle __attribute__((unused)),\n    void**
      request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: irecv
      Src: /src/nccl/src/plugin/net/net_v9.cc:61,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: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    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,\n    void** pHandles __attribute__((unused)),\n
      \   void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/nccl/src/plugin/net/net_v9.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - dev
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: ncclNet_listen
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - listen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclNet_listen(void* ctx __attribute__((unused)),\n    int
      dev, void* handle, void** listenComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/nccl/src/plugin/net/net_v9.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - dev
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    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(void* ctx __attribute__((unused)),\n
      \   int dev,\n    void* handle, void** sendComm, ncclNetDeviceHandle_t** sendDevComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: makeVDevice
      Src: /src/nccl/src/plugin/net/net_v9.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: ncclNet_finalize
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_finalize(void* ctx __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v9.cc:87,1
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v9.cc:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 109
    functionName: ncclCollNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_getProperties(int dev, ncclNetProperties_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/nccl/src/plugin/net/net_v9.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - d
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: ncclCollNet_listen
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - listen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_listen(void* ctx __attribute__((unused)),\n
      \   int d, void* handle, void** listenComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iallgather
      Src: /src/nccl/src/plugin/net/net_v9.cc:119,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: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    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:127,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: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    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: makeVDevice
      Src: /src/nccl/src/plugin/net/net_v9.cc:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: ncclCollNet_makeVDevice
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - makeVDevice
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_makeVDevice(int* d, ncclNetVDeviceProps_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: ncclCollNet_finalize
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_finalize(void* ctx __attribute__((unused)))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v9.cc:149,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v9.cc:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logfn
    - proffn
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 173
    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(void** ctx __attribute__((unused)),\n    uint64_t
      commId __attribute__((unused)),\n    ncclNetCommConfig_t* config __attribute__((unused)),\n
      \   ncclDebugLogger_t logfn, ncclProfilerCallback_t proffn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v9.cc:176,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v9.cc:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: getNcclNet_v9
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v9(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v9.cc:193,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v9.cc:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - commId
    - logfn
    argTypes:
    - void**
    - uint64_t
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 214
    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(void** ctx __attribute__((unused)),\n
      \   uint64_t commId __attribute__((unused)),\n    ncclDebugLogger_t logfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/net/net_v9.cc:217,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v9.cc:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: getNcclCollNet_v9
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclCollNet_t
    signature: ncclCollNet_t * getNcclCollNet_v9(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/profiler/profiler_v6.cc:17,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v6.cc:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: getNcclProfiler_v6
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v6.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclProfiler_t
    signature: ncclProfiler_t * getNcclProfiler_v6(void* lib)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - 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
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:22,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:23,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 25
    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: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
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:32,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:33,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - algo
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    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:38,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - proto
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    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: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:49,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:50,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:52,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - dt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 55
    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:70,1
    - Dst: ncclStringToDatatype
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:75,1
    - Dst: ncclStringToAlgo
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:80,1
    - Dst: ncclStringToProto
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:81,1
    - Dst: ncclStringToFunc
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:87,1
    - Dst: ncclStringToDatatype
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:90,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 57
    argCount: 3
    argNames:
    - context
    - eHandle
    - eDescr
    argTypes:
    - void*
    - void**
    - ncclProfilerEventDescr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 108
    functionName: ncclProfiler_startEvent
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v1.cc
    functionUses: 0
    functionsReached:
    - ncclStringToProto
    - ncclStringToAlgo
    - ncclStringToDatatype
    - ncclStringToFunc
    - 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:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - eHandle
    - eState
    - eStateArgs
    argTypes:
    - void*
    - ncclProfilerEventState_t
    - ncclProfilerEventStateArgs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 130
    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:141,1
    - Dst: init
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - context
    - commId
    - eActivationMask
    - commName
    - nNodes
    - nranks
    - rank
    - logfn
    argTypes:
    - void**
    - uint64_t
    - int*
    - char*
    - int
    - int
    - int
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 147
    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,\n    uint64_t commId
      __attribute__((unused)),\n    int* eActivationMask __attribute__((unused)),\n
      \   const char* commName __attribute__((unused)),\n    int nNodes __attribute__((unused)),\n
      \   int nranks __attribute__((unused)),\n    int rank __attribute__((unused)),\n
      \   ncclDebugLogger_t logfn __attribute__((unused))\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:150,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: getNcclProfiler_v1
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v1.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclProfiler_t
    signature: ncclProfiler_t * getNcclProfiler_v1(void* lib)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler/profiler_v4.cc:67,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 3
    argNames:
    - ctx
    - eHandle
    - eDescr
    argTypes:
    - void*
    - void**
    - ncclProfilerEventDescr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 68
    functionName: ncclProfiler_startEvent
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v4.cc
    functionUses: 0
    functionsReached:
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_startEvent(void* ctx, void** eHandle, ncclProfilerEventDescr_t*
      eDescr)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler/profiler_v4.cc:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - eHandle
    - eState
    - eStateArgs
    argTypes:
    - void*
    - ncclProfilerEventState_t
    - ncclProfilerEventStateArgs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 100
    functionName: ncclProfiler_recordEventState
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v4.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_v4.cc:103,1
    - Dst: init
      Src: /src/nccl/src/plugin/profiler/profiler_v4.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - ctx
    - commId
    - eActivationMask
    - commName
    - nNodes
    - nRanks
    - rank
    - logfn
    argTypes:
    - void**
    - uint64_t
    - int*
    - char*
    - int
    - int
    - int
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: ncclProfiler_init
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v4.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_init(void** ctx, uint64_t commId, int* eActivationMask,
      const char* commName, int nNodes, int nRanks, int rank, ncclDebugLogger_t logfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/profiler/profiler_v4.cc:112,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v4.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: getNcclProfiler_v4
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v4.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlsym
    - INFO
    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:71,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 64
    argCount: 3
    argNames:
    - context
    - eHandle
    - eDescr
    argTypes:
    - void*
    - void**
    - ncclProfilerEventDescr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 72
    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:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - eHandle
    - eState
    - eStateArgs
    argTypes:
    - void*
    - ncclProfilerEventState_t
    - ncclProfilerEventStateArgs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 94
    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:105,1
    - Dst: init
      Src: /src/nccl/src/plugin/profiler/profiler_v3.cc:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - context
    - commId
    - eActivationMask
    - commName
    - nNodes
    - nranks
    - rank
    - logfn
    argTypes:
    - void**
    - uint64_t
    - int*
    - char*
    - int
    - int
    - int
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 111
    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,\n    uint64_t commId
      __attribute__((unused)),\n    int* eActivationMask __attribute__((unused)),\n
      \   const char* commName __attribute__((unused)),\n    int nNodes __attribute__((unused)),\n
      \   int nranks __attribute__((unused)),\n    int rank __attribute__((unused)),\n
      \   ncclDebugLogger_t logfn __attribute__((unused))\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/profiler/profiler_v3.cc:114,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v3.cc:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: getNcclProfiler_v3
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v3.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlsym
    - INFO
    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:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 56
    argCount: 3
    argNames:
    - context
    - eHandle
    - eDescr
    argTypes:
    - void*
    - void**
    - ncclProfilerEventDescr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 66
    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:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - eHandle
    - eState
    - eStateArgs
    argTypes:
    - void*
    - ncclProfilerEventState_t
    - ncclProfilerEventStateArgs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 88
    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:99,1
    - Dst: init
      Src: /src/nccl/src/plugin/profiler/profiler_v2.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - context
    - commId
    - eActivationMask
    - commName
    - nNodes
    - nranks
    - rank
    - logfn
    argTypes:
    - void**
    - uint64_t
    - int*
    - char*
    - int
    - int
    - int
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 105
    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,\n    uint64_t commId
      __attribute__((unused)),\n    int* eActivationMask __attribute__((unused)),\n
      \   const char* commName __attribute__((unused)),\n    int nNodes __attribute__((unused)),\n
      \   int nranks __attribute__((unused)),\n    int rank __attribute__((unused)),\n
      \   ncclDebugLogger_t logfn __attribute__((unused))\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/profiler/profiler_v2.cc:108,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v2.cc:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: getNcclProfiler_v2
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v2.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclProfiler_t
    signature: ncclProfiler_t * getNcclProfiler_v2(void* lib)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler/profiler_v5.cc:99,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 92
    argCount: 3
    argNames:
    - ctx
    - eHandle
    - eDescr
    argTypes:
    - void*
    - void**
    - ncclProfilerEventDescr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 100
    functionName: ncclProfiler_startEvent
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v5.cc
    functionUses: 0
    functionsReached:
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_startEvent(void* ctx, void** eHandle, ncclProfilerEventDescr_t*
      eDescr)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler/profiler_v5.cc:149,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 3
    argNames:
    - eHandle
    - eState
    - eStateArgs
    argTypes:
    - void*
    - ncclProfilerEventState_t
    - ncclProfilerEventStateArgs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 150
    functionName: ncclProfiler_recordEventState
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v5.cc
    functionUses: 0
    functionsReached:
    - recordEventState
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_recordEventState(void* eHandle, ncclProfilerEventState_t
      eState, ncclProfilerEventStateArgs_t* eStateArgs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/profiler/profiler_v5.cc:153,1
    - Dst: init
      Src: /src/nccl/src/plugin/profiler/profiler_v5.cc:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 8
    argNames:
    - ctx
    - commId
    - eActivationMask
    - commName
    - nNodes
    - nRanks
    - rank
    - logfn
    argTypes:
    - void**
    - uint64_t
    - int*
    - char*
    - int
    - int
    - int
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 165
    functionName: ncclProfiler_init
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v5.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_init(void** ctx, uint64_t commId, int* eActivationMask,
      const char* commName, int nNodes, int nRanks, int rank, ncclDebugLogger_t logfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/profiler/profiler_v5.cc:168,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v5.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 176
    functionName: getNcclProfiler_v5
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v5.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclProfiler_t
    signature: ncclProfiler_t * getNcclProfiler_v5(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/env/env_v1.cc:16,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/env/env_v1.cc:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: getNcclEnv_v1
    functionSourceFile: /src/nccl/src/plugin/env/env_v1.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclEnv_t
    signature: ncclEnv_t * getNcclEnv_v1(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ncclMajor
    - ncclMinor
    - ncclPatch
    - suffix
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: ncclEnvInit
    functionSourceFile: /src/nccl/src/plugin/env/env_v1.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclEnvInit(uint8_t ncclMajor, uint8_t ncclMinor, uint8_t
      ncclPatch, const char* suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: ncclEnvFinalize
    functionSourceFile: /src/nccl/src/plugin/env/env_v1.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclEnvFinalize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/nccl/src/plugin/env/env_v1.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: ncclEnvGetEnv
    functionSourceFile: /src/nccl/src/plugin/env/env_v1.cc
    functionUses: 0
    functionsReached:
    - std::getenv
    linkageType: ''
    returnType: char
    signature: char * ncclEnvGetEnv(const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/tuner/tuner_v6.cc:15,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner/tuner_v6.cc:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: getNcclTuner_v6
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v6.cc
    functionUses: 1
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclTuner_t
    signature: ncclTuner_t * getNcclTuner_v6(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy
      Src: /src/nccl/src/plugin/tuner/tuner_v4.cc:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: ncclTuner_finalize
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v4.cc
    functionUses: 0
    functionsReached:
    - destroy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTuner_finalize(void* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner/tuner_v4.cc:23,1
    - Dst: init
      Src: /src/nccl/src/plugin/tuner/tuner_v4.cc:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - context
    - commId
    - nRanks
    - nNodes
    - logfn
    - nvlDomainInfo
    argTypes:
    - void**
    - uint64_t
    - size_t
    - size_t
    - ncclDebugLogger_t
    - ncclNvlDomainInfo_v5_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: ncclTuner_init
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v4.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclTuner_init(void** context, uint64_t commId, size_t
      nRanks, size_t nNodes, ncclDebugLogger_t logfn,\n                                   ncclNvlDomainInfo_v5_t*
      nvlDomainInfo, ncclTunerConstants_t* /*constants*/)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/tuner/tuner_v4.cc:31,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner/tuner_v4.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: getNcclTuner_v4
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v4.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlsym
    - INFO
    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:18,1
    - Dst: getCollInfo
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:18,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: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    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: destroy
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: ncclTuner_finalize
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v3.cc
    functionUses: 0
    functionsReached:
    - destroy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTuner_finalize(void* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:28,1
    - Dst: init
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - context
    - commId
    - nRanks
    - nNodes
    - logfn
    - nvlDomainInfo
    argTypes:
    - void**
    - uint64_t
    - size_t
    - size_t
    - ncclDebugLogger_t
    - ncclNvlDomainInfo_v5_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    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(void** context, uint64_t commId, size_t
      nRanks, size_t nNodes, ncclDebugLogger_t logfn,\n                                   ncclNvlDomainInfo_v5_t*
      nvlDomainInfo, ncclTunerConstants_t* /*constants*/)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:36,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: getNcclTuner_v3
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v3.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclTuner_t
    signature: ncclTuner_t * getNcclTuner_v3(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner/tuner_v5.cc:18,1
    - Dst: getCollInfo
      Src: /src/nccl/src/plugin/tuner/tuner_v5.cc:18,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: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: ncclTuner_getCollInfo
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v5.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, int* nChannels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finalize
      Src: /src/nccl/src/plugin/tuner/tuner_v5.cc:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: ncclTuner_finalize
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v5.cc
    functionUses: 0
    functionsReached:
    - finalize
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTuner_finalize(void* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner/tuner_v5.cc:28,1
    - Dst: init
      Src: /src/nccl/src/plugin/tuner/tuner_v5.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - context
    - commId
    - nRanks
    - nNodes
    - logfn
    - nvlDomainInfo
    - constants
    argTypes:
    - void**
    - uint64_t
    - size_t
    - size_t
    - ncclDebugLogger_t
    - ncclNvlDomainInfo_v5_t*
    - ncclTunerConstants_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: ncclTuner_init
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v5.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclTuner_init(void** context, uint64_t commId, size_t
      nRanks, size_t nNodes, ncclDebugLogger_t logfn,\n                                   ncclNvlDomainInfo_v5_t*
      nvlDomainInfo, ncclTunerConstants_t* constants)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/tuner/tuner_v5.cc:36,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner/tuner_v5.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: getNcclTuner_v5
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v5.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclTuner_t
    signature: ncclTuner_t * getNcclTuner_v5(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - collCostTable
    argTypes:
    - float**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 29
    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: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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:39,1
    - Dst: hasCollNetSupport
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:40,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:41,1
    - Dst: getCollInfo
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:41,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: 48
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: ncclTuner_getCollInfo
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v2.cc
    functionUses: 0
    functionsReached:
    - hasNvlsSupport
    - getCollInfo
    - hasCollNetSupport
    - 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: destroy
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: ncclTuner_finalize
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v2.cc
    functionUses: 0
    functionsReached:
    - destroy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTuner_finalize(void* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:56,1
    - Dst: init
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - commId
    - nRanks
    - nNodes
    - logfn
    - nvlDomainInfo
    argTypes:
    - void**
    - uint64_t
    - size_t
    - size_t
    - ncclDebugLogger_t
    - ncclNvlDomainInfo_v5_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    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(void** ctx, uint64_t commId, size_t nRanks,
      size_t nNodes, ncclDebugLogger_t logfn,\n                                   ncclNvlDomainInfo_v5_t*
      nvlDomainInfo, ncclTunerConstants_t* /*constants*/)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:64,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: getNcclTuner_v2
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v2.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlsym
    - INFO
    linkageType: ''
    returnType: ncclTuner_t
    signature: ncclTuner_t * getNcclTuner_v2(void* lib)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - comm
    - ginType
    argTypes:
    - struct ncclComm*
    - ncclGinType_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: getGlobalGinType
    functionSourceFile: /src/nccl/src/gin/gin_host.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getGlobalGinType(struct ncclComm* comm, ncclGinType_t*
      ginType)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - comm
    - ginType
    argTypes:
    - struct ncclComm*
    - ncclGinType_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: getGlobalRailedGinType
    functionSourceFile: /src/nccl/src/gin/gin_host.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getGlobalRailedGinType(struct ncclComm* comm, ncclGinType_t*
      ginType)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamGinEnable
      Src: /src/nccl/src/gin/gin_host.cc:55,1
    - Dst: INFO
      Src: /src/nccl/src/gin/gin_host.cc:61,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host.cc:66,1
    - Dst: ncclGin::getProperties
      Src: /src/nccl/src/gin/gin_host.cc:66,1
    - Dst: static_cast<ncclGinType_t>
      Src: /src/nccl/src/gin/gin_host.cc:71,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host.cc:75,1
    - Dst: ncclGinProxyInit
      Src: /src/nccl/src/gin/gin_host.cc:75,1
    - Dst: WARN
      Src: /src/nccl/src/gin/gin_host.cc:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: setLocalGinType
    functionSourceFile: /src/nccl/src/gin/gin_host.cc
    functionUses: 1
    functionsReached:
    - static_cast<ncclGinType_t>
    - INFO
    - ncclParamGinEnable
    - ncclGin::getProperties
    - ncclGinProxyInit
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t setLocalGinType(struct ncclComm* comm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct ncclGinState*::ncclGin::ginProgress
      Src: /src/nccl/src/gin/gin_host.cc:92,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/gin/gin_host.cc:94,1
    - Dst: INFO
      Src: /src/nccl/src/gin/gin_host.cc:95,1
    - Dst: std::unique_lock::unlock
      Src: /src/nccl/src/gin/gin_host.cc:102,1
    - Dst: std::this_thread::yield
      Src: /src/nccl/src/gin/gin_host.cc:103,1
    - Dst: struct ncclGinState*::cond::wait
      Src: /src/nccl/src/gin/gin_host.cc:107,1
    - Dst: INFO
      Src: /src/nccl/src/gin/gin_host.cc:109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - ginState_
    argTypes:
    - struct ncclGinState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 114
    functionName: ncclGinProgress
    functionSourceFile: /src/nccl/src/gin/gin_host.cc
    functionUses: 0
    functionsReached:
    - INFO
    - std::this_thread::yield
    - struct ncclGinState*::ncclGin::ginProgress
    - std::unique_lock::unlock
    - COMPILER_ATOMIC_STORE
    - struct ncclGinState*::cond::wait
    linkageType: ''
    returnType: void
    signature: void * ncclGinProgress(struct ncclGinState* ginState_)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamGinEnable
      Src: /src/nccl/src/gin/gin_host.cc:123,1
    - Dst: WARN
      Src: /src/nccl/src/gin/gin_host.cc:124,1
    - Dst: WARN
      Src: /src/nccl/src/gin/gin_host.cc:130,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host.cc:138,1
    - Dst: struct ncclGinState*::ncclGin::devices
      Src: /src/nccl/src/gin/gin_host.cc:138,1
    - Dst: WARN
      Src: /src/nccl/src/gin/gin_host.cc:140,1
    - Dst: WARN
      Src: /src/nccl/src/gin/gin_host.cc:145,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host.cc:151,1
    - Dst: ncclTopoGetLocalGinDevs
      Src: /src/nccl/src/gin/gin_host.cc:151,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host.cc:157,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host.cc:157,1
    - Dst: ncclParamGinNconnections
      Src: /src/nccl/src/gin/gin_host.cc:165,1
    - Dst: ncclParamGinNconnections
      Src: /src/nccl/src/gin/gin_host.cc:165,1
    - Dst: std::min<int>
      Src: /src/nccl/src/gin/gin_host.cc:166,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host.cc:169,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/gin/gin_host.cc:169,1
    - Dst: min
      Src: /src/nccl/src/gin/gin_host.cc:171,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host.cc:174,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host.cc:174,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host.cc:175,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host.cc:175,1
    - Dst: ncclTeamRail
      Src: /src/nccl/src/gin/gin_host.cc:186,1
    - Dst: ncclTeamRankToWorld
      Src: /src/nccl/src/gin/gin_host.cc:190,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host.cc:197,1
    - Dst: struct ncclGinState*::ncclGin::listen
      Src: /src/nccl/src/gin/gin_host.cc:198,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host.cc:202,1
    - Dst: struct ncclGinState*::ncclGin::getProperties
      Src: /src/nccl/src/gin/gin_host.cc:202,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host.cc:205,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/gin/gin_host.cc:205,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host.cc:208,1
    - Dst: struct ncclGinState*::ncclGin::connect
      Src: /src/nccl/src/gin/gin_host.cc:208,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host.cc:212,1
    - Dst: struct ncclGinState*::ncclGin::closeListen
      Src: /src/nccl/src/gin/gin_host.cc:212,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host.cc:214,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host.cc:216,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host.cc:218,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host.cc:226,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host.cc:228,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host.cc:230,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 79
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 118
    functionDepth: 4
    functionLinenumber: 118
    functionLinenumberEnd: 232
    functionName: ncclGinConnectOnce
    functionSourceFile: /src/nccl/src/gin/gin_host.cc
    functionUses: 1
    functionsReached:
    - struct ncclGinState*::ncclGin::listen
    - struct ncclGinState*::ncclGin::closeListen
    - ncclCalloc
    - ncclTeamRail
    - ncclTopoGetLocalGinDevs
    - ncclParamGinEnable
    - min
    - ncclTeamRankToWorld
    - bootstrapAllGather
    - struct ncclGinState*::ncclGin::connect
    - free
    - struct ncclGinState*::ncclGin::getProperties
    - NCCLCHECKGOTO
    - struct ncclGinState*::ncclGin::devices
    - ncclParamGinNconnections
    - std::min<int>
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinConnectOnce(struct ncclComm* comm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/nccl/src/gin/gin_host.cc:253,1
    - Dst: INFO
      Src: /src/nccl/src/gin/gin_host.cc:255,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host.cc:259,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host.cc:259,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host.cc:272,1
    - Dst: struct ncclGinState*::ncclGin::createContext
      Src: /src/nccl/src/gin/gin_host.cc:272,1
    - Dst: std::thread
      Src: /src/nccl/src/gin/gin_host.cc:282,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/gin/gin_host.cc:283,1
    - Dst: struct ncclGinState*::ncclGin::destroyContext
      Src: /src/nccl/src/gin/gin_host.cc:302,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host.cc:304,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - comm
    - reqs
    - devComm
    argTypes:
    - struct ncclComm*
    - struct ncclDevCommRequirements*
    - struct ncclDevComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 307
    functionName: ncclGinDevCommSetup
    functionSourceFile: /src/nccl/src/gin/gin_host.cc
    functionUses: 1
    functionsReached:
    - std::thread
    - ncclCalloc
    - INFO
    - struct ncclGinState*::ncclGin::destroyContext
    - free
    - ROUNDUP
    - struct ncclGinState*::ncclGin::createContext
    - NCCLCHECKGOTO
    - ncclSetThreadName
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinDevCommSetup(struct ncclComm* comm, struct ncclDevCommRequirements
      const* reqs,\n    struct ncclDevComm* devComm)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/gin/gin_host.cc:315,1
    - Dst: std::unique_lock::unlock
      Src: /src/nccl/src/gin/gin_host.cc:327,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host.cc:331,1
    - Dst: struct ncclGinState*::ncclGin::destroyContext
      Src: /src/nccl/src/gin/gin_host.cc:331,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host.cc:333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - comm
    - devComm
    argTypes:
    - struct ncclComm*
    - struct ncclDevComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 335
    functionName: ncclGinDevCommFree
    functionSourceFile: /src/nccl/src/gin/gin_host.cc
    functionUses: 1
    functionsReached:
    - struct ncclGinState*::ncclGin::destroyContext
    - std::unique_lock::unlock
    - free
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinDevCommFree(struct ncclComm* comm, struct ncclDevComm
      const* devComm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct ncclGinState*::cond::notify_one
      Src: /src/nccl/src/gin/gin_host.cc:345,1
    - Dst: struct ncclGinState*::thread::join
      Src: /src/nccl/src/gin/gin_host.cc:347,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host.cc:352,1
    - Dst: struct ncclGinState*::ncclGin::closeColl
      Src: /src/nccl/src/gin/gin_host.cc:352,1
    - Dst: memset
      Src: /src/nccl/src/gin/gin_host.cc:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 358
    functionName: ncclGinHostFinalize
    functionSourceFile: /src/nccl/src/gin/gin_host.cc
    functionUses: 1
    functionsReached:
    - struct ncclGinState*::ncclGin::closeColl
    - struct ncclGinState*::thread::join
    - struct ncclGinState*::cond::notify_one
    - memset
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinHostFinalize(struct ncclComm* comm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/gin/gin_host.cc:369,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host.cc:376,1
    - Dst: struct ncclGinState*::ncclGin::regMrSym
      Src: /src/nccl/src/gin/gin_host.cc:376,1
    - Dst: WARN
      Src: /src/nccl/src/gin/gin_host.cc:379,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 8
    argNames:
    - comm
    - address
    - size
    - ginHostWins
    - ginDevWins
    - winFlags
    - multiSegment
    - memType
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - void*[]
    - ncclGinWindow_t[]
    - int
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 384
    functionName: ncclGinRegister
    functionSourceFile: /src/nccl/src/gin/gin_host.cc
    functionUses: 1
    functionsReached:
    - struct ncclGinState*::ncclGin::regMrSym
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinRegister(struct ncclComm* comm, void* address,
      size_t size,\n                             void* ginHostWins[NCCL_GIN_MAX_CONNECTIONS],\n
      \                            ncclGinWindow_t ginDevWins[NCCL_GIN_MAX_CONNECTIONS],\n
      \                            int winFlags, bool multiSegment, int memType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host.cc:389,1
    - Dst: struct ncclGinState*::ncclGin::deregMrSym
      Src: /src/nccl/src/gin/gin_host.cc:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - ginHostWins
    argTypes:
    - struct ncclComm*
    - void*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: ncclGinDeregister
    functionSourceFile: /src/nccl/src/gin/gin_host.cc
    functionUses: 2
    functionsReached:
    - struct ncclGinState*::ncclGin::deregMrSym
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinDeregister(struct ncclComm* comm, void* ginHostWins[NCCL_GIN_MAX_CONNECTIONS])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host.cc:399,1
    - Dst: struct ncclGinState*::ncclGin::queryLastError
      Src: /src/nccl/src/gin/gin_host.cc:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ginState
    - hasError
    argTypes:
    - struct ncclGinState*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 405
    functionName: ncclGinQueryLastError
    functionSourceFile: /src/nccl/src/gin/gin_host.cc
    functionUses: 1
    functionsReached:
    - struct ncclGinState*::ncclGin::queryLastError
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinQueryLastError(struct ncclGinState* ginState, bool*
      hasError)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamDmaBufEnable
      Src: /src/nccl/src/gin/gin_host_proxy.cc:81,1
    - Dst: ncclOsGetPageSize
      Src: /src/nccl/src/gin/gin_host_proxy.cc:84,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/gin/gin_host_proxy.cc:86,1
    - Dst: ncclParamIbDataDirect
      Src: /src/nccl/src/gin/gin_host_proxy.cc:89,1
    - Dst: pfn_cuMemGetHandleForAddressRange
      Src: /src/nccl/src/gin/gin_host_proxy.cc:90,1
    - Dst: pfn_cuMemGetHandleForAddressRange
      Src: /src/nccl/src/gin/gin_host_proxy.cc:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - addr
    - length
    - fd
    argTypes:
    - void*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: getDmaBufFd
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - ncclOsGetPageSize
    - ncclParamIbDataDirect
    - pfn_cuMemGetHandleForAddressRange
    - ALIGN_SIZE
    - ncclParamDmaBufEnable
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t getDmaBufFd(void *addr, size_t length, int *fd,\n                                bool
      forceNonDataDirect = false)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/nccl/src/gin/gin_host_proxy.cc:115,1
    - Dst: WARN
      Src: /src/nccl/src/gin/gin_host_proxy.cc:118,1
    - Dst: TRACE
      Src: /src/nccl/src/gin/gin_host_proxy.cc:122,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/gin/gin_host_proxy.cc:131,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/gin/gin_host_proxy.cc:132,1
    - Dst: TRACE
      Src: /src/nccl/src/gin/gin_host_proxy.cc:134,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/gin/gin_host_proxy.cc:142,1
    - Dst: TRACE
      Src: /src/nccl/src/gin/gin_host_proxy.cc:144,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - collComm
    - ctx
    - hostGpuCtx
    argTypes:
    - void*
    - struct ginProxyCtx*
    - struct ginProxyHostGpuCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 150
    functionName: proxyGinPollCompletions
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - COMPILER_ATOMIC_STORE
    - test
    - COMPILER_ATOMIC_LOAD
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t proxyGinPollCompletions(void *collComm,\n                                            struct
      ginProxyCtx *ctx,\n                                            struct ginProxyHostGpuCtx
      *hostGpuCtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - gfd
    argTypes:
    - ncclGinProxyGfd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: extractSignalVal
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t extractSignalVal(ncclGinProxyGfd_t *gfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gfd
    argTypes:
    - ncclGinProxyGfd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: extractOp
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclGinProxyOp_t
    signature: ncclGinProxyOp_t extractOp(ncclGinProxyGfd_t *gfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD_DEST
      Src: /src/nccl/src/gin/gin_host_proxy.cc:168,1
    - Dst: COMPILER_ATOMIC_LOAD_DEST
      Src: /src/nccl/src/gin/gin_host_proxy.cc:178,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/gin/gin_host_proxy.cc:186,1
    - Dst: extractOp
      Src: /src/nccl/src/gin/gin_host_proxy.cc:192,1
    - Dst: TRACE
      Src: /src/nccl/src/gin/gin_host_proxy.cc:197,1
    - Dst: extractOp
      Src: /src/nccl/src/gin/gin_host_proxy.cc:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - hostGpuCtx
    - targetRank
    - gfd
    - state
    argTypes:
    - struct ginProxyCtx*
    - ginProxyHostGpuCtx*
    - int
    - ncclGinProxyGfd_t*
    - struct ginProxyGfdState**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 212
    functionName: proxyGinPollGfd
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_LOAD_DEST
    - TRACE
    - COMPILER_ATOMIC_STORE
    - extractOp
    linkageType: ''
    returnType: int
    signature: "int proxyGinPollGfd(struct ginProxyCtx *ctx, ginProxyHostGpuCtx *hostGpuCtx,
      int targetRank,\n                           ncclGinProxyGfd_t *gfd, struct ginProxyGfdState
      **state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extractOp
      Src: /src/nccl/src/gin/gin_host_proxy.cc:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - gfd
    argTypes:
    - ncclGinProxyGfd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: mapGfdOpToSignalOp
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - extractOp
    linkageType: ''
    returnType: int
    signature: int mapGfdOpToSignalOp(ncclGinProxyGfd_t *gfd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: extractOp
      Src: /src/nccl/src/gin/gin_host_proxy.cc:234,1
    - Dst: extractSignalVal
      Src: /src/nccl/src/gin/gin_host_proxy.cc:237,1
    - Dst: mapGfdOpToSignalOp
      Src: /src/nccl/src/gin/gin_host_proxy.cc:238,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:239,1
    - Dst: iputSignal
      Src: /src/nccl/src/gin/gin_host_proxy.cc:239,1
    - Dst: extractOp
      Src: /src/nccl/src/gin/gin_host_proxy.cc:245,1
    - Dst: WARN
      Src: /src/nccl/src/gin/gin_host_proxy.cc:252,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:255,1
    - Dst: iget
      Src: /src/nccl/src/gin/gin_host_proxy.cc:255,1
    - Dst: extractOp
      Src: /src/nccl/src/gin/gin_host_proxy.cc:260,1
    - Dst: WARN
      Src: /src/nccl/src/gin/gin_host_proxy.cc:262,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:265,1
    - Dst: iflush
      Src: /src/nccl/src/gin/gin_host_proxy.cc:265,1
    - Dst: extractOp
      Src: /src/nccl/src/gin/gin_host_proxy.cc:275,1
    - Dst: extractOp
      Src: /src/nccl/src/gin/gin_host_proxy.cc:292,1
    - Dst: mapGfdOpToSignalOp
      Src: /src/nccl/src/gin/gin_host_proxy.cc:295,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:298,1
    - Dst: iput
      Src: /src/nccl/src/gin/gin_host_proxy.cc:298,1
    - Dst: extractSignalVal
      Src: /src/nccl/src/gin/gin_host_proxy.cc:302,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:305,1
    - Dst: iputSignal
      Src: /src/nccl/src/gin/gin_host_proxy.cc:305,1
    - Dst: assert
      Src: /src/nccl/src/gin/gin_host_proxy.cc:312,1
    - Dst: TRACE
      Src: /src/nccl/src/gin/gin_host_proxy.cc:314,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 5
    argNames:
    - ctx
    - hostGpuCtx
    - targetRank
    - gfd
    - state
    argTypes:
    - struct ginProxyCtx*
    - struct ginProxyHostGpuCtx*
    - int
    - ncclGinProxyGfd_t*
    - struct ginProxyGfdState*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/nccl/src/gin/gin_host_proxy.cc
    constantsTouched: []
    func_position:
      end: 317
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 317
    functionName: proxyGinProcessGfd
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - extractOp
    - assert
    - extractSignalVal
    - mapGfdOpToSignalOp
    - iflush
    - iput
    - iget
    - iputSignal
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t proxyGinProcessGfd(struct ginProxyCtx *ctx,\n                                       struct
      ginProxyHostGpuCtx *hostGpuCtx, int targetRank,\n                                       ncclGinProxyGfd_t
      *gfd, struct ginProxyGfdState *state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:327,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:327,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host_proxy.cc:329,1
    - Dst: listen
      Src: /src/nccl/src/gin/gin_host_proxy.cc:329,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - dev
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 335
    functionName: ncclGinProxyListen
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - listen
    - free
    - NCCLCHECKGOTO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinProxyListen(void* ctx, int dev, void* handle, void**
      listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:339,1
    - Dst: closeListen
      Src: /src/nccl/src/gin/gin_host_proxy.cc:339,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - listenComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 342
    functionName: ncclGinProxyCloseListen
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - free
    - closeListen
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinProxyCloseListen(void* listenComm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:355,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:355,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host_proxy.cc:357,1
    - Dst: getProperties
      Src: /src/nccl/src/gin/gin_host_proxy.cc:357,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/gin/gin_host_proxy.cc:358,1
    - Dst: connect
      Src: /src/nccl/src/gin/gin_host_proxy.cc:358,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - handles
    - nranks
    - rank
    - listenComm
    - collComm
    argTypes:
    - void*
    - void*[]
    - int
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 364
    functionName: ncclGinProxyConnect
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - free
    - NCCLCHECKGOTO
    - connect
    - getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinProxyConnect(void* ctx, void* handles[], int nranks,
      int rank,\n                                 void* listenComm, void** collComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:368,1
    - Dst: closeColl
      Src: /src/nccl/src/gin/gin_host_proxy.cc:368,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - collComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 371
    functionName: ncclGinProxyCloseColl
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - free
    - closeColl
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinProxyCloseColl(void* collComm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:379,1
    - Dst: regMrSym
      Src: /src/nccl/src/gin/gin_host_proxy.cc:379,1
    - Dst: ncclParamDmaBufEnable
      Src: /src/nccl/src/gin/gin_host_proxy.cc:382,1
    - Dst: getDmaBufFd
      Src: /src/nccl/src/gin/gin_host_proxy.cc:385,1
    - Dst: regMrSymDmaBuf
      Src: /src/nccl/src/gin/gin_host_proxy.cc:387,1
    - Dst: close
      Src: /src/nccl/src/gin/gin_host_proxy.cc:389,1
    - Dst: getDmaBufFd
      Src: /src/nccl/src/gin/gin_host_proxy.cc:395,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:397,1
    - Dst: regMrSymDmaBuf
      Src: /src/nccl/src/gin/gin_host_proxy.cc:397,1
    - Dst: close
      Src: /src/nccl/src/gin/gin_host_proxy.cc:399,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:405,1
    - Dst: regMrSym
      Src: /src/nccl/src/gin/gin_host_proxy.cc:405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 7
    argNames:
    - ginCtx
    - addr
    - size
    - type
    - mrFlags
    - mhandle
    - ginHandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 412
    functionName: ncclGinProxyRegMrSym
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - regMrSym
    - close
    - regMrSymDmaBuf
    - getDmaBufFd
    - ncclParamDmaBufEnable
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinProxyRegMrSym(void* ginCtx, void* addr, size_t
      size, int type,\n                                         uint64_t mrFlags,
      void** mhandle, void **ginHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:417,1
    - Dst: deregMrSym
      Src: /src/nccl/src/gin/gin_host_proxy.cc:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - collComm
    - mhandle
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 419
    functionName: ncclGinProxyDeregMrSym
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - deregMrSym
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinProxyDeregMrSym(void* collComm, void* mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 422
    functionName: isPowerOfTwo
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t isPowerOfTwo(uint64_t n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/gin/gin_host_proxy.cc:430,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:433,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:433,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:439,1
    - Dst: createContext
      Src: /src/nccl/src/gin/gin_host_proxy.cc:439,1
    - Dst: ncclParamGinProxyQueueSize
      Src: /src/nccl/src/gin/gin_host_proxy.cc:442,1
    - Dst: INFO
      Src: /src/nccl/src/gin/gin_host_proxy.cc:448,1
    - Dst: INFO
      Src: /src/nccl/src/gin/gin_host_proxy.cc:455,1
    - Dst: isPowerOfTwo
      Src: /src/nccl/src/gin/gin_host_proxy.cc:459,1
    - Dst: INFO
      Src: /src/nccl/src/gin/gin_host_proxy.cc:460,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:468,1
    - Dst: allocMemCPUAccessible
      Src: /src/nccl/src/gin/gin_host_proxy.cc:468,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:479,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:479,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:481,1
    - Dst: cudaMemset
      Src: /src/nccl/src/gin/gin_host_proxy.cc:481,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:482,1
    - Dst: ncclGinProxyRegMrSym
      Src: /src/nccl/src/gin/gin_host_proxy.cc:482,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:488,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:488,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:489,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:489,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:495,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:495,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:496,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:496,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:497,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:497,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:498,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:498,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:499,1
    - Dst: ncclGinProxyRegMrSym
      Src: /src/nccl/src/gin/gin_host_proxy.cc:499,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:502,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:502,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:513,1
    - Dst: allocMemCPUAccessible
      Src: /src/nccl/src/gin/gin_host_proxy.cc:513,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:515,1
    - Dst: allocMemCPUAccessible
      Src: /src/nccl/src/gin/gin_host_proxy.cc:515,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:520,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:520,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:522,1
    - Dst: ncclCudaMemcpy
      Src: /src/nccl/src/gin/gin_host_proxy.cc:522,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:525,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/gin/gin_host_proxy.cc:525,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:537,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 64
    argCount: 4
    argNames:
    - collComm
    - config
    - outGinCtx
    - outDevHandle
    argTypes:
    - void*
    - ncclGinConfig_t*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 540
    functionName: ncclGinProxyCreateContext
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - isPowerOfTwo
    - ncclCalloc
    - INFO
    - createContext
    - ncclCudaCalloc
    - cudaMemset
    - ncclGinProxyRegMrSym
    - free
    - ncclCudaMemcpy
    - allocMemCPUAccessible
    - CUDACHECK
    - ncclCuMemAlloc
    - ncclParamGinProxyQueueSize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinProxyCreateContext(void* collComm, ncclGinConfig_t*
      config,\n                                       void **outGinCtx, ncclNetDeviceHandle_t
      **outDevHandle)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:546,1
    - Dst: destroyContext
      Src: /src/nccl/src/gin/gin_host_proxy.cc:546,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:551,1
    - Dst: freeMemCPUAccessible
      Src: /src/nccl/src/gin/gin_host_proxy.cc:551,1
    - Dst: deregMrSym
      Src: /src/nccl/src/gin/gin_host_proxy.cc:555,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:556,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/gin/gin_host_proxy.cc:556,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:562,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:563,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:564,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/gin/gin_host_proxy.cc:564,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:565,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:566,1
    - Dst: deregMrSym
      Src: /src/nccl/src/gin/gin_host_proxy.cc:568,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:569,1
    - Dst: freeMemCPUAccessible
      Src: /src/nccl/src/gin/gin_host_proxy.cc:569,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:571,1
    - Dst: freeMemCPUAccessible
      Src: /src/nccl/src/gin/gin_host_proxy.cc:571,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:573,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:578,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/gin/gin_host_proxy.cc:578,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:579,1
    - Dst: free
      Src: /src/nccl/src/gin/gin_host_proxy.cc:582,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 1
    argNames:
    - ginCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 586
    functionName: ncclGinProxyDestroyContext
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - freeMemCPUAccessible
    - deregMrSym
    - ncclCudaFree
    - destroyContext
    - free
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinProxyDestroyContext(void *ginCtx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:593,1
    - Dst: proxyGinPollCompletions
      Src: /src/nccl/src/gin/gin_host_proxy.cc:593,1
    - Dst: proxyGinPollGfd
      Src: /src/nccl/src/gin/gin_host_proxy.cc:598,1
    - Dst: proxyGinProcessGfd
      Src: /src/nccl/src/gin/gin_host_proxy.cc:600,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:602,1
    - Dst: ginProgress
      Src: /src/nccl/src/gin/gin_host_proxy.cc:605,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ginCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 588
    functionDepth: 3
    functionLinenumber: 588
    functionLinenumberEnd: 609
    functionName: ncclGinProxyProgress
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - proxyGinPollCompletions
    - proxyGinProcessGfd
    - ginProgress
    - proxyGinPollGfd
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinProxyProgress(void *ginCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/gin/gin_host_proxy.cc:615,1
    - Dst: queryLastError
      Src: /src/nccl/src/gin/gin_host_proxy.cc:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ginCtx
    - hasError
    argTypes:
    - void*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 617
    functionName: ncclGinProxyQueryLastError
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 0
    functionsReached:
    - queryLastError
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinProxyQueryLastError(void *ginCtx, bool *hasError)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - proxyGin
    argTypes:
    - ncclGin_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 657
    functionName: ncclGinProxyInit
    functionSourceFile: /src/nccl/src/gin/gin_host_proxy.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinProxyInit(ncclGin_t** proxyGin)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - redOp
    - devRedOp
    argTypes:
    - ncclRedOp_t
    - ncclDevRedOp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: symkRedOp
    functionSourceFile: /src/nccl/src/scheduler/symmetric_sched.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclDevRedOp_t
    signature: ncclDevRedOp_t symkRedOp(ncclRedOp_t redOp, ncclDevRedOp_t devRedOp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: symkRedOp
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:31,1
    - Dst: __float2half
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - comm
    - task
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 62
    functionName: convertCollTaskToSymmetricTask
    functionSourceFile: /src/nccl/src/scheduler/symmetric_sched.cc
    functionUses: 0
    functionsReached:
    - __float2half
    - symkRedOp
    linkageType: ''
    returnType: void
    signature: void convertCollTaskToSymmetricTask(struct ncclComm* comm,struct ncclTaskColl*
      task)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:73,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:76,1
    - Dst: ncclDevrInitOnce
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:76,1
    - Dst: symkRedOp
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:81,1
    - Dst: ncclSymkAvailable
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:82,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:85,1
    - Dst: ncclDevrFindWindow
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:85,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:86,1
    - Dst: ncclDevrFindWindow
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:86,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:87,1
    - Dst: ncclGetSymRegType
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:87,1
    - Dst: assert
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:109,1
    - Dst: calcArgsSize
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:109,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:122,1
    - Dst: symkRedOp
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:124,1
    - Dst: alignUp
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:129,1
    - Dst: calcArgsSize
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:132,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:138,1
    - Dst: ncclSymkPickKernel
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:138,1
    - Dst: ncclSymkLLKernelMask
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:142,1
    - Dst: ncclParamSingleProcMemRegEnable
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:143,1
    - Dst: ncclParamSymNoWinEnable
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:158,1
    - Dst: ncclNvlsSupported
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:162,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:163,1
    - Dst: ncclGetCollNetSupport
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:163,1
    - Dst: NOWARN
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:164,1
    - Dst: ncclGetAlgoInfo
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:164,1
    - Dst: ncclDevrWindowHasSysmemSegment
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:173,1
    - Dst: ncclDevrWindowHasSysmemSegment
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:173,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:198,1
    - Dst: ncclSymkInitOnce
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:198,1
    - Dst: convertCollTaskToSymmetricTask
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:208,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:209,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 100
    argCount: 4
    argNames:
    - comm
    - task
    - symTaskQueue
    - remainTasksHead
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - struct ncclIntruQueue<struct ncclTaskColl, &ncclTaskColl::next>*
    - struct ncclTaskColl**
    assertStmts:
    - condition: (comm->workArgsBytes >= ncclSymkDevWorkArgs::calcArgsSize(MAXCHANNELS,
        1))
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/nccl/src/scheduler/symmetric_sched.cc
    constantsTouched: []
    func_position:
      end: 218
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 218
    functionName: ncclMakeSymmetricTaskList
    functionSourceFile: /src/nccl/src/scheduler/symmetric_sched.cc
    functionUses: 1
    functionsReached:
    - ncclGetSymRegType
    - ncclDevrInitOnce
    - ncclTypeSize
    - ncclSymkInitOnce
    - assert
    - ncclGetCollNetSupport
    - alignUp
    - ncclSymkPickKernel
    - calcArgsSize
    - ncclIntruQueueEnqueue
    - ncclSymkAvailable
    - ncclDevrFindWindow
    - convertCollTaskToSymmetricTask
    - ncclGetAlgoInfo
    - memset
    - ncclSymkLLKernelMask
    - ncclNvlsSupported
    - symkRedOp
    - ncclParamSymNoWinEnable
    - NCCLCHECK
    - NOWARN
    - ncclDevrWindowHasSysmemSegment
    - ncclParamSingleProcMemRegEnable
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclMakeSymmetricTaskList(struct ncclComm* comm, struct
      ncclTaskColl* task, struct ncclIntruQueue<struct ncclTaskColl, &ncclTaskColl::next>*
      symTaskQueue, struct ncclTaskColl** remainTasksHead)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:221,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:229,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:236,1
    - Dst: ncclSymkKernelIdToString
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:237,1
    - Dst: ncclSymkGetKernelIndex
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:244,1
    - Dst: ncclSymkDynamicSmemKernelMask
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:247,1
    - Dst: alignUp
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:251,1
    - Dst: calcArgsSize
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:257,1
    - Dst: calloc
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:258,1
    - Dst: DIVUP
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:260,1
    - Dst: DIVUP
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:260,1
    - Dst: struct ncclSymkDevWorkArgs*::getWorkRange
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:261,1
    - Dst: struct ncclSymkDevWorkArgs*::getWorks
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:262,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:266,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:271,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:273,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:276,1
    - Dst: ncclSymkMakeDevWork
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:276,1
    - Dst: DIVUP
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:278,1
    - Dst: assert
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:287,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:289,1
    - Dst: assert
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:295,1
    - Dst: DIVUP
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:316,1
    - Dst: memcpy
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:322,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:328,1
    - Dst: WARN
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:331,1
    - Dst: memcpy
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:338,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:339,1
    - Dst: INFO
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:345,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/scheduler/symmetric_sched.cc:346,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 99
    argCount: 3
    argNames:
    - comm
    - symTaskQueue
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclIntruQueue<struct ncclTaskColl, &ncclTaskColl::next>*
    - struct ncclKernelPlan*
    assertStmts:
    - condition: (devWork.nChannels > 0)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/nccl/src/scheduler/symmetric_sched.cc
    - condition: (cellLeft == taskCell)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/nccl/src/scheduler/symmetric_sched.cc
    constantsTouched: []
    func_position:
      end: 353
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 353
    functionName: ncclSymmetricTaskScheduler
    functionSourceFile: /src/nccl/src/scheduler/symmetric_sched.cc
    functionUses: 1
    functionsReached:
    - calloc
    - ncclIntruQueueEmpty
    - ncclTypeSize
    - memcpy
    - assert
    - NCCLCHECKGOTO
    - alignUp
    - WARN
    - calcArgsSize
    - ncclFuncToString
    - struct ncclSymkDevWorkArgs*::getWorks
    - DIVUP
    - ncclIntruQueueHead
    - ncclIntruQueueDequeue
    - INFO
    - ncclMemoryPoolFree
    - ncclSymkGetKernelIndex
    - struct ncclSymkDevWorkArgs*::getWorkRange
    - ncclSymkDynamicSmemKernelMask
    - ncclSymkMakeDevWork
    - ncclSymkKernelIdToString
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSymmetricTaskScheduler(struct ncclComm* comm, struct
      ncclIntruQueue<struct ncclTaskColl, &ncclTaskColl::next>* symTaskQueue, struct
      ncclKernelPlan* plan)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ncclMaxDevWorkBatchBytes
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:20,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:30,1
    - Dst: ncclTestBudget
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:34,1
    - Dst: DIVUP
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:34,1
    - Dst: std::max
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:38,1
    - Dst: memset
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:48,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:54,1
    - Dst: ncclGetAlgoInfo
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:54,1
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:64,1
    - Dst: std::max
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:70,1
    - Dst: ncclDevFuncId
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:74,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:100,1
    - Dst: min
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:108,1
    - Dst: std::max
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:109,1
    - Dst: divUp
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:123,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:124,1
    - Dst: alignUp
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:124,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:125,1
    - Dst: alignUp
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:125,1
    - Dst: ncclMemoryStackAllocInlineArray
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:130,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:133,1
    - Dst: divUp
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:140,1
    - Dst: std::max
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:143,1
    - Dst: std::max
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:147,1
    - Dst: ncclAddWorkBatchToPlan
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:155,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:196,1
    - Dst: ncclAddProxyOpIfNeeded
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:196,1
    - Dst: ncclIntruQueueTryDequeue
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:202,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/scheduler/allgatherv_sched.cc:205,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 123
    argCount: 3
    argNames:
    - comm
    - plan
    - budget
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - struct ncclKernelPlanBudget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 14
    functionDepth: 5
    functionLinenumber: 14
    functionLinenumberEnd: 211
    functionName: ncclScheduleBcastTasksToPlan
    functionSourceFile: /src/nccl/src/scheduler/allgatherv_sched.cc
    functionUses: 1
    functionsReached:
    - ncclAddWorkBatchToPlan
    - divUp
    - ncclProtoGrainSize
    - ncclMemoryStackAllocInlineArray
    - ncclAddProxyOpIfNeeded
    - alignUp
    - ncclIntruQueueEnqueue
    - DIVUP
    - ncclIntruQueueHead
    - std::min<size_t>
    - ncclGetAlgoInfo
    - std::max
    - ncclMaxDevWorkBatchBytes
    - min
    - memset
    - NCCLCHECK
    - ncclDevFuncId
    - ncclIntruQueueTryDequeue
    - ncclTestBudget
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclScheduleBcastTasksToPlan(\n    struct ncclComm* comm,
      struct ncclKernelPlan* plan, struct ncclKernelPlanBudget* budget\n)"
  - 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: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    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:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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:61,1
    - Dst: gdr_close
      Src: /src/nccl/src/include/gdrwrap.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - g
    argTypes:
    - gdr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: wrap_gdr_close
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - gdr_close
    - GDRCHECK
    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:63,1
    - Dst: gdr_pin_buffer
      Src: /src/nccl/src/include/gdrwrap.h:63,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: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: wrap_gdr_pin_buffer
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - GDRCHECK
    - gdr_pin_buffer
    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: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: ncclGdrPinV2Available
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclGdrPinV2Available(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclGdrPinV2Available
      Src: /src/nccl/src/include/gdrwrap.h:75,1
    - Dst: WARN
      Src: /src/nccl/src/include/gdrwrap.h:76,1
    - Dst: GDRCHECK
      Src: /src/nccl/src/include/gdrwrap.h:79,1
    - Dst: gdr_pin_buffer_v2
      Src: /src/nccl/src/include/gdrwrap.h:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - g
    - addr
    - size
    - flags
    - handle
    argTypes:
    - gdr_t
    - unsigned long
    - size_t
    - uint32_t
    - gdr_mh_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: wrap_gdr_pin_buffer_v2
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - ncclGdrPinV2Available
    - WARN
    - GDRCHECK
    - gdr_pin_buffer_v2
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_pin_buffer_v2(gdr_t g, unsigned long addr, size_t
      size, uint32_t flags, gdr_mh_t* handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GDRCHECK
      Src: /src/nccl/src/include/gdrwrap.h:83,1
    - Dst: gdr_unpin_buffer
      Src: /src/nccl/src/include/gdrwrap.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - g
    - handle
    argTypes:
    - gdr_t
    - gdr_mh_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: wrap_gdr_unpin_buffer
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - gdr_unpin_buffer
    - GDRCHECK
    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:87,1
    - Dst: gdr_get_info
      Src: /src/nccl/src/include/gdrwrap.h:87,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: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    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: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    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: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    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:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - major
    - minor
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - g
    - major
    - minor
    argTypes:
    - gdr_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    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:107,1
    - Dst: gdr_copy_to_mapping
      Src: /src/nccl/src/include/gdrwrap.h:107,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: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: wrap_gdr_copy_to_mapping
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - gdr_copy_to_mapping
    - GDRCHECK
    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:111,1
    - Dst: gdr_copy_from_mapping
      Src: /src/nccl/src/include/gdrwrap.h:111,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: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    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:186,1
    - Dst: wrap_gdr_open
      Src: /src/nccl/src/include/gdrwrap.h:187,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/gdrwrap.h:193,1
    - Dst: wrap_gdr_runtime_get_version
      Src: /src/nccl/src/include/gdrwrap.h:193,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/gdrwrap.h:196,1
    - Dst: wrap_gdr_driver_get_version
      Src: /src/nccl/src/include/gdrwrap.h:196,1
    - Dst: INFO
      Src: /src/nccl/src/include/gdrwrap.h:203,1
    - Dst: wrap_gdr_close
      Src: /src/nccl/src/include/gdrwrap.h:208,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 210
    functionName: ncclGdrInit
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 1
    functionsReached:
    - INFO
    - wrap_gdr_open
    - wrap_gdr_driver_get_version
    - wrap_gdr_close
    - wrap_gdr_runtime_get_version
    - NCCLCHECKGOTO
    - wrap_gdr_symbols
    linkageType: ''
    returnType: gdr_t
    signature: gdr_t ncclGdrInit()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/gdrwrap.h:220,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/include/gdrwrap.h:223,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:225,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/include/gdrwrap.h:225,1
    - Dst: ncclGdrPinV2Available
      Src: /src/nccl/src/include/gdrwrap.h:229,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:231,1
    - Dst: wrap_gdr_pin_buffer_v2
      Src: /src/nccl/src/include/gdrwrap.h:231,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:234,1
    - Dst: wrap_gdr_pin_buffer
      Src: /src/nccl/src/include/gdrwrap.h:234,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:237,1
    - Dst: wrap_gdr_map
      Src: /src/nccl/src/include/gdrwrap.h:237,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:240,1
    - Dst: wrap_gdr_get_info
      Src: /src/nccl/src/include/gdrwrap.h:240,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:246,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/include/gdrwrap.h:246,1
    - Dst: TRACE
      Src: /src/nccl/src/include/gdrwrap.h:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - ptr
    - devPtr
    - nelem
    - gdrHandle
    - manager
    argTypes:
    - T**
    - T**
    - size_t
    - void**
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 261
    functionName: ncclGdrCudaCalloc
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 5
    functionsReached:
    - TRACE
    - ncclCalloc
    - wrap_gdr_pin_buffer_v2
    - ncclCudaCalloc
    - ncclSizeOfT
    - wrap_gdr_get_info
    - wrap_gdr_pin_buffer
    - ncclGdrPinV2Available
    - ALIGN_SIZE
    - wrap_gdr_map
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGdrCudaCalloc(T** ptr, T** devPtr, size_t nelem, void**
      gdrHandle, struct ncclMemManager* manager, uint32_t pinFlags = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:266,1
    - Dst: wrap_gdr_copy_to_mapping
      Src: /src/nccl/src/include/gdrwrap.h:266,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/gdrwrap.h:266,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: 268
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: ncclGdrCudaCopy
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - ncclSizeOfT
    - wrap_gdr_copy_to_mapping
    - 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:272,1
    - Dst: wrap_gdr_unmap
      Src: /src/nccl/src/include/gdrwrap.h:272,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:273,1
    - Dst: wrap_gdr_unpin_buffer
      Src: /src/nccl/src/include/gdrwrap.h:273,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:274,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/include/gdrwrap.h:274,1
    - Dst: free
      Src: /src/nccl/src/include/gdrwrap.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - gdrHandle
    - manager
    argTypes:
    - void*
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: ncclGdrCudaFree
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 5
    functionsReached:
    - wrap_gdr_unmap
    - ncclCudaFree
    - free
    - wrap_gdr_unpin_buffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGdrCudaFree(void* gdrHandle, struct ncclMemManager*
      manager)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:285,1
    - Dst: ncclGdrCudaCalloc
      Src: /src/nccl/src/include/gdrwrap.h:285,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:287,1
    - Dst: ncclCuMemHostAlloc
      Src: /src/nccl/src/include/gdrwrap.h:287,1
    - Dst: memset
      Src: /src/nccl/src/include/gdrwrap.h:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ptr
    - devPtr
    - nelem
    - host_flags
    - gdrHandle
    - manager
    argTypes:
    - T**
    - T**
    - size_t
    - int
    - void**
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 293
    functionName: allocMemCPUAccessible
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 1
    functionsReached:
    - ncclCuMemHostAlloc
    - memset
    - ncclGdrCudaCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t allocMemCPUAccessible(T **ptr, T **devPtr, size_t nelem,
      int host_flags,\n                                          void **gdrHandle,
      struct ncclMemManager* manager, bool forceHost = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:299,1
    - Dst: ncclGdrCudaFree
      Src: /src/nccl/src/include/gdrwrap.h:299,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:301,1
    - Dst: ncclCuMemHostFree
      Src: /src/nccl/src/include/gdrwrap.h:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - gdrHandle
    - manager
    argTypes:
    - T*
    - void*
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: freeMemCPUAccessible
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 1
    functionsReached:
    - ncclGdrCudaFree
    - ncclCuMemHostFree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t freeMemCPUAccessible(T *ptr, void *gdrHandle, struct ncclMemManager*
      manager)
  - 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: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    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: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ncclSizeOfT
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ncclSizeOfT<void>()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Function
      Src: /src/nccl/src/include/alloc.h:43,1
    - Dst: std::forward<Args>
      Src: /src/nccl/src/include/alloc.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: operator()(Args &&...args) const
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - Function
    linkageType: ''
    returnType: auto
    signature: auto operator()(Args &&...args) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:65,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/include/alloc.h:65,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:66,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/include/alloc.h:66,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:67,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/include/alloc.h:67,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:73,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/include/alloc.h:73,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/include/alloc.h:74,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:76,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/include/alloc.h:76,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:78,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/include/alloc.h:78,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:80,1
    - Dst: cuMemMap
      Src: /src/nccl/src/include/alloc.h:80,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:85,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/include/alloc.h:85,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:91,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/include/alloc.h:91,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - ptr
    - handlep
    - size
    argTypes:
    - void**
    - CUmemGenericAllocationHandle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 96
    functionName: ncclCuMemHostAlloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached:
    - INFO
    - cudaGetDevice
    - cuMemGetAllocationGranularity
    - cuMemCreate
    - cuDeviceGetAttribute
    - cuMemMap
    - cuDeviceGet
    - cuMemAddressReserve
    - ALIGN_SIZE
    - cuMemSetAccess
    - CUDACHECK
    - CUCHECK
    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:103,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/include/alloc.h:103,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:104,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/include/alloc.h:104,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:105,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/include/alloc.h:105,1
    - Dst: TRACE
      Src: /src/nccl/src/include/alloc.h:106,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:107,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/include/alloc.h:107,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:108,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/include/alloc.h:108,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:109,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/include/alloc.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 111
    functionName: ncclCuMemHostFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached:
    - TRACE
    - cuMemAddressFree
    - cuMemRetainAllocationHandle
    - cuMemGetAddressRange
    - 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:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - handlep
    - size
    argTypes:
    - void**
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: ncclCuMemHostAlloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    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:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: ncclCuMemHostFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    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:132,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:132,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:134,1
    - Dst: cudaHostAlloc
      Src: /src/nccl/src/include/alloc.h:134,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:134,1
    - Dst: memset
      Src: /src/nccl/src/include/alloc.h:135,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:135,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:138,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:138,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:139,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:139,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:140,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:140,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: 142
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: ncclCudaHostCallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - INFO
    - ncclSizeOfT
    - cudaThreadExchangeStreamCaptureMode
    - cudaHostAlloc
    - memset
    - CUDACHECK
    - CUDACHECKGOTO
    - WARN
    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:145,1
    - Dst: cudaFreeHost
      Src: /src/nccl/src/include/alloc.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: ncclCudaHostFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 20
    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: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: ncclCudaHostCalloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclCudaHostCalloc(...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/src/include/alloc.h:154,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:154,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:156,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:156,1
    - Dst: memset
      Src: /src/nccl/src/include/alloc.h:160,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:160,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: 166
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: ncclCallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - malloc
    - memset
    - WARN
    - ncclSizeOfT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCallocDebug(T** ptr, size_t nelem, const char *filefunc,
      int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCallocDebug
      Src: /src/nccl/src/include/alloc.h:171,1
    - Dst: reset
      Src: /src/nccl/src/include/alloc.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' ptr'
    - nelem
    - filefunc
    - line
    argTypes:
    - ncclUniquePtr<T>
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: ncclCallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 1
    functionsReached:
    - reset
    - ncclCallocDebug
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCallocDebug(ncclUniquePtr<T>& ptr, size_t nelem, const
      char *filefunc, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCallocDebug
      Src: /src/nccl/src/include/alloc.h:179,1
    - Dst: reset
      Src: /src/nccl/src/include/alloc.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' ptr'
    - nelem
    - filefunc
    - line
    argTypes:
    - ncclUniqueArrayPtr<T>
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: ncclCallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached:
    - reset
    - ncclCallocDebug
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCallocDebug(ncclUniqueArrayPtr<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: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: ncclCalloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 102
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclCalloc(...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/src/include/alloc.h:192,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:192,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:194,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:194,1
    - Dst: memcpy
      Src: /src/nccl/src/include/alloc.h:197,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:197,1
    - Dst: free
      Src: /src/nccl/src/include/alloc.h:198,1
    - Dst: memset
      Src: /src/nccl/src/include/alloc.h:199,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:199,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:201,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:201,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - ptr
    - oldNelem
    - nelem
    argTypes:
    - T**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 203
    functionName: ncclRealloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 5
    functionsReached:
    - INFO
    - ncclSizeOfT
    - memcpy
    - free
    - memset
    - malloc
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRealloc(T** ptr, size_t oldNelem, size_t nelem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:216,1
    - Dst: cuMemMap
      Src: /src/nccl/src/include/alloc.h:216,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:222,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/include/alloc.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ptr
    - size
    - handle
    - cudaDev
    argTypes:
    - void*
    - size_t
    - CUmemGenericAllocationHandle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 224
    functionName: ncclCuMemMapAndSetAccess
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 1
    functionsReached:
    - cuMemMap
    - CUCHECK
    - cuMemSetAccess
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCuMemMapAndSetAccess(void *ptr, size_t size,\n  CUmemGenericAllocationHandle
      handle,\n  int cudaDev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:232,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/include/alloc.h:232,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:233,1
    - Dst: cuMemGetAllocationPropertiesFromHandle
      Src: /src/nccl/src/include/alloc.h:233,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:234,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/include/alloc.h:234,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/include/alloc.h:235,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:237,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/include/alloc.h:237,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/alloc.h:239,1
    - Dst: ncclCuMemMapAndSetAccess
      Src: /src/nccl/src/include/alloc.h:239,1
    - Dst: TRACE
      Src: /src/nccl/src/include/alloc.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - handleIn
    - size
    argTypes:
    - void**
    - CUmemGenericAllocationHandle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 242
    functionName: ncclCuMemAllocAddr
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 1
    functionsReached:
    - cuMemGetAllocationPropertiesFromHandle
    - TRACE
    - cudaGetDevice
    - cuMemGetAllocationGranularity
    - cuMemAddressReserve
    - ALIGN_SIZE
    - CUDACHECK
    - CUCHECK
    - ncclCuMemMapAndSetAccess
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemAllocAddr(void **ptr, CUmemGenericAllocationHandle
      *handleIn, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:250,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/include/alloc.h:250,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:251,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/include/alloc.h:251,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/alloc.h:257,1
    - Dst: ncclMemUntrack
      Src: /src/nccl/src/include/alloc.h:257,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:260,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/include/alloc.h:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ptr
    - manager
    argTypes:
    - void*
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 262
    functionName: ncclCuMemFreeAddr
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 3
    functionsReached:
    - ncclMemUntrack
    - cuMemAddressFree
    - cuMemGetAddressRange
    - cuMemUnmap
    - CUCHECK
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemFreeAddr(void *ptr, struct ncclMemManager* manager,
      int numSegments = 1)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:275,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/include/alloc.h:275,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:276,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/include/alloc.h:276,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:282,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/include/alloc.h:282,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:284,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/include/alloc.h:284,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/include/alloc.h:285,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:287,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/include/alloc.h:287,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:289,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/include/alloc.h:289,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/alloc.h:291,1
    - Dst: ncclCuMemMapAndSetAccess
      Src: /src/nccl/src/include/alloc.h:291,1
    - Dst: TRACE
      Src: /src/nccl/src/include/alloc.h:293,1
    - Dst: ncclMemTrack
      Src: /src/nccl/src/include/alloc.h:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - ptr
    - handlep
    - type
    - size
    - manager
    argTypes:
    - void**
    - CUmemGenericAllocationHandle*
    - CUmemAllocationHandleType
    - size_t
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 299
    functionName: ncclCuMemAlloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 6
    functionsReached:
    - TRACE
    - cudaGetDevice
    - cuMemGetAllocationGranularity
    - cuMemCreate
    - cuDeviceGetAttribute
    - cuDeviceGet
    - cuMemAddressReserve
    - ALIGN_SIZE
    - CUDACHECK
    - ncclMemTrack
    - CUCHECK
    - ncclCuMemMapAndSetAccess
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCuMemAlloc(void **ptr, CUmemGenericAllocationHandle
      *handlep,\n                                          CUmemAllocationHandleType
      type, size_t size,\n                                          struct ncclMemManager*
      manager,\n                                          ncclMemType_t memType =
      ncclMemPersist)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:308,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/include/alloc.h:308,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:309,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/include/alloc.h:309,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:310,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/include/alloc.h:310,1
    - Dst: TRACE
      Src: /src/nccl/src/include/alloc.h:311,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:312,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/include/alloc.h:312,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:313,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/include/alloc.h:313,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/alloc.h:319,1
    - Dst: ncclMemUntrack
      Src: /src/nccl/src/include/alloc.h:319,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:322,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/include/alloc.h:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ptr
    - manager
    argTypes:
    - void*
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 324
    functionName: ncclCuMemFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 7
    functionsReached:
    - TRACE
    - ncclMemUntrack
    - cuMemAddressFree
    - cuMemRetainAllocationHandle
    - cuMemGetAddressRange
    - cuMemRelease
    - cuMemUnmap
    - CUCHECK
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemFree(void *ptr, struct ncclMemManager* manager,
      int numSegments = 1)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:342,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/include/alloc.h:342,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:347,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/include/alloc.h:347,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:348,1
    - Dst: cuMemGetAllocationPropertiesFromHandle
      Src: /src/nccl/src/include/alloc.h:348,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:352,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/include/alloc.h:352,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 5
    argNames:
    - userBuff
    - userBuffSize
    - mappedPtrBase
    - totalMappedBufferSize
    - numSegments
    argTypes:
    - CUdeviceptr
    - size_t
    - CUdeviceptr*
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 374
    functionName: ncclCuMemGetAddressRange
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 6
    functionsReached:
    - cuMemRetainAllocationHandle
    - cuMemGetAddressRange
    - cuMemRelease
    - cuMemGetAllocationPropertiesFromHandle
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemGetAddressRange(CUdeviceptr userBuff, size_t
      userBuffSize, CUdeviceptr* mappedPtrBase, size_t* totalMappedBufferSize, int*
      numSegments, bool* hasSysmemSegment = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ptr
    - handlep
    - type
    - size
    - manager
    argTypes:
    - void**
    - void*
    - int
    - size_t
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: ncclCuMemAlloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 6
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCuMemAlloc(void **ptr, void *handlep, int type, size_t
      size,\n                                          struct ncclMemManager* manager,
      ncclMemType_t memType = ncclMemScratch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - manager
    argTypes:
    - void*
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: ncclCuMemFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 7
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemFree(void *ptr, struct ncclMemManager* manager,
      int numSegments = 1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - handleIn
    - size
    argTypes:
    - void**
    - CUmemGenericAllocationHandle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 393
    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:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - manager
    argTypes:
    - void*
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: ncclCuMemFreeAddr
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 3
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemFreeAddr(void *ptr, struct ncclMemManager* manager,
      int numSegments = 1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - userBuff
    - userBuffSize
    - mappedPtrBase
    - totalMappedBufferSize
    - numSegments
    argTypes:
    - CUdeviceptr
    - size_t
    - CUdeviceptr*
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: ncclCuMemGetAddressRange
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 6
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemGetAddressRange(CUdeviceptr userBuff, size_t
      userBuffSize, CUdeviceptr* mappedPtrBase, size_t* totalMappedBufferSize, int*
      numSegments)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:413,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:413,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/include/alloc.h:415,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/alloc.h:416,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/include/alloc.h:416,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:416,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:418,1
    - Dst: cudaMalloc
      Src: /src/nccl/src/include/alloc.h:418,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:418,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:422,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:422,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:423,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:423,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:424,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ptr
    - nelem
    - filefunc
    - line
    - manager
    argTypes:
    - T**
    - size_t
    - char*
    - int
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 408
    functionDepth: 4
    functionLinenumber: 408
    functionLinenumberEnd: 426
    functionName: ncclCudaMallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - ncclCuMemEnable
    - ncclSizeOfT
    - cudaThreadExchangeStreamCaptureMode
    - NCCLCHECKGOTO
    - CUDACHECK
    - CUDACHECKGOTO
    - cudaMalloc
    - ncclCuMemAlloc
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCudaMallocDebug(T** ptr, size_t nelem, const char
      *filefunc, int line,\n                                  struct ncclMemManager*
      manager, ncclMemType_t memType = ncclMemPersist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - nelem
    - ','
    - manager
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 428
    functionName: ncclCudaMalloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclCudaMalloc(ptr, nelem, manager, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:435,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:435,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:439,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/include/alloc.h:439,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/include/alloc.h:440,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/alloc.h:441,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/include/alloc.h:441,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:441,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:443,1
    - Dst: cudaMalloc
      Src: /src/nccl/src/include/alloc.h:443,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:443,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:445,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/src/include/alloc.h:445,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:445,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:446,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/include/alloc.h:446,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:447,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/include/alloc.h:447,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:450,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:450,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:451,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:451,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:452,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - ptr
    - nelem
    - filefunc
    - line
    - manager
    argTypes:
    - T**
    - size_t
    - char*
    - int
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 430
    functionDepth: 4
    functionLinenumber: 430
    functionLinenumberEnd: 454
    functionName: ncclCudaCallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - cudaStreamDestroy
    - INFO
    - WARN
    - ncclCuMemEnable
    - ncclSizeOfT
    - cudaMemsetAsync
    - cudaStreamSynchronize
    - cudaStreamCreateWithFlags
    - cudaThreadExchangeStreamCaptureMode
    - NCCLCHECKGOTO
    - CUDACHECK
    - CUDACHECKGOTO
    - cudaMalloc
    - ncclCuMemAlloc
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCudaCallocDebug(T** ptr, size_t nelem, const char
      *filefunc, int line,\n                                  struct ncclMemManager*
      manager, ncclMemType_t memType = ncclMemPersist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - nelem
    - ','
    - manager
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: ncclCudaCalloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclCudaCalloc(ptr, nelem, manager, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:463,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:463,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/include/alloc.h:465,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/alloc.h:466,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/include/alloc.h:466,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:466,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:468,1
    - Dst: cudaMalloc
      Src: /src/nccl/src/include/alloc.h:468,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:468,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:470,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/src/include/alloc.h:470,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:470,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:473,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:473,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:474,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:474,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:475,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - ptr
    - nelem
    - stream
    - filefunc
    - line
    - manager
    argTypes:
    - T**
    - size_t
    - cudaStream_t
    - char*
    - int
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 477
    functionName: ncclCudaCallocAsyncDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - ncclCuMemEnable
    - ncclSizeOfT
    - cudaMemsetAsync
    - cudaThreadExchangeStreamCaptureMode
    - NCCLCHECKGOTO
    - CUDACHECK
    - CUDACHECKGOTO
    - cudaMalloc
    - ncclCuMemAlloc
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCudaCallocAsyncDebug(T** ptr, size_t nelem, cudaStream_t
      stream, const char *filefunc, int line,\n                                       struct
      ncclMemManager* manager, ncclMemType_t memType = ncclMemPersist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ptr
    - ','
    - nelem
    - ','
    - stream
    - ','
    - manager
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: ncclCudaCallocAsync
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclCudaCallocAsync(ptr, nelem, stream, manager, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:484,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:484,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:487,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/include/alloc.h:487,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/alloc.h:488,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/include/alloc.h:488,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:489,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/include/alloc.h:489,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:490,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/include/alloc.h:490,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:492,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - dst
    - src
    - nelem
    argTypes:
    - T*
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 494
    functionName: ncclCudaMemcpy
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 4
    functionsReached:
    - cudaStreamDestroy
    - cudaStreamSynchronize
    - cudaStreamCreateWithFlags
    - cudaThreadExchangeStreamCaptureMode
    - ncclCudaMemcpyAsync
    - NCCLCHECKGOTO
    - CUDACHECK
    - CUDACHECKGOTO
    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:500,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:500,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:503,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/include/alloc.h:503,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:504,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/src/include/alloc.h:504,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:504,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:505,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/include/alloc.h:505,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:506,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/include/alloc.h:506,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:508,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - dst
    - value
    - nelem
    argTypes:
    - T*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 510
    functionName: ncclCudaMemset
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 1
    functionsReached:
    - cudaStreamDestroy
    - ncclSizeOfT
    - cudaStreamSynchronize
    - cudaMemsetAsync
    - cudaStreamCreateWithFlags
    - cudaThreadExchangeStreamCaptureMode
    - CUDACHECK
    - CUDACHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaMemset(T* dst, int value, size_t nelem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:516,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:516,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:517,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/include/alloc.h:517,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:517,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:519,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:519,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: 521
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 521
    functionName: ncclCudaMemcpyAsync
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 6
    functionsReached:
    - cudaMemcpyAsync
    - ncclSizeOfT
    - cudaThreadExchangeStreamCaptureMode
    - CUDACHECK
    - CUDACHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaMemcpyAsync(T* dst, T* src, size_t nelem, cudaStream_t
      stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/include/alloc.h:527,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:528,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:528,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/include/alloc.h:529,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/alloc.h:530,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/include/alloc.h:530,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:536,1
    - Dst: cudaFree
      Src: /src/nccl/src/include/alloc.h:536,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:540,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ptr
    - manager
    argTypes:
    - T*
    - struct ncclMemManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 542
    functionName: ncclCudaFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 25
    functionsReached:
    - TRACE
    - ncclCuMemFree
    - ncclCuMemEnable
    - cudaThreadExchangeStreamCaptureMode
    - NCCLCHECKGOTO
    - CUDACHECK
    - CUDACHECKGOTO
    - cudaFree
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaFree(T* ptr, struct ncclMemManager* manager, int
      numSegments = 1)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsGetPageSize
      Src: /src/nccl/src/include/alloc.h:550,1
    - Dst: ROUNDUP
      Src: /src/nccl/src/include/alloc.h:552,1
    - Dst: posix_memalign
      Src: /src/nccl/src/include/alloc.h:553,1
    - Dst: ROUNDUP
      Src: /src/nccl/src/include/alloc.h:556,1
    - Dst: _aligned_malloc
      Src: /src/nccl/src/include/alloc.h:557,1
    - Dst: memset
      Src: /src/nccl/src/include/alloc.h:561,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - ptr
    - size
    - filefunc
    - line
    argTypes:
    - void**
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 569
    functionName: ncclIbMallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - ncclOsGetPageSize
    - INFO
    - _aligned_malloc
    - ROUNDUP
    - memset
    - posix_memalign
    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: 571
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 571
    functionName: ncclIbMalloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclIbMalloc(...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclShadowPoolAlloc
      Src: /src/nccl/src/include/allocator.h:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - pool
    - outDevObj
    - outHostObj
    - stream
    argTypes:
    - struct ncclShadowPool*
    - T**
    - T**
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: ncclShadowPoolAlloc
    functionSourceFile: /src/nccl/src/include/allocator.h
    functionUses: 4
    functionsReached:
    - ncclShadowPoolAlloc
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShadowPoolAlloc(struct ncclShadowPool* pool, T** outDevObj,
      T** outHostObj, cudaStream_t stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclShadowPoolToHost
      Src: /src/nccl/src/include/allocator.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - devObj
    - hostObj
    argTypes:
    - struct ncclShadowPool*
    - T*
    - T**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: ncclShadowPoolToHost
    functionSourceFile: /src/nccl/src/include/allocator.h
    functionUses: 8
    functionsReached:
    - ncclShadowPoolToHost
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShadowPoolToHost(struct ncclShadowPool* pool, T* devObj,
      T** hostObj)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - ncclDataType_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 65
    functionName: ncclTypeSize
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclTypeSize(ncclDataType_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_ADD_FETCH
      Src: /src/nccl/src/include/collectives.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: RingAlgorithm::incRefCount
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_ADD_FETCH
    linkageType: ''
    returnType: int
    signature: int incRefCount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_SUB_FETCH
      Src: /src/nccl/src/include/collectives.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: RingAlgorithm::decRefCount
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - COMPILER_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: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    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: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    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:138,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:138,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:144,1
    - Dst: std::max
      Src: /src/nccl/src/include/collectives.h:145,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:145,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:160,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: 163
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 163
    functionName: RingARAlgorithm::getNextSendAddr
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - divUp
    - min
    - std::max
    - alignUp
    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:181,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:181,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:193,1
    - Dst: std::max
      Src: /src/nccl/src/include/collectives.h:194,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:194,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:202,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: 207
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 207
    functionName: RingARAlgorithm::getNextRecvAddr
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - divUp
    - min
    - std::max
    - alignUp
    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: 226
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 226
    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: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    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:245,1
    - Dst: std::max
      Src: /src/nccl/src/include/collectives.h:251,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:251,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:265,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: 269
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 269
    functionName: RingAGAlgorithm::getNextSendAddr
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - divUp
    - min
    - std::max
    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:279,1
    - Dst: std::max
      Src: /src/nccl/src/include/collectives.h:283,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:283,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:293,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: 297
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 297
    functionName: RingAGAlgorithm::getNextRecvAddr
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - divUp
    - min
    - std::max
    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: 316
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 316
    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: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    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:348,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: 352
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 352
    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:368,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: 373
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 373
    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: 390
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 390
    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: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    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: 454
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 454
    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:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 458
    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: 466
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 466
    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:471,1
    - Dst: COMPILER_FFS
      Src: /src/nccl/src/include/collectives.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: PatRSAlgorithm::firstBitSet
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - __ffs
    - COMPILER_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: 484
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 484
    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:487,1
    - Dst: PatRSAlgorithm::resetA
      Src: /src/nccl/src/include/collectives.h:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 492
    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:497,1
    - Dst: COMPILER_POPCOUNT32
      Src: /src/nccl/src/include/collectives.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 502
    functionName: PatRSAlgorithm::nBitsSet
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - __popc
    - COMPILER_POPCOUNT32
    linkageType: ''
    returnType: int
    signature: int nBitsSet(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PatRSAlgorithm::nBitsSet
      Src: /src/nccl/src/include/collectives.h:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - pow2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 509
    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:515,1
    - Dst: PatRSAlgorithm::reset
      Src: /src/nccl/src/include/collectives.h:532,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: 533
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 533
    functionName: PatRSAlgorithm::PatRSAlgorithm
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - PatRSAlgorithm::reset
    - log2Up
    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: 537
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 537
    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:548,1
    - Dst: PatRSAlgorithm::mirrorInvert
      Src: /src/nccl/src/include/collectives.h:564,1
    - Dst: PatRSAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:566,1
    - Dst: PatRSAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:579,1
    - Dst: PatRSAlgorithm::newPeer
      Src: /src/nccl/src/include/collectives.h:583,1
    - Dst: PatRSAlgorithm::mirrorInvert
      Src: /src/nccl/src/include/collectives.h:596,1
    - Dst: PatRSAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:613,1
    - Dst: PatRSAlgorithm::mirrorInvert
      Src: /src/nccl/src/include/collectives.h:618,1
    - Dst: PatRSAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:621,1
    - Dst: PatRSAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:629,1
    - Dst: PatRSAlgorithm::newPeer
      Src: /src/nccl/src/include/collectives.h:636,1
    - Dst: PatRSAlgorithm::reset
      Src: /src/nccl/src/include/collectives.h:665,1
    - Dst: PatRSAlgorithm::resetA
      Src: /src/nccl/src/include/collectives.h:668,1
    - Dst: cuda::atomic_ref::store
      Src: /src/nccl/src/include/collectives.h:676,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 139
    argCount: 1
    argNames:
    - ps
    argTypes:
    - struct ncclPatStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 680
    functionName: PatRSAlgorithm::getNextOp
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 2
    functionsReached:
    - PatRSAlgorithm::mirrorInvert
    - PatRSAlgorithm::reset
    - PatRSAlgorithm::newPeer
    - PatRSAlgorithm::resetA
    - PatRSAlgorithm::firstBitSet
    - cuda::atomic_ref::store
    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: 711
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 711
    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:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 715
    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: 723
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 723
    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:728,1
    - Dst: COMPILER_FFS
      Src: /src/nccl/src/include/collectives.h:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 733
    functionName: PatAGAlgorithm::firstBitSet
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - __ffs
    - COMPILER_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: 739
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 739
    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:742,1
    - Dst: PatAGAlgorithm::nextAs
      Src: /src/nccl/src/include/collectives.h:750,1
    - Dst: PatAGAlgorithm::resetA
      Src: /src/nccl/src/include/collectives.h:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 752
    functionName: PatAGAlgorithm::reset
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - PatAGAlgorithm::getNelem
    - PatAGAlgorithm::resetA
    - PatAGAlgorithm::nextAs
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PatAGAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 772
    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:779,1
    - Dst: log2Up
      Src: /src/nccl/src/include/collectives.h:796,1
    - Dst: PatAGAlgorithm::reset
      Src: /src/nccl/src/include/collectives.h:797,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: 798
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 798
    functionName: PatAGAlgorithm::PatAGAlgorithm
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - PatAGAlgorithm::reset
    - log2Up
    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: 802
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 802
    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:827,1
    - Dst: PatAGAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:831,1
    - Dst: PatAGAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:857,1
    - Dst: PatAGAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:863,1
    - Dst: PatAGAlgorithm::nextAs
      Src: /src/nccl/src/include/collectives.h:881,1
    - Dst: PatAGAlgorithm::reset
      Src: /src/nccl/src/include/collectives.h:887,1
    - Dst: PatAGAlgorithm::resetA
      Src: /src/nccl/src/include/collectives.h:890,1
    - Dst: cuda::atomic_ref::store
      Src: /src/nccl/src/include/collectives.h:898,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 89
    argCount: 1
    argNames:
    - ps
    argTypes:
    - struct ncclPatStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 902
    functionName: PatAGAlgorithm::getNextOp
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 2
    functionsReached:
    - PatAGAlgorithm::resetA
    - PatAGAlgorithm::firstBitSet
    - PatAGAlgorithm::nextAs
    - PatAGAlgorithm::reset
    - cuda::atomic_ref::store
    linkageType: ''
    returnType: void
    signature: void getNextOp(struct ncclPatStep* ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: divUp
      Src: /src/nccl/src/include/channel.h:26,1
    - Dst: reverseBits
      Src: /src/nccl/src/include/channel.h:31,1
    - Dst: log2Up
      Src: /src/nccl/src/include/channel.h:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - comm
    - p2pRound
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: ncclP2pChannelBaseForRound
    functionSourceFile: /src/nccl/src/include/channel.h
    functionUses: 3
    functionsReached:
    - divUp
    - log2Up
    - reverseBits
    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:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    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: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    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: std::chrono::steady_clock::now
      Src: /src/nccl/src/include/utils.h:65,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/nccl/src/include/utils.h:66,1
    - Dst: auto::time_since_epoch
      Src: /src/nccl/src/include/utils.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: clockNano
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 13
    functionsReached:
    - auto::time_since_epoch
    - std::chrono::steady_clock::now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t clockNano()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: system_clock::now
      Src: /src/nccl/src/include/utils.h:71,1
    - Dst: time_point_cast<seconds>
      Src: /src/nccl/src/include/utils.h:72,1
    - Dst: static_cast<decltype(ts->tv_sec)>
      Src: /src/nccl/src/include/utils.h:73,1
    - Dst: auto::time_since_epoch
      Src: /src/nccl/src/include/utils.h:73,1
    - Dst: static_cast<decltype(ts->tv_nsec)>
      Src: /src/nccl/src/include/utils.h:74,1
    - Dst: duration_cast<nanoseconds>
      Src: /src/nccl/src/include/utils.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: clockRealtime
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 1
    functionsReached:
    - static_cast<decltype(ts->tv_sec)>
    - auto::time_since_epoch
    - system_clock::now
    - duration_cast<nanoseconds>
    - static_cast<decltype(ts->tv_nsec)>
    - time_point_cast<seconds>
    linkageType: ''
    returnType: void
    signature: void clockRealtime(struct timespec* ts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/include/utils.h:81,1
    - Dst: static_cast<unsigned char*>
      Src: /src/nccl/src/include/utils.h:86,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/utils.h:88,1
    - Dst: rd
      Src: /src/nccl/src/include/utils.h:88,1
    - Dst: WARN
      Src: /src/nccl/src/include/utils.h:91,1
    - Dst: what
      Src: /src/nccl/src/include/utils.h:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - buffer
    - bytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 96
    functionName: getRandomData
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 3
    functionsReached:
    - static_cast<unsigned char*>
    - static_cast<unsigned char>
    - rd
    - what
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getRandomData(void* buffer, size_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: gcd
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gcd(int a, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_FETCH_ADD
      Src: /src/nccl/src/include/utils.h:112,1
    - Dst: static_cast<Int>
      Src: /src/nccl/src/include/utils.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - refs
    argTypes:
    - Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: ncclAtomicRefCountIncrement
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 9
    functionsReached:
    - COMPILER_ATOMIC_FETCH_ADD
    - static_cast<Int>
    linkageType: ''
    returnType: void
    signature: void ncclAtomicRefCountIncrement(Int* refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_SUB_FETCH
      Src: /src/nccl/src/include/utils.h:117,1
    - Dst: static_cast<Int>
      Src: /src/nccl/src/include/utils.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - refs
    argTypes:
    - Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: ncclAtomicRefCountDecrement
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 11
    functionsReached:
    - static_cast<Int>
    - COMPILER_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: 261
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 261
    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: COMPILER_EXPECT
      Src: /src/nccl/src/include/utils.h:266,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/utils.h:268,1
    - Dst: ncclMemoryStack::allocateSpilled
      Src: /src/nccl/src/include/utils.h:270,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: 273
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: ncclMemoryStack::allocate
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - ncclMemoryStack::allocateSpilled
    - COMPILER_EXPECT
    - 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:276,1
    - Dst: memset
      Src: /src/nccl/src/include/utils.h:277,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: 279
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: ncclMemoryStackAlloc
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 13
    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:283,1
    - Dst: memset
      Src: /src/nccl/src/include/utils.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - me
    - n
    argTypes:
    - struct ncclMemoryStack*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: ncclMemoryStackAlloc
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 13
    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:294,1
    - Dst: memset
      Src: /src/nccl/src/include/utils.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - me
    - nElt
    argTypes:
    - struct ncclMemoryStack*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: ncclMemoryStackAllocInlineArray
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 4
    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:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclMemoryStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 306
    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:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclMemoryStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 315
    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: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    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: COMPILER_EXPECT
      Src: /src/nccl/src/include/utils.h:336,1
    - Dst: std::max
      Src: /src/nccl/src/include/utils.h:341,1
    - Dst: std::max
      Src: /src/nccl/src/include/utils.h:342,1
    - Dst: ncclMemoryStack::allocate
      Src: /src/nccl/src/include/utils.h:343,1
    - Dst: memset
      Src: /src/nccl/src/include/utils.h:345,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/utils.h:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - me
    - backing
    argTypes:
    - struct ncclMemoryPool*
    - struct ncclMemoryStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: ncclMemoryPoolAlloc
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 7
    functionsReached:
    - std::max
    - ncclMemoryStack::allocate
    - memset
    - reinterpret_cast<T*>
    - COMPILER_EXPECT
    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:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - me
    - obj
    argTypes:
    - struct ncclMemoryPool*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: ncclMemoryPoolFree
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 6
    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: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    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: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: ncclIntruQueueConstruct
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 8
    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: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: ncclIntruQueueEmpty
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 27
    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: 388
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 388
    functionName: ncclIntruQueueHead
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 18
    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: 393
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 393
    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: 400
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: ncclIntruQueueEnqueue
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 33
    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: 407
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 407
    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: 415
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 415
    functionName: ncclIntruQueueDequeue
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * ncclIntruQueueDequeue(ncclIntruQueue<T,next> *me)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/nccl/src/include/utils.h:424,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - me
    - x
    argTypes:
    - ncclIntruQueue<T,next>*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 441
    functionName: ncclIntruQueueDelete
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 5
    functionsReached:
    - cmp
    linkageType: ''
    returnType: T
    signature: T * ncclIntruQueueDelete(ncclIntruQueue<T,next> *me, T *x, bool (*cmp)(T*,
      T*))
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - me
    argTypes:
    - ncclIntruQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 451
    functionName: ncclIntruQueueTryDequeue
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 1
    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: 459
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 459
    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: 4
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclIntruQueueMpsc<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 475
    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: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/include/utils.h:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclIntruQueueMpsc<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 480
    functionName: ncclIntruQueueMpscEmpty
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_LOAD
    linkageType: ''
    returnType: bool
    signature: bool ncclIntruQueueMpscEmpty(struct ncclIntruQueueMpsc<T,next>* me)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/include/utils.h:484,1
    - Dst: static_cast<T*>
      Src: /src/nccl/src/include/utils.h:484,1
    - Dst: COMPILER_ATOMIC_EXCHANGE
      Src: /src/nccl/src/include/utils.h:485,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/utils.h:485,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/utils.h:486,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/include/utils.h:488,1
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/include/utils.h:490,1
    - Dst: struct ncclThreadSignal*::cond::notify_all
      Src: /src/nccl/src/include/utils.h:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - me
    - x
    argTypes:
    - ncclIntruQueueMpsc<T,next>*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 500
    functionName: ncclIntruQueueMpscEnqueue
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 2
    functionsReached:
    - COMPILER_ATOMIC_STORE
    - COMPILER_ATOMIC_EXCHANGE
    - reinterpret_cast<uintptr_t>
    - struct ncclThreadSignal*::cond::notify_all
    - reinterpret_cast<T*>
    - std::atomic_thread_fence
    - static_cast<T*>
    linkageType: ''
    returnType: bool
    signature: bool ncclIntruQueueMpscEnqueue(ncclIntruQueueMpsc<T,next>* me, T* x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/include/utils.h:504,1
    - Dst: clockNano
      Src: /src/nccl/src/include/utils.h:507,1
    - Dst: clockNano
      Src: /src/nccl/src/include/utils.h:510,1
    - Dst: COMPILER_ATOMIC_COMPARE_EXCHANGE
      Src: /src/nccl/src/include/utils.h:516,1
    - Dst: struct ncclThreadSignal*::cond::wait
      Src: /src/nccl/src/include/utils.h:518,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/include/utils.h:521,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/include/utils.h:525,1
    - Dst: static_cast<T*>
      Src: /src/nccl/src/include/utils.h:525,1
    - Dst: COMPILER_ATOMIC_EXCHANGE
      Src: /src/nccl/src/include/utils.h:526,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/utils.h:527,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/include/utils.h:533,1
    - Dst: std::this_thread::yield
      Src: /src/nccl/src/include/utils.h:535,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - me
    - waitSome
    argTypes:
    - ncclIntruQueueMpsc<T,next>*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 540
    functionName: ncclIntruQueueMpscDequeueAll
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_COMPARE_EXCHANGE
    - clockNano
    - std::this_thread::yield
    - COMPILER_ATOMIC_STORE
    - COMPILER_ATOMIC_EXCHANGE
    - COMPILER_ATOMIC_LOAD
    - reinterpret_cast<T*>
    - static_cast<T*>
    - struct ncclThreadSignal*::cond::wait
    linkageType: ''
    returnType: T
    signature: T * ncclIntruQueueMpscDequeueAll(ncclIntruQueueMpsc<T,next>* me, bool
      waitSome)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_COMPARE_EXCHANGE
      Src: /src/nccl/src/include/utils.h:545,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/include/utils.h:551,1
    - Dst: std::this_thread::yield
      Src: /src/nccl/src/include/utils.h:553,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/include/utils.h:555,1
    - Dst: static_cast<T*>
      Src: /src/nccl/src/include/utils.h:555,1
    - Dst: COMPILER_ATOMIC_EXCHANGE
      Src: /src/nccl/src/include/utils.h:556,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/utils.h:557,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/include/utils.h:563,1
    - Dst: std::this_thread::yield
      Src: /src/nccl/src/include/utils.h:565,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - me
    argTypes:
    - ncclIntruQueueMpsc<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 571
    functionName: ncclIntruQueueMpscAbandon
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_COMPARE_EXCHANGE
    - std::this_thread::yield
    - COMPILER_ATOMIC_STORE
    - COMPILER_ATOMIC_EXCHANGE
    - COMPILER_ATOMIC_LOAD
    - reinterpret_cast<T*>
    - static_cast<T*>
    linkageType: ''
    returnType: T
    signature: T * ncclIntruQueueMpscAbandon(ncclIntruQueueMpsc<T,next>* me)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/include/utils.h:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct ncclIntruAddressMap<Obj, Key, keyField, nextField>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: ncclIntruAddressMapDestruct
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ncclIntruAddressMapDestruct(struct ncclIntruAddressMap<Obj, Key,
      keyField, nextField>* map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruAddressMapInsert_untyped
      Src: /src/nccl/src/include/utils.h:681,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/utils.h:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - map
    - key
    - object
    argTypes:
    - struct ncclIntruAddressMap<Obj, Key, keyField, nextField>*
    - Key
    - Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 684
    functionName: ncclIntruAddressMapInsert
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 1
    functionsReached:
    - ncclIntruAddressMapInsert_untyped
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclIntruAddressMapInsert(\n    struct ncclIntruAddressMap<Obj,
      Key, keyField, nextField>* map,\n    Key key, Obj* object)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruAddressMapFind_untyped
      Src: /src/nccl/src/include/utils.h:694,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/utils.h:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - map
    - key
    - object
    argTypes:
    - struct ncclIntruAddressMap<Obj, Key, keyField, nextField>*
    - Key
    - Obj**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 699
    functionName: ncclIntruAddressMapFind
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - ncclIntruAddressMapFind_untyped
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclIntruAddressMapFind(\n    struct ncclIntruAddressMap<Obj,
      Key, keyField, nextField>* map,\n    Key key, Obj** object)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruAddressMapRemove_untyped
      Src: /src/nccl/src/include/utils.h:708,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/utils.h:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct ncclIntruAddressMap<Obj, Key, keyField, nextField>*
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 711
    functionName: ncclIntruAddressMapRemove
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 1
    functionsReached:
    - ncclIntruAddressMapRemove_untyped
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclIntruAddressMapRemove(\n    struct ncclIntruAddressMap<Obj,
      Key, keyField, nextField>* map,\n    Key key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: join
      Src: /src/nccl/src/include/utils.h:715,1
    - Dst: WARN
      Src: /src/nccl/src/include/utils.h:718,1
    - Dst: what
      Src: /src/nccl/src/include/utils.h:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' thread'
    argTypes:
    - std::thread
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 721
    functionName: ncclThreadJoin
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 2
    functionsReached:
    - join
    - what
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclThreadJoin(std::thread& thread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/include/utils.h:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - version
    - buf
    - bufSize
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: ncclVersionToString
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * ncclVersionToString(int version, char* buf, size_t bufSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ibv_cq*::context::ops::poll_cq
      Src: /src/nccl/src/include/ibvwrap.h:56,1
    - Dst: WARN
      Src: /src/nccl/src/include/ibvwrap.h:58,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: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: wrap_ibv_poll_cq
    functionSourceFile: /src/nccl/src/include/ibvwrap.h
    functionUses: 5
    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:71,1
    - Dst: WARN
      Src: /src/nccl/src/include/ibvwrap.h:73,1
    - Dst: strerror
      Src: /src/nccl/src/include/ibvwrap.h:73,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: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: wrap_ibv_post_send
    functionSourceFile: /src/nccl/src/include/ibvwrap.h
    functionUses: 8
    functionsReached:
    - struct ibv_qp*::context::ops::post_send
    - strerror
    - WARN
    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:80,1
    - Dst: WARN
      Src: /src/nccl/src/include/ibvwrap.h:82,1
    - Dst: strerror
      Src: /src/nccl/src/include/ibvwrap.h:82,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: 86
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: wrap_ibv_post_recv
    functionSourceFile: /src/nccl/src/include/ibvwrap.h
    functionUses: 2
    functionsReached:
    - strerror
    - WARN
    - 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:97,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: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: ibvGetGidStr
    functionSourceFile: /src/nccl/src/include/ibvwrap.h
    functionUses: 2
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:29,1
    - Dst: min
      Src: /src/nccl/src/include/bitops.h:29,1
    - Dst: minval
      Src: /src/nccl/src/include/bitops.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Int
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: minval
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - minval
    - min
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:40,1
    - Dst: max
      Src: /src/nccl/src/include/bitops.h:40,1
    - Dst: maxval
      Src: /src/nccl/src/include/bitops.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Int
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: maxval
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - max
    - maxval
    linkageType: ''
    returnType: __host__
    signature: __host__ maxval(Int a, Int b, More ...more)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: BIT
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: MASK
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK(x)
  - 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: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: DIVUP
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 22
    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: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: ROUNDUP
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 11
    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: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    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: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    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: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: divUp
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 27
    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: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: alignUp
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 20
    functionsReached:
    - Z
    linkageType: ''
    returnType: __host__
    signature: __host__ alignUp(X x, Y a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/bitops.h:83,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/bitops.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: alignUp
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 20
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: __host__
    signature: __host__ * alignUp(T* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Z
      Src: /src/nccl/src/include/bitops.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: alignDown
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - Z
    linkageType: ''
    returnType: __host__
    signature: __host__ alignDown(X x, Y a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/bitops.h:95,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/bitops.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: alignDown
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: __host__
    signature: __host__ * alignDown(T* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    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: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: add4G
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    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: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    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: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    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: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    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:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    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:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    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:146,1
    - Dst: __umulh
      Src: /src/nccl/src/include/bitops.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: mul64hi
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 2
    functionsReached:
    - __umulh
    - __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:159,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: 163
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 163
    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:167,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: 171
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 171
    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:178,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: 184
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: idivmodFast32
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    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:188,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: 194
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 194
    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:198,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: 200
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 200
    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:203,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: 205
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 205
    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:209,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: 211
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: imodFast32
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 2
    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:214,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: 216
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 216
    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:222,1
    - Dst: __popcll
      Src: /src/nccl/src/include/bitops.h:224,1
    - Dst: COMPILER_POPCOUNT32
      Src: /src/nccl/src/include/bitops.h:231,1
    - Dst: COMPILER_POPCOUNT64
      Src: /src/nccl/src/include/bitops.h:233,1
    - Dst: COMPILER_POPCOUNT64
      Src: /src/nccl/src/include/bitops.h:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 241
    functionName: countOneBits
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - __popc
    - COMPILER_POPCOUNT32
    - __popcll
    - COMPILER_POPCOUNT64
    linkageType: ''
    returnType: __host__
    signature: __host__ countOneBits(Int x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __ffs
      Src: /src/nccl/src/include/bitops.h:249,1
    - Dst: __ffsll
      Src: /src/nccl/src/include/bitops.h:251,1
    - Dst: COMPILER_FFS
      Src: /src/nccl/src/include/bitops.h:257,1
    - Dst: COMPILER_FFSL
      Src: /src/nccl/src/include/bitops.h:259,1
    - Dst: COMPILER_FFSLL
      Src: /src/nccl/src/include/bitops.h:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - mask
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 267
    functionName: firstOneBit
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - __ffsll
    - COMPILER_FFS
    - COMPILER_FFSLL
    - COMPILER_FFSL
    - __ffs
    linkageType: ''
    returnType: __host__
    signature: __host__ firstOneBit(Int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: firstOneBit
      Src: /src/nccl/src/include/bitops.h:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mask
    argTypes:
    - Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 274
    functionName: popFirstOneBit
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 3
    functionsReached:
    - firstOneBit
    linkageType: ''
    returnType: __host__
    signature: __host__ popFirstOneBit(Int* mask)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __clz
      Src: /src/nccl/src/include/bitops.h:282,1
    - Dst: __clzll
      Src: /src/nccl/src/include/bitops.h:285,1
    - Dst: COMPILER_CLZ
      Src: /src/nccl/src/include/bitops.h:294,1
    - Dst: COMPILER_CLZL
      Src: /src/nccl/src/include/bitops.h:297,1
    - Dst: COMPILER_CLZLL
      Src: /src/nccl/src/include/bitops.h:300,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 306
    functionName: log2Down
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 2
    functionsReached:
    - __clz
    - COMPILER_CLZLL
    - __clzll
    - COMPILER_CLZ
    - COMPILER_CLZL
    linkageType: ''
    returnType: __host__
    signature: __host__ log2Down(Int x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __clz
      Src: /src/nccl/src/include/bitops.h:315,1
    - Dst: __clzll
      Src: /src/nccl/src/include/bitops.h:318,1
    - Dst: COMPILER_CLZ
      Src: /src/nccl/src/include/bitops.h:327,1
    - Dst: COMPILER_CLZL
      Src: /src/nccl/src/include/bitops.h:330,1
    - Dst: COMPILER_CLZLL
      Src: /src/nccl/src/include/bitops.h:333,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 339
    functionName: log2Up
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 5
    functionsReached:
    - __clz
    - COMPILER_CLZLL
    - __clzll
    - COMPILER_CLZ
    - COMPILER_CLZL
    linkageType: ''
    returnType: __host__
    signature: __host__ log2Up(Int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Int
      Src: /src/nccl/src/include/bitops.h:343,1
    - Dst: log2Up
      Src: /src/nccl/src/include/bitops.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 344
    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:350,1
    - Dst: log2Down
      Src: /src/nccl/src/include/bitops.h:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 351
    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: COMPILER_BSWAP16
      Src: /src/nccl/src/include/bitops.h:357,1
    - Dst: COMPILER_BSWAP32
      Src: /src/nccl/src/include/bitops.h:358,1
    - Dst: COMPILER_BSWAP64
      Src: /src/nccl/src/include/bitops.h:359,1
    - Dst: reverseSubBits
      Src: /src/nccl/src/include/bitops.h:362,1
    - Dst: UInt
      Src: /src/nccl/src/include/bitops.h:366,1
    - Dst: UInt
      Src: /src/nccl/src/include/bitops.h:366,1
    - Dst: reverseSubBits
      Src: /src/nccl/src/include/bitops.h:368,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - x
    argTypes:
    - UInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 370
    functionName: reverseSubBits
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - COMPILER_BSWAP32
    - reverseSubBits
    - UInt
    - COMPILER_BSWAP64
    - COMPILER_BSWAP16
    linkageType: ''
    returnType: __host__
    signature: __host__ reverseSubBits(UInt x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __brev
      Src: /src/nccl/src/include/bitops.h:393,1
    - Dst: __brevll
      Src: /src/nccl/src/include/bitops.h:395,1
    - Dst: reverseSubBits
      Src: /src/nccl/src/include/bitops.h:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - x
    - nBits
    argTypes:
    - Int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 404
    functionName: reverseBits
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - reverseSubBits
    - __brevll
    - __brev
    linkageType: ''
    returnType: __host__
    signature: __host__ reverseBits(Int x, int nBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __clz
      Src: /src/nccl/src/include/bitops.h:414,1
    - Dst: COMPILER_CLZ
      Src: /src/nccl/src/include/bitops.h:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - bitsPerPow2
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: u32fpEncode
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - __clz
    - COMPILER_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: 428
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 428
    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: 430
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 430
    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:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 434
    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:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 437
    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:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - acc
    - bytes
    - size
    argTypes:
    - uint64_t[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 461
    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:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - acc
    - bytes
    argTypes:
    - uint64_t[]
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 466
    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: 476
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 476
    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:480,1
    - Dst: digestHash
      Src: /src/nccl/src/include/bitops.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: getHash
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 3
    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:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 486
    functionName: getHash
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 4
    functionsReached:
    - getHash
    linkageType: ''
    returnType: __host__
    signature: __host__ getHash(const T* bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/nccl/src/include/cpuset.h:32,1
    - Dst: strtok
      Src: /src/nccl/src/include/cpuset.h:33,1
    - Dst: strtoul
      Src: /src/nccl/src/include/cpuset.h:35,1
    - Dst: strtok
      Src: /src/nccl/src/include/cpuset.h:36,1
    - Dst: free
      Src: /src/nccl/src/include/cpuset.h:38,1
    - Dst: ncclOsCpuZero
      Src: /src/nccl/src/include/cpuset.h:41,1
    - Dst: ncclOsCpuSet
      Src: /src/nccl/src/include/cpuset.h:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - maskStr
    - set
    argTypes:
    - char*
    - ncclAffinity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 49
    functionName: ncclStrToCpuset
    functionSourceFile: /src/nccl/src/include/cpuset.h
    functionUses: 0
    functionsReached:
    - ncclOsCpuZero
    - strdup
    - strtok
    - free
    - ncclOsCpuSet
    - strtoul
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclStrToCpuset(const char* maskStr, ncclAffinity* set)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsCpuIsSet
      Src: /src/nccl/src/include/cpuset.h:56,1
    - Dst: snprintf
      Src: /src/nccl/src/include/cpuset.h:64,1
    - Dst: snprintf
      Src: /src/nccl/src/include/cpuset.h:66,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - mask
    - str
    - len
    argTypes:
    - ncclAffinity*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: ncclCpusetToRangeStr
    functionSourceFile: /src/nccl/src/include/cpuset.h
    functionUses: 0
    functionsReached:
    - ncclOsCpuIsSet
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * ncclCpusetToRangeStr(ncclAffinity* mask, char* str, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsCpuZero
      Src: /src/nccl/src/include/cpuset.h:78,1
    - Dst: strdup
      Src: /src/nccl/src/include/cpuset.h:80,1
    - Dst: strtok
      Src: /src/nccl/src/include/cpuset.h:81,1
    - Dst: strtoull
      Src: /src/nccl/src/include/cpuset.h:83,1
    - Dst: ncclOsCpuSet
      Src: /src/nccl/src/include/cpuset.h:84,1
    - Dst: strtok
      Src: /src/nccl/src/include/cpuset.h:85,1
    - Dst: free
      Src: /src/nccl/src/include/cpuset.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - userStr
    - mask
    argTypes:
    - char*
    - ncclAffinity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: ncclStrListToCpuset
    functionSourceFile: /src/nccl/src/include/cpuset.h
    functionUses: 1
    functionsReached:
    - ncclOsCpuZero
    - strdup
    - strtok
    - free
    - strtoull
    - ncclOsCpuSet
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclStrListToCpuset(const char* userStr, ncclAffinity*
      mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsCpuIsSet
      Src: /src/nccl/src/include/cpuset.h:96,1
    - Dst: snprintf
      Src: /src/nccl/src/include/cpuset.h:97,1
    - Dst: strlen
      Src: /src/nccl/src/include/cpuset.h:97,1
    - Dst: strlen
      Src: /src/nccl/src/include/cpuset.h:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - mask
    - str
    - len
    argTypes:
    - ncclAffinity*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: ncclCpusetToStrList
    functionSourceFile: /src/nccl/src/include/cpuset.h
    functionUses: 1
    functionsReached:
    - ncclOsCpuIsSet
    - snprintf
    - strlen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCpusetToStrList(ncclAffinity* 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: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    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: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    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: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    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: 23
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: CUDACHECK
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 71
    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: 34
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: CUDACHECKGOTO
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 48
    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: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: CUDACHECKIGNORE
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECKIGNORE(cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cudaGetLastError
      Src: /src/nccl/src/include/checks.h:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - cudaError_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: cuda_clear
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 0
    functionsReached:
    - cudaGetLastError
    linkageType: ''
    returnType: cudaError_t
    signature: cudaError_t cuda_clear(cudaError_t err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: CUDASUCCESS
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDASUCCESS(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: CUDACLEARERROR
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACLEARERROR(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: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: SYSCHECK
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 5
    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: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    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: 87
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 87
    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: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: PTHREADCHECK
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 0
    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: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: PTHREADCHECKGOTO
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 0
    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: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    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: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: EQCHECK
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EQCHECK(statement, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - call
    - ','
    - RES
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: NCCLCHECKIGNORE
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLCHECKIGNORE(call, RES)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - call
    - ','
    - FLAGS
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: NCCLCHECKNOWARN
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLCHECKNOWARN(call, FLAGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - call
    - ','
    - RES
    - ','
    - label
    - ','
    - FLAGS
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: NCCLCHECKGOTONOWARN
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLCHECKGOTONOWARN(call, RES, label, FLAGS)
  - 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: 193
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 193
    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: 203
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 203
    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: 210
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 210
    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: 218
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 218
    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: 9
    argNames:
    - (
    - var
    - ','
    - func
    - ','
    - error_action
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: STDTHREADCREATE_IMPL
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STDTHREADCREATE_IMPL(var, func, error_action, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - func
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: STDTHREADCREATE
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STDTHREADCREATE(var, func, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - var
    - ','
    - func
    - ','
    - RES
    - ','
    - label
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: STDTHREADCREATE_GOTO
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STDTHREADCREATE_GOTO(var, func, RES, label, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: NEW_NOTHROW
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEW_NOTHROW(var, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - x
    - ','
    - RES
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: NEW_NOTHROW_GOTO
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEW_NOTHROW_GOTO(var, x, RES, label)
  - 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: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    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: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    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: 1075
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1075
    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: 1081
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1081
    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: 1086
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1086
    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:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct ibv_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1091
    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:1094,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: 1095
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1095
    functionName: ibv_post_send
    functionSourceFile: /src/nccl/src/include/ibvcore.h
    functionUses: 10
    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:1119,1
    - Dst: struct verbs_context*::query_port
      Src: /src/nccl/src/include/ibvcore.h:1122,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: 1126
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1126
    functionName: ibv_query_port_ex
    functionSourceFile: /src/nccl/src/include/ibvcore.h
    functionUses: 0
    functionsReached:
    - verbs_get_ctx_op
    - struct verbs_context*::query_port
    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:67,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/include/nvtx.h:67,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: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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:
    - Dst: nvtxDomainRangePushEx
      Src: /src/nccl/src/include/nvtx.h:96,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/include/nvtx.h:96,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - nvtx3::event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: ncclOptionalNvtxScopedRange::push
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached:
    - nvtxDomainRangePushEx
    - nvtx3::domain::get<nccl_domain>
    - get
    linkageType: ''
    returnType: void
    signature: void push(const nvtx3::event_attributes& attr) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePop
      Src: /src/nccl/src/include/nvtx.h:103,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/include/nvtx.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: ~ncclOptionalNvtxScopedRange() noexcept
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached:
    - nvtxDomainRangePop
    - nvtx3::domain::get<nccl_domain>
    linkageType: ''
    returnType: void
    signature: void ~ncclOptionalNvtxScopedRange() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: ncclOptionalNvtxScopedRange::ncclOptionalNvtxScopedRange
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclOptionalNvtxScopedRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: ncclOptionalNvtxScopedRange::ncclOptionalNvtxScopedRange
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclOptionalNvtxScopedRange(ncclOptionalNvtxScopedRange const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: '& operator=(ncclOptionalNvtxScopedRange const&)'
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclOptionalNvtxScopedRange
    signature: ncclOptionalNvtxScopedRange & operator=(ncclOptionalNvtxScopedRange
      const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: ncclOptionalNvtxScopedRange::ncclOptionalNvtxScopedRange
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclOptionalNvtxScopedRange(ncclOptionalNvtxScopedRange&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: '& operator=(ncclOptionalNvtxScopedRange&&)'
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclOptionalNvtxScopedRange
    signature: ncclOptionalNvtxScopedRange & operator=(ncclOptionalNvtxScopedRange&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: NVTX3_PAYLOAD
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 24
    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: 136
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: NVTX3_FUNC_WITH_PARAMS
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 14
    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:153,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/include/nvtx.h:153,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - nvtx3::event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: ncclOptionalNvtxPayloadRange::push
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached:
    - nvtxDomainRangePushEx
    - nvtx3::domain::get<nccl_domain>
    - get
    linkageType: ''
    returnType: void
    signature: void push(const nvtx3::event_attributes& attr) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nvtxRangePopPayload
      Src: /src/nccl/src/include/nvtx.h:161,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/include/nvtx.h:161,1
    - Dst: nvtxDomainRangePop
      Src: /src/nccl/src/include/nvtx.h:163,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/include/nvtx.h:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: ~ncclOptionalNvtxPayloadRange() noexcept
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached:
    - nvtxDomainRangePop
    - nvtx3::domain::get<nccl_domain>
    - nvtxRangePopPayload
    linkageType: ''
    returnType: void
    signature: void ~ncclOptionalNvtxPayloadRange() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - schemaId
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: ncclOptionalNvtxPayloadRange::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: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: ncclOptionalNvtxPayloadRange::ncclOptionalNvtxPayloadRange
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclOptionalNvtxPayloadRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: ncclOptionalNvtxPayloadRange::ncclOptionalNvtxPayloadRange
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclOptionalNvtxPayloadRange(ncclOptionalNvtxPayloadRange const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: '& operator=(ncclOptionalNvtxPayloadRange const&)'
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclOptionalNvtxPayloadRange
    signature: ncclOptionalNvtxPayloadRange & operator=(ncclOptionalNvtxPayloadRange
      const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: ncclOptionalNvtxPayloadRange::ncclOptionalNvtxPayloadRange
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclOptionalNvtxPayloadRange(ncclOptionalNvtxPayloadRange&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: '& operator=(ncclOptionalNvtxPayloadRange&&)'
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclOptionalNvtxPayloadRange
    signature: ncclOptionalNvtxPayloadRange & operator=(ncclOptionalNvtxPayloadRange&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: ncclOptionalNvtxPayloadRange::isPushed
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isPushed() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: NVTX3_RANGE
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 9
    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: 216
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: NVTX3_RANGE_ADD_PAYLOAD
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 10
    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: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: VERSION
    functionSourceFile: /src/nccl/src/include/debug.h
    functionUses: 3
    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: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: WARN
    functionSourceFile: /src/nccl/src/include/debug.h
    functionUses: 202
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - EXPR
    - ','
    - FLAGS
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: NOWARN
    functionSourceFile: /src/nccl/src/include/debug.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOWARN(EXPR, FLAGS)
  - 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: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: INFO
    functionSourceFile: /src/nccl/src/include/debug.h
    functionUses: 247
    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: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    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: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: TRACE
    functionSourceFile: /src/nccl/src/include/debug.h
    functionUses: 78
    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: 27
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 27
    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: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    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: 7
    argNames:
    - (
    - ret
    - ','
    - func
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: NCCL_API
    functionSourceFile: /src/nccl/src/include/core.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_API(ret, func, ...)
  - 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: 26
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 26
    functionName: ncclRegFind
    functionSourceFile: /src/nccl/src/include/register_inline.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRegFind(struct ncclComm* comm, const void* data, size_t
      size, struct ncclReg** outReg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - graphUsageMode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: ncclCudaGraphNone
    functionSourceFile: /src/nccl/src/include/strongstream.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: struct ncclCudaGraph
    signature: struct ncclCudaGraph ncclCudaGraphNone(int graphUsageMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct ncclCudaGraph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: ncclCudaGraphValid
    functionSourceFile: /src/nccl/src/include/strongstream.h
    functionUses: 13
    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: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    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: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    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:19,1
    - Dst: struct ncclComm*::ncclCollNet::devices
      Src: /src/nccl/src/include/coll_net.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - ndev
    argTypes:
    - struct ncclComm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: collNetDevices
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 1
    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:20,1
    - Dst: struct ncclComm*::ncclCollNet::getProperties
      Src: /src/nccl/src/include/coll_net.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - comm
    - dev
    - props
    argTypes:
    - struct ncclComm*
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    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:21,1
    - Dst: struct ncclComm*::ncclCollNet::listen
      Src: /src/nccl/src/include/coll_net.h:21,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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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:22,1
    - Dst: struct ncclComm*::ncclCollNet::connect
      Src: /src/nccl/src/include/coll_net.h:22,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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:23,1
    - Dst: struct ncclComm*::ncclCollNet::reduceSupport
      Src: /src/nccl/src/include/coll_net.h:23,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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: collNetReduceSupport
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 1
    functionsReached:
    - struct ncclComm*::ncclCollNet::reduceSupport
    - NCCLCHECK
    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:24,1
    - Dst: struct ncclComm*::ncclCollNet::regMr
      Src: /src/nccl/src/include/coll_net.h:24,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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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:26,1
    - Dst: struct ncclComm*::ncclCollNet::regMrDmaBuf
      Src: /src/nccl/src/include/coll_net.h:26,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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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:27,1
    - Dst: struct ncclComm*::ncclCollNet::deregMr
      Src: /src/nccl/src/include/coll_net.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - comm
    - collComm
    - mhandle
    argTypes:
    - struct ncclComm*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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:29,1
    - Dst: struct ncclComm*::ncclCollNet::iallreduce
      Src: /src/nccl/src/include/coll_net.h:29,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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: collNetIallreduce
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 1
    functionsReached:
    - struct ncclComm*::ncclCollNet::iallreduce
    - NCCLCHECK
    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:30,1
    - Dst: struct ncclComm*::ncclCollNet::iflush
      Src: /src/nccl/src/include/coll_net.h:30,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: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    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:31,1
    - Dst: struct ncclComm*::ncclCollNet::test
      Src: /src/nccl/src/include/coll_net.h:31,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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:32,1
    - Dst: struct ncclComm*::ncclCollNet::closeColl
      Src: /src/nccl/src/include/coll_net.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - collComm
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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:33,1
    - Dst: struct ncclComm*::ncclCollNet::closeListen
      Src: /src/nccl/src/include/coll_net.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - listenComm
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    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:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:34,1
    - Dst: struct ncclComm*::ncclCollNet::finalize
      Src: /src/nccl/src/include/coll_net.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - ctx
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: collNetFinalize
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::finalize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetFinalize(struct ncclComm* comm, void* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    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: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: joinable
      Src: /src/nccl/src/include/group.h:53,1
    - Dst: ncclThreadJoin
      Src: /src/nccl/src/include/group.h:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: ~ncclAsyncJob()
    functionSourceFile: /src/nccl/src/include/group.h
    functionUses: 0
    functionsReached:
    - ncclThreadJoin
    - joinable
    linkageType: ''
    returnType: void
    signature: void ~ncclAsyncJob()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: ncclGroupStartInternal
    functionSourceFile: /src/nccl/src/include/group.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupStartInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: ncclGroupEnabled
    functionSourceFile: /src/nccl/src/include/group.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclGroupEnabled()
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ret
    argTypes:
    - ncclResult_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: ncclGroupErrCheck
    functionSourceFile: /src/nccl/src/include/group.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupErrCheck(ncclResult_t ret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/include/group.h:108,1
    - Dst: ncclMemoryStackPush
      Src: /src/nccl/src/include/group.h:125,1
    - Dst: memset
      Src: /src/nccl/src/include/group.h:131,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/include/group.h:138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - comm
    - type
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 144
    functionName: ncclGroupCommJoin
    functionSourceFile: /src/nccl/src/include/group.h
    functionUses: 8
    functionsReached:
    - ncclIntruQueueConstruct
    - memset
    - reinterpret_cast<struct ncclComm*>
    - ncclMemoryStackPush
    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:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    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:156,1
    - Dst: ncclMemoryStackPop
      Src: /src/nccl/src/include/group.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - type
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 159
    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:387,1
    - Dst: static_cast<uint32_t>
      Src: /src/nccl/src/include/comm.h:387,1
    - Dst: min
      Src: /src/nccl/src/include/comm.h:387,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: 409
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 409
    functionName: ncclTaskCollSorterInsert
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - u32fpEncode
    - min
    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: 413
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 413
    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:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclTaskCollSorter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 420
    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:808,1
    - Dst: struct ncclCommCallback*::fn
      Src: /src/nccl/src/include/comm.h:811,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/comm.h:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - comm
    - waitSome
    argTypes:
    - struct ncclComm*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 817
    functionName: ncclCommPollCallbacks
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 3
    functionsReached:
    - NCCLCHECK
    - struct ncclCommCallback*::fn
    - ncclIntruQueueMpscDequeueAll
    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:822,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/comm.h:822,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/include/comm.h:824,1
    - Dst: cudaEventSynchronize
      Src: /src/nccl/src/include/comm.h:828,1
    - Dst: cudaEventQuery
      Src: /src/nccl/src/include/comm.h:831,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/include/comm.h:834,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/comm.h:836,1
    - Dst: struct ncclCommEventCallback*::fn
      Src: /src/nccl/src/include/comm.h:836,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/comm.h:838,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/comm.h:842,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/comm.h:842,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - comm
    - waitSome
    argTypes:
    - struct ncclComm*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 844
    functionName: ncclCommPollEventCallbacks
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 4
    functionsReached:
    - cudaEventQuery
    - struct ncclCommEventCallback*::fn
    - cudaThreadExchangeStreamCaptureMode
    - NCCLCHECKGOTO
    - cudaEventSynchronize
    - ncclIntruQueueHead
    - CUDACHECK
    - CUDACHECKGOTO
    - ncclIntruQueueDequeue
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommPollEventCallbacks(struct ncclComm *comm, bool
      waitSome)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_ADD_FETCH
      Src: /src/nccl/src/include/comm.h:853,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/include/comm.h:856,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/include/comm.h:858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - comm
    - x
    argTypes:
    - struct ncclComm*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 861
    functionName: ncclCommIntraBarrierIn
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 1
    functionsReached:
    - COMPILER_ATOMIC_STORE
    - COMPILER_ATOMIC_ADD_FETCH
    linkageType: ''
    returnType: void
    signature: void ncclCommIntraBarrierIn(struct ncclComm* comm, uint32_t x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/include/comm.h:868,1
    - Dst: clockNano
      Src: /src/nccl/src/include/comm.h:870,1
    - Dst: clockNano
      Src: /src/nccl/src/include/comm.h:873,1
    - Dst: std::this_thread::yield
      Src: /src/nccl/src/include/comm.h:873,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/include/comm.h:874,1
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/include/comm.h:877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 879
    functionName: ncclCommIntraBarrierOut
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 1
    functionsReached:
    - std::this_thread::yield
    - std::atomic_thread_fence
    - COMPILER_ATOMIC_LOAD
    - clockNano
    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:889,1
    - Dst: ncclRedOp_t
      Src: /src/nccl/src/include/comm.h:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - comm
    - op
    argTypes:
    - ncclComm*
    - ncclRedOp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 897
    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: 1
    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: 2
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: gettime
    functionSourceFile: /src/nccl/src/include/timer.h
    functionUses: 0
    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: 11
    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: 11
    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: 11
    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: 11
    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: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: ncclSymkLLMaxSlots
    functionSourceFile: /src/nccl/src/include/sym_kernels.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclSymkLLMaxSlots(int eltSize = ncclSymkLLMaxEltSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alignUp
      Src: /src/nccl/src/include/sym_kernels.h:98,1
    - Dst: alignUp
      Src: /src/nccl/src/include/sym_kernels.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nChannels
    - nWorks
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: calcArgsSize
    functionSourceFile: /src/nccl/src/include/sym_kernels.h
    functionUses: 2
    functionsReached:
    - alignUp
    linkageType: ''
    returnType: __host__
    signature: __host__ calcArgsSize(int nChannels, int nWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alignUp
      Src: /src/nccl/src/include/sym_kernels.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: getWorkRange
    functionSourceFile: /src/nccl/src/include/sym_kernels.h
    functionUses: 1
    functionsReached:
    - alignUp
    linkageType: ''
    returnType: struct ncclSymkChannelWorkRange
    signature: struct ncclSymkChannelWorkRange * getWorkRange() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getWorkRange
      Src: /src/nccl/src/include/sym_kernels.h:104,1
    - Dst: alignUp
      Src: /src/nccl/src/include/sym_kernels.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nChannels
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: getWorks
    functionSourceFile: /src/nccl/src/include/sym_kernels.h
    functionUses: 1
    functionsReached:
    - getWorkRange
    - alignUp
    linkageType: ''
    returnType: struct ncclSymkDevWork
    signature: struct ncclSymkDevWork * getWorks(int nChannels) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    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: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    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:258,1
    - Dst: divUp
      Src: /src/nccl/src/include/device.h:258,1
    - Dst: min
      Src: /src/nccl/src/include/device.h:260,1
    - Dst: min
      Src: /src/nccl/src/include/device.h:261,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/include/device.h:263,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/include/device.h:264,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: 266
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: ncclP2pPartBounds
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 2
    functionsReached:
    - divUp
    - min
    - std::min<size_t>
    - alignUp
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclP2pPartBounds(int nParts, int part, size_t bytes, size_t*
      partBeg, size_t* partEnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nP2pChannels
    - base
    - part
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: ncclP2pChannelForPart
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclP2pChannelForPart(int nP2pChannels, int base, int part)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nP2pChannels
    - base
    - channel
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: ncclP2pChannelToPart
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 1
    functionsReached: []
    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: 330
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: ncclProtoGrainSize
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclProtoGrainSize(int proto)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/include/device.h:337,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: 358
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 358
    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: 379
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 379
    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: 385
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: ncclMaxDevWorkBatchBytes
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclMaxDevWorkBatchBytes(int cudaArch = NCCL_CUDA_ARCH)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 484
    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: 498
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 498
    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:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 502
    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: 505
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 505
    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:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 509
    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:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - argsBytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 513
    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:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bytePerPack
    - insns
    - bytes
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 521
    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: 531
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 531
    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: 533
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 533
    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: 534
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 534
    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:537,1
    - Dst: ncclNvlsUnrollInsns
      Src: /src/nccl/src/include/device.h:537,1
    - Dst: ncclNvlsUnrollBytes
      Src: /src/nccl/src/include/device.h:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytePerPack
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 538
    functionName: ncclNvlsUnroll
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 0
    functionsReached:
    - ncclNvlsUnrollInsns
    - ncclCalcUnroll
    - 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:542,1
    - Dst: ncclCollUnroll
      Src: /src/nccl/src/include/device.h:545,1
    - Dst: ncclNvlsUnrollBytes
      Src: /src/nccl/src/include/device.h:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 549
    functionName: ncclShmemScratchWarpSize
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 2
    functionsReached:
    - ncclCollUnroll
    - max_constexpr
    - ncclNvlsUnrollBytes
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclShmemScratchWarpSize(int cudaArch = NCCL_CUDA_ARCH)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 553
    functionName: ncclTmaShmemScratchWarpSize
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclTmaShmemScratchWarpSize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclShmemScratchWarpSize
      Src: /src/nccl/src/include/device.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 558
    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: 589
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 589
    functionName: ncclNvlsSupported
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclNvlsSupported(int devRedOp, int type)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 5
    argNames:
    - coll
    - devRedOp
    - type
    - algo
    - proto
    argTypes:
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 652
    functionName: ncclDevFuncId
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 2
    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: 654
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 654
    functionName: ncclDevFuncId_P2p
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclDevFuncId_P2p()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclGdrPinV2Available
      Src: /src/nccl/src/include/graph.h:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - flush
    argTypes:
    - enum ncclTopoFlushType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: ncclGdcPinFlag
    functionSourceFile: /src/nccl/src/include/graph.h
    functionUses: 2
    functionsReached:
    - ncclGdrPinV2Available
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ncclGdcPinFlag(enum ncclTopoFlushType flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - symbol
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: CUPFN
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 9
    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: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: CUCHECK
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 33
    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: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: CUCALL
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 2
    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: 55
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: CUCHECKGOTO
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 27
    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: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: CUCHECKIGNORE
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 11
    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: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    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: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/cudawrap.h:136,1
    - Dst: cudaStreamGetId
      Src: /src/nccl/src/include/cudawrap.h:136,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/cudawrap.h:137,1
    - Dst: cudaStreamGetId
      Src: /src/nccl/src/include/cudawrap.h:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - stream
    - isLegacy
    argTypes:
    - cudaStream_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 144
    functionName: ncclCudaStreamIsLegacyNull
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 1
    functionsReached:
    - CUDACHECK
    - cudaStreamGetId
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaStreamIsLegacyNull(cudaStream_t stream, bool*
      isLegacy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/include/cudawrap.h:147,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/cudawrap.h:149,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/include/cudawrap.h:149,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/include/cudawrap.h:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - driver
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: ncclCudaDriverVersion
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 6
    functionsReached:
    - CUDACHECK
    - cudaDriverGetVersion
    - COMPILER_ATOMIC_STORE
    - COMPILER_ATOMIC_LOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaDriverVersion(int* driver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: resolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t resolve(const char*, T&)
  - 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: validate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool validate(const T&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: toString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string toString(const T&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iequals
      Src: /src/nccl/src/include/param/parser_default.h:42,1
    - Dst: iequals
      Src: /src/nccl/src/include/param/parser_default.h:42,1
    - Dst: iequals
      Src: /src/nccl/src/include/param/parser_default.h:43,1
    - Dst: iequals
      Src: /src/nccl/src/include/param/parser_default.h:43,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: resolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - iequals
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t resolve(const char* input, bool& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: validate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool validate(const bool&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: toString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string toString(const bool& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: resolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t resolve(const char* input, const char*& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: validate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool validate(const char* const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_default.h:69,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_default.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: toString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string toString(const char* const& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::strtoll
      Src: /src/nccl/src/include/param/parser_default.h:83,1
    - Dst: static_cast<T>
      Src: /src/nccl/src/include/param/parser_default.h:86,1
    - Dst: std::strtoull
      Src: /src/nccl/src/include/param/parser_default.h:88,1
    - Dst: static_cast<T>
      Src: /src/nccl/src/include/param/parser_default.h:91,1
    - Dst: softmin
      Src: /src/nccl/src/include/param/parser_default.h:97,1
    - Dst: DEFINE_Apply_LoadMultimem_minmax
      Src: /src/nccl/src/include/param/parser_default.h:97,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 98
    functionName: validate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - std::strtoull
    - DEFINE_Apply_LoadMultimem_minmax
    - softmin
    - static_cast<T>
    - std::strtoll
    linkageType: ''
    returnType: "struct ncclIntegerParser {\n  static ncclResult_t resolve(const char*
      input, T& out) {\n    if (input == nullptr || *input == '\\0') return ncclInvalidArgument;\n
      \   char* endPtr = nullptr;\n    errno = 0;\n    if NCCL_PARAM_IF_CONSTEXPR
      (std::is_signed<T>::value) {\n      long long val = std::strtoll(input, &endPtr,
      10);\n      if (endPtr == input || *endPtr != '\\0' || errno == ERANGE || errno
      == EINVAL)\n        return ncclInvalidArgument;\n      out = static_cast<T>(val);\n
      \   } else {\n      unsigned long long val = std::strtoull(input, &endPtr, 10);\n
      \     if (endPtr == input || *endPtr != '\\0' || errno == ERANGE || errno ==
      EINVAL)\n        return ncclInvalidArgument;\n      out = static_cast<T>(val);\n
      \   }\n    return ncclSuccess;\n  }"
    signature: "struct ncclIntegerParser {\n  static ncclResult_t resolve(const char*
      input, T& out) {\n    if (input == nullptr || *input == '\\0') return ncclInvalidArgument;\n
      \   char* endPtr = nullptr;\n    errno = 0;\n    if NCCL_PARAM_IF_CONSTEXPR
      (std::is_signed<T>::value) {\n      long long val = std::strtoll(input, &endPtr,
      10);\n      if (endPtr == input || *endPtr != '\\0' || errno == ERANGE || errno
      == EINVAL)\n        return ncclInvalidArgument;\n      out = static_cast<T>(val);\n
      \   } else {\n      unsigned long long val = std::strtoull(input, &endPtr, 10);\n
      \     if (endPtr == input || *endPtr != '\\0' || errno == ERANGE || errno ==
      EINVAL)\n        return ncclInvalidArgument;\n      out = static_cast<T>(val);\n
      \   }\n    return ncclSuccess;\n  } validate(const T& val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::strtoll
      Src: /src/nccl/src/include/param/parser_default.h:83,1
    - Dst: static_cast<T>
      Src: /src/nccl/src/include/param/parser_default.h:86,1
    - Dst: std::strtoull
      Src: /src/nccl/src/include/param/parser_default.h:88,1
    - Dst: static_cast<T>
      Src: /src/nccl/src/include/param/parser_default.h:91,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: resolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - static_cast<T>
    - std::strtoll
    - std::strtoull
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t resolve(const char* input, T& out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::strtoll
      Src: /src/nccl/src/include/param/parser_default.h:83,1
    - Dst: static_cast<T>
      Src: /src/nccl/src/include/param/parser_default.h:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: NCCL_PARAM_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - static_cast<T>
    - std::strtoll
    linkageType: ''
    returnType: void
    signature: void NCCL_PARAM_IF_CONSTEXPR (std::is_signed<T>::value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/nccl/src/include/param/parser_default.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: toString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string toString(const T& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resolve
      Src: /src/nccl/src/include/param/parser_default.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: nccl::param::parser::defaultResolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - resolve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t defaultResolve(const void*, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/nccl/src/include/param/parser_default.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: nccl::param::parser::defaultValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool defaultValidate(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/nccl/src/include/param/parser_default.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: nccl::param::parser::defaultToString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string defaultToString(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const boundedCtx<T>*>
      Src: /src/nccl/src/include/param/parser_default.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ' val'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nccl::param::parser::boundedValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - static_cast<const boundedCtx<T>*>
    linkageType: ''
    returnType: bool
    signature: bool boundedValidate(const void* ctx, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resolve
      Src: /src/nccl/src/include/param/parser_default.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: nccl::param::parser::defaultResolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - resolve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t defaultResolve(const void*, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/nccl/src/include/param/parser_default.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: nccl::param::parser::defaultValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool defaultValidate(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/nccl/src/include/param/parser_default.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: nccl::param::parser::defaultToString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string defaultToString(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const boundedCtx<T>*>
      Src: /src/nccl/src/include/param/parser_default.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ' val'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nccl::param::parser::boundedValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - static_cast<const boundedCtx<T>*>
    linkageType: ''
    returnType: bool
    signature: bool boundedValidate(const void* ctx, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resolve
      Src: /src/nccl/src/include/param/parser_default.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: nccl::param::parser::defaultResolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - resolve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t defaultResolve(const void*, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/nccl/src/include/param/parser_default.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: nccl::param::parser::defaultValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool defaultValidate(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/nccl/src/include/param/parser_default.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: nccl::param::parser::defaultToString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string defaultToString(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const boundedCtx<T>*>
      Src: /src/nccl/src/include/param/parser_default.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ' val'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nccl::param::parser::boundedValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - static_cast<const boundedCtx<T>*>
    linkageType: ''
    returnType: bool
    signature: bool boundedValidate(const void* ctx, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resolve
      Src: /src/nccl/src/include/param/parser_default.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: nccl::param::parser::defaultResolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - resolve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t defaultResolve(const void*, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/nccl/src/include/param/parser_default.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: nccl::param::parser::defaultValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool defaultValidate(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/nccl/src/include/param/parser_default.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: nccl::param::parser::defaultToString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string defaultToString(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const boundedCtx<T>*>
      Src: /src/nccl/src/include/param/parser_default.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ' val'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nccl::param::parser::boundedValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - static_cast<const boundedCtx<T>*>
    linkageType: ''
    returnType: bool
    signature: bool boundedValidate(const void* ctx, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resolve
      Src: /src/nccl/src/include/param/parser_default.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: nccl::param::parser::defaultResolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - resolve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t defaultResolve(const void*, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/nccl/src/include/param/parser_default.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: nccl::param::parser::defaultValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool defaultValidate(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/nccl/src/include/param/parser_default.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: nccl::param::parser::defaultToString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string defaultToString(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const boundedCtx<T>*>
      Src: /src/nccl/src/include/param/parser_default.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ' val'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nccl::param::parser::boundedValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - static_cast<const boundedCtx<T>*>
    linkageType: ''
    returnType: bool
    signature: bool boundedValidate(const void* ctx, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resolve
      Src: /src/nccl/src/include/param/parser_default.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: nccl::param::parser::defaultResolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - resolve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t defaultResolve(const void*, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/nccl/src/include/param/parser_default.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: nccl::param::parser::defaultValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool defaultValidate(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/nccl/src/include/param/parser_default.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: nccl::param::parser::defaultToString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string defaultToString(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const boundedCtx<T>*>
      Src: /src/nccl/src/include/param/parser_default.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ' val'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nccl::param::parser::boundedValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - static_cast<const boundedCtx<T>*>
    linkageType: ''
    returnType: bool
    signature: bool boundedValidate(const void* ctx, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resolve
      Src: /src/nccl/src/include/param/parser_default.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: nccl::param::parser::defaultResolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - resolve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t defaultResolve(const void*, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/nccl/src/include/param/parser_default.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: nccl::param::parser::defaultValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool defaultValidate(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/nccl/src/include/param/parser_default.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: nccl::param::parser::defaultToString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string defaultToString(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const boundedCtx<T>*>
      Src: /src/nccl/src/include/param/parser_default.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ' val'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nccl::param::parser::boundedValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - static_cast<const boundedCtx<T>*>
    linkageType: ''
    returnType: bool
    signature: bool boundedValidate(const void* ctx, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resolve
      Src: /src/nccl/src/include/param/parser_default.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: nccl::param::parser::defaultResolve
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - resolve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t defaultResolve(const void*, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/nccl/src/include/param/parser_default.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: nccl::param::parser::defaultValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool defaultValidate(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/nccl/src/include/param/parser_default.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: nccl::param::parser::defaultToString
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string defaultToString(const void*, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const boundedCtx<T>*>
      Src: /src/nccl/src/include/param/parser_default.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ' val'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nccl::param::parser::boundedValidate
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - static_cast<const boundedCtx<T>*>
    linkageType: ''
    returnType: bool
    signature: bool boundedValidate(const void* ctx, const T& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: ncclParamDefault
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclParamParser<T>
    signature: ncclParamParser<T> & ncclParamDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<boundedCtx<T>>
      Src: /src/nccl/src/include/param/parser_default.h:177,1
    - Dst: std::to_string
      Src: /src/nccl/src/include/param/parser_default.h:178,1
    - Dst: std::to_string
      Src: /src/nccl/src/include/param/parser_default.h:179,1
    - Dst: std::move
      Src: /src/nccl/src/include/param/parser_default.h:181,1
    - Dst: std::move
      Src: /src/nccl/src/include/param/parser_default.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lower
    - upper
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: ncclParamBounded
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 0
    functionsReached:
    - std::make_shared<boundedCtx<T>>
    - std::move
    - std::to_string
    linkageType: ''
    returnType: ncclParamParser<T>
    signature: ncclParamParser<T> ncclParamBounded(T lower, T upper)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamBounded
      Src: /src/nccl/src/include/param/parser_default.h:186,1
    - Dst: DEFINE_Apply_LoadMultimem_minmax
      Src: /src/nccl/src/include/param/parser_default.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lower
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: ncclParamBounded
    functionSourceFile: /src/nccl/src/include/param/parser_default.h
    functionUses: 1
    functionsReached:
    - DEFINE_Apply_LoadMultimem_minmax
    - ncclParamBounded
    linkageType: ''
    returnType: ncclParamParser<T>
    signature: ncclParamParser<T> ncclParamBounded(T lower)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - key
    - ','
    - default
    - ','
    - flags
    - ','
    - parser
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: DEFINE_NCCL_PARAM
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_NCCL_PARAM(name, type, key, default, flags, parser, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: USE_NCCL_PARAM
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USE_NCCL_PARAM(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: ~ncclParam() override
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ncclParam() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamTypeIdOf
      Src: /src/nccl/src/include/param/param.h:74,1
    - Dst: std::move
      Src: /src/nccl/src/include/param/param.h:75,1
    - Dst: ncclParamDefault
      Src: /src/nccl/src/include/param/param.h:77,1
    - Dst: ncclParamRegistry::add
      Src: /src/nccl/src/include/param/param.h:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - defVal
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: ncclParam
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached:
    - ncclParamRegistry::add
    - ncclParamTypeIdOf
    - std::move
    - ncclParamDefault
    linkageType: ''
    returnType: void
    signature: "void ncclParam(const char* key, T defVal, ncclParamParser<T> parser
      = {},\n            const char* typeStr = \"\", uint64_t flags = NCCL_PARAM_FLAG_NONE,\n
      \           const char* desc = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: '& operator=(const ncclParam&)'
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclParam
    signature: ncclParam & operator=(const ncclParam&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '& operator=(ncclParam&&)'
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclParam
    signature: ncclParam & operator=(ncclParam&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensureLoaded
      Src: /src/nccl/src/include/param/param.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: operator()()
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached:
    - ensureLoaded
    linkageType: ''
    returnType: T
    signature: T operator()()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ensureLoaded
      Src: /src/nccl/src/include/param/param.h:96,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/param/param.h:97,1
    - Dst: std::memcpy
      Src: /src/nccl/src/include/param/param.h:101,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/param/param.h:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - out
    - maxLen
    - len
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: getRawData
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::memcpy
    - ensureLoaded
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getRawData(void* out, int maxLen, int* len) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensureLoaded
      Src: /src/nccl/src/include/param/param.h:107,1
    - Dst: toString
      Src: /src/nccl/src/include/param/param.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: toString
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 9
    functionsReached:
    - toString
    - ensureLoaded
    linkageType: ''
    returnType: std::string
    signature: std::string toString() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/nccl/src/include/param/param.h:112,1
    - Dst: toString
      Src: /src/nccl/src/include/param/param.h:113,1
    - Dst: nccl::param::utils::flagsStr
      Src: /src/nccl/src/include/param/param.h:114,1
    - Dst: stringFormat
      Src: /src/nccl/src/include/param/param.h:120,1
    - Dst: std::string::c_str
      Src: /src/nccl/src/include/param/param.h:123,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/param.h:124,1
    - Dst: std::string::c_str
      Src: /src/nccl/src/include/param/param.h:124,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/param.h:125,1
    - Dst: std::string::c_str
      Src: /src/nccl/src/include/param/param.h:125,1
    - Dst: desc::c_str
      Src: /src/nccl/src/include/param/param.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: dump
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - toString
    - std::string::c_str
    - desc::c_str
    - stringFormat
    - nccl::param::utils::flagsStr
    linkageType: ''
    returnType: std::string
    signature: std::string dump() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_PARAM_COMPILER_EXPECT
      Src: /src/nccl/src/include/param/param.h:132,1
    - Dst: load
      Src: /src/nccl/src/include/param/param.h:132,1
    - Dst: NCCL_PARAM_COMPILER_EXPECT
      Src: /src/nccl/src/include/param/param.h:134,1
    - Dst: ncclParamIsCacheDisabled
      Src: /src/nccl/src/include/param/param.h:134,1
    - Dst: loadValue
      Src: /src/nccl/src/include/param/param.h:139,1
    - Dst: NCCL_PARAM_COMPILER_EXPECT
      Src: /src/nccl/src/include/param/param.h:144,1
    - Dst: load
      Src: /src/nccl/src/include/param/param.h:144,1
    - Dst: loadValue
      Src: /src/nccl/src/include/param/param.h:145,1
    - Dst: store
      Src: /src/nccl/src/include/param/param.h:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 150
    functionName: ensureLoaded
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 3
    functionsReached:
    - loadValue
    - store
    - ncclParamIsCacheDisabled
    - NCCL_PARAM_COMPILER_EXPECT
    - load
    linkageType: ''
    returnType: std::unique_lock<std::mutex>
    signature: std::unique_lock<std::mutex> ensureLoaded()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamEnvPluginGet
      Src: /src/nccl/src/include/param/param.h:154,1
    - Dst: resolve
      Src: /src/nccl/src/include/param/param.h:157,1
    - Dst: validate
      Src: /src/nccl/src/include/param/param.h:158,1
    - Dst: nccl::param::utils::srcEnvPlugin
      Src: /src/nccl/src/include/param/param.h:160,1
    - Dst: nccl::param::utils::srcDefault
      Src: /src/nccl/src/include/param/param.h:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: loadValue
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 1
    functionsReached:
    - nccl::param::utils::srcEnvPlugin
    - resolve
    - nccl::param::utils::srcDefault
    - validate
    - ncclParamEnvPluginGet
    linkageType: ''
    returnType: void
    signature: void loadValue()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensureLoaded
      Src: /src/nccl/src/include/param/param.h:177,1
    - Dst: std::string::c_str
      Src: /src/nccl/src/include/param/param.h:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: '* ncclParam<const char*>::operator()()'
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - ensureLoaded
    linkageType: ''
    returnType: char
    signature: char * ncclParam<const char*>::operator()()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamEnvPluginGet
      Src: /src/nccl/src/include/param/param.h:186,1
    - Dst: c_str
      Src: /src/nccl/src/include/param/param.h:189,1
    - Dst: nccl::param::utils::srcEnvPlugin
      Src: /src/nccl/src/include/param/param.h:190,1
    - Dst: c_str
      Src: /src/nccl/src/include/param/param.h:194,1
    - Dst: clear
      Src: /src/nccl/src/include/param/param.h:196,1
    - Dst: nccl::param::utils::srcDefault
      Src: /src/nccl/src/include/param/param.h:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: ncclParam<const char*>::loadValue
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached:
    - nccl::param::utils::srcEnvPlugin
    - nccl::param::utils::srcDefault
    - ncclParamEnvPluginGet
    - c_str
    - clear
    linkageType: ''
    returnType: void
    signature: void ncclParam<const char*>::loadValue()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ensureLoaded
      Src: /src/nccl/src/include/param/param.h:206,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/param/param.h:207,1
    - Dst: size
      Src: /src/nccl/src/include/param/param.h:207,1
    - Dst: std::memcpy
      Src: /src/nccl/src/include/param/param.h:212,1
    - Dst: c_str
      Src: /src/nccl/src/include/param/param.h:212,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/src/include/param/param.h:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - out
    - maxLen
    - len
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: ncclParam<const char*>::getRawData
    functionSourceFile: /src/nccl/src/include/param/param.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - static_cast<size_t>
    - ensureLoaded
    - std::memcpy
    - c_str
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclParam<const char*>::getRawData(void* out, int maxLen,
      int* len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: NCCL_PARAM_COMPILER_EXPECT
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_PARAM_COMPILER_EXPECT(x, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: NCCL_PARAM_COMPILER_EXPECT
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_PARAM_COMPILER_EXPECT(x, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_PARAM_IF_CONSTEXPR
      Src: /src/nccl/src/include/param/utils.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: ncclParamTypeIdOf
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 1
    functionsReached:
    - NCCL_PARAM_IF_CONSTEXPR
    linkageType: ''
    returnType: ncclParamTypeId_t
    signature: ncclParamTypeId_t ncclParamTypeIdOf() noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/utils.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: nccl::param::utils::flagsStr
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 1
    functionsReached:
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string flagsStr(uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: nccl::param::utils::srcDefault
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nccl::param::utils::srcEnvPlugin
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcEnvPlugin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:89,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/src/include/param/utils.h:92,1
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::size
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/utils.h:94,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: nccl::param::utils::stringFormat
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::vector::size
    - std::string
    - std::snprintf
    - std::vector::data
    linkageType: ''
    returnType: std::string
    signature: std::string stringFormat(const char* fmt, Args... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:100,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:102,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::param::utils::iequals
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - std::string::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: bool iequals(std::string a, std::string b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:112,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: nccl::param::utils::trim
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::isspace
    - std::string::size
    - static_cast<unsigned char>
    - std::string::substr
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:120,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:124,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:126,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sv
    - delimiter
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: nccl::param::utils::split
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::string::find
    - std::string::substr
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split(std::string sv, char delimiter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/utils.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: nccl::param::utils::flagsStr
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 1
    functionsReached:
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string flagsStr(uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: nccl::param::utils::srcDefault
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nccl::param::utils::srcEnvPlugin
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcEnvPlugin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:89,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/src/include/param/utils.h:92,1
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::size
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/utils.h:94,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: nccl::param::utils::stringFormat
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::vector::size
    - std::string
    - std::snprintf
    - std::vector::data
    linkageType: ''
    returnType: std::string
    signature: std::string stringFormat(const char* fmt, Args... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:100,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:102,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::param::utils::iequals
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - std::string::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: bool iequals(std::string a, std::string b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:112,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: nccl::param::utils::trim
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::isspace
    - std::string::size
    - static_cast<unsigned char>
    - std::string::substr
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:120,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:124,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:126,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sv
    - delimiter
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: nccl::param::utils::split
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::string::find
    - std::string::substr
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split(std::string sv, char delimiter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/utils.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: nccl::param::utils::flagsStr
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 1
    functionsReached:
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string flagsStr(uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: nccl::param::utils::srcDefault
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nccl::param::utils::srcEnvPlugin
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcEnvPlugin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:89,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/src/include/param/utils.h:92,1
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::size
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/utils.h:94,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: nccl::param::utils::stringFormat
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::vector::size
    - std::string
    - std::snprintf
    - std::vector::data
    linkageType: ''
    returnType: std::string
    signature: std::string stringFormat(const char* fmt, Args... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:100,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:102,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::param::utils::iequals
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - std::string::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: bool iequals(std::string a, std::string b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:112,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: nccl::param::utils::trim
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::isspace
    - std::string::size
    - static_cast<unsigned char>
    - std::string::substr
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:120,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:124,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:126,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sv
    - delimiter
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: nccl::param::utils::split
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::string::find
    - std::string::substr
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split(std::string sv, char delimiter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/utils.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: nccl::param::utils::flagsStr
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 1
    functionsReached:
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string flagsStr(uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: nccl::param::utils::srcDefault
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nccl::param::utils::srcEnvPlugin
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcEnvPlugin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:89,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/src/include/param/utils.h:92,1
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::size
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/utils.h:94,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: nccl::param::utils::stringFormat
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::vector::size
    - std::string
    - std::snprintf
    - std::vector::data
    linkageType: ''
    returnType: std::string
    signature: std::string stringFormat(const char* fmt, Args... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:100,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:102,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::param::utils::iequals
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - std::string::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: bool iequals(std::string a, std::string b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:112,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: nccl::param::utils::trim
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::isspace
    - std::string::size
    - static_cast<unsigned char>
    - std::string::substr
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:120,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:124,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:126,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sv
    - delimiter
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: nccl::param::utils::split
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::string::find
    - std::string::substr
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split(std::string sv, char delimiter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/utils.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: nccl::param::utils::flagsStr
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 1
    functionsReached:
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string flagsStr(uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: nccl::param::utils::srcDefault
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nccl::param::utils::srcEnvPlugin
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcEnvPlugin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:89,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/src/include/param/utils.h:92,1
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::size
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/utils.h:94,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: nccl::param::utils::stringFormat
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::vector::size
    - std::string
    - std::snprintf
    - std::vector::data
    linkageType: ''
    returnType: std::string
    signature: std::string stringFormat(const char* fmt, Args... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:100,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:102,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::param::utils::iequals
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - std::string::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: bool iequals(std::string a, std::string b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:112,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: nccl::param::utils::trim
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::isspace
    - std::string::size
    - static_cast<unsigned char>
    - std::string::substr
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:120,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:124,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:126,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sv
    - delimiter
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: nccl::param::utils::split
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::string::find
    - std::string::substr
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split(std::string sv, char delimiter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/utils.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: nccl::param::utils::flagsStr
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 1
    functionsReached:
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string flagsStr(uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: nccl::param::utils::srcDefault
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nccl::param::utils::srcEnvPlugin
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcEnvPlugin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:89,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/src/include/param/utils.h:92,1
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::size
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/utils.h:94,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: nccl::param::utils::stringFormat
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::vector::size
    - std::string
    - std::snprintf
    - std::vector::data
    linkageType: ''
    returnType: std::string
    signature: std::string stringFormat(const char* fmt, Args... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:100,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:102,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::param::utils::iequals
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - std::string::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: bool iequals(std::string a, std::string b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:112,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: nccl::param::utils::trim
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::isspace
    - std::string::size
    - static_cast<unsigned char>
    - std::string::substr
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:120,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:124,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:126,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sv
    - delimiter
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: nccl::param::utils::split
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::string::find
    - std::string::substr
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split(std::string sv, char delimiter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/utils.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: nccl::param::utils::flagsStr
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 1
    functionsReached:
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string flagsStr(uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: nccl::param::utils::srcDefault
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nccl::param::utils::srcEnvPlugin
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcEnvPlugin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:89,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/src/include/param/utils.h:92,1
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::size
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/utils.h:94,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: nccl::param::utils::stringFormat
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::vector::size
    - std::string
    - std::snprintf
    - std::vector::data
    linkageType: ''
    returnType: std::string
    signature: std::string stringFormat(const char* fmt, Args... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:100,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:102,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::param::utils::iequals
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - std::string::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: bool iequals(std::string a, std::string b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:112,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: nccl::param::utils::trim
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::isspace
    - std::string::size
    - static_cast<unsigned char>
    - std::string::substr
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:120,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:124,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:126,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sv
    - delimiter
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: nccl::param::utils::split
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::string::find
    - std::string::substr
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split(std::string sv, char delimiter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/utils.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: nccl::param::utils::flagsStr
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 1
    functionsReached:
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string flagsStr(uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: nccl::param::utils::srcDefault
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nccl::param::utils::srcEnvPlugin
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * srcEnvPlugin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:89,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/src/include/param/utils.h:92,1
    - Dst: std::snprintf
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::vector::size
      Src: /src/nccl/src/include/param/utils.h:93,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/utils.h:94,1
    - Dst: std::vector::data
      Src: /src/nccl/src/include/param/utils.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: nccl::param::utils::stringFormat
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::vector::size
    - std::string
    - std::snprintf
    - std::vector::data
    linkageType: ''
    returnType: std::string
    signature: std::string stringFormat(const char* fmt, Args... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:99,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:100,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:101,1
    - Dst: std::tolower
      Src: /src/nccl/src/include/param/utils.h:102,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::param::utils::iequals
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - std::string::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: bool iequals(std::string a, std::string b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:111,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/utils.h:112,1
    - Dst: std::isspace
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: static_cast<unsigned char>
      Src: /src/nccl/src/include/param/utils.h:113,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: nccl::param::utils::trim
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::isspace
    - std::string::size
    - static_cast<unsigned char>
    - std::string::substr
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:120,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:122,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/utils.h:124,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/include/param/utils.h:126,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/utils.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sv
    - delimiter
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: nccl::param::utils::split
    functionSourceFile: /src/nccl/src/include/param/utils.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::string::find
    - std::string::substr
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split(std::string sv, char delimiter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:31,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:35,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/parser_bitset.h:36,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:37,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:39,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_bitset.h:42,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:43,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: nccl::param::parser::bitsetResolve
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::find
    - std::string::substr
    - static_cast<ResultT>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    - static_cast<const bitsetCtx<EnumT, N>*>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t bitsetResolve(const void* ctx, const char* input,\n                           std::underlying_type_t<EnumT>&
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::param::parser::bitsetValidate
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bitsetValidate(const void*, const std::underlying_type_t<EnumT>&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:61,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:67,1
    - Dst: static_cast<U>
      Src: /src/nccl/src/include/param/parser_bitset.h:75,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:79,1
    - Dst: isSingleBit
      Src: /src/nccl/src/include/param/parser_bitset.h:80,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:82,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: nccl::param::parser::bitsetToString
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<ResultT>
    - static_cast<const bitsetCtx<EnumT, N>*>
    - isSingleBit
    - static_cast<U>
    linkageType: ''
    returnType: std::string
    signature: std::string bitsetToString(const void* ctx, const std::underlying_type_t<EnumT>&
      value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:31,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:35,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/parser_bitset.h:36,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:37,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:39,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_bitset.h:42,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:43,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: nccl::param::parser::bitsetResolve
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::find
    - std::string::substr
    - static_cast<ResultT>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    - static_cast<const bitsetCtx<EnumT, N>*>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t bitsetResolve(const void* ctx, const char* input,\n                           std::underlying_type_t<EnumT>&
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::param::parser::bitsetValidate
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bitsetValidate(const void*, const std::underlying_type_t<EnumT>&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:61,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:67,1
    - Dst: static_cast<U>
      Src: /src/nccl/src/include/param/parser_bitset.h:75,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:79,1
    - Dst: isSingleBit
      Src: /src/nccl/src/include/param/parser_bitset.h:80,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:82,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: nccl::param::parser::bitsetToString
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<ResultT>
    - static_cast<const bitsetCtx<EnumT, N>*>
    - isSingleBit
    - static_cast<U>
    linkageType: ''
    returnType: std::string
    signature: std::string bitsetToString(const void* ctx, const std::underlying_type_t<EnumT>&
      value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:31,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:35,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/parser_bitset.h:36,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:37,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:39,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_bitset.h:42,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:43,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: nccl::param::parser::bitsetResolve
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::find
    - std::string::substr
    - static_cast<ResultT>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    - static_cast<const bitsetCtx<EnumT, N>*>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t bitsetResolve(const void* ctx, const char* input,\n                           std::underlying_type_t<EnumT>&
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::param::parser::bitsetValidate
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bitsetValidate(const void*, const std::underlying_type_t<EnumT>&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:61,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:67,1
    - Dst: static_cast<U>
      Src: /src/nccl/src/include/param/parser_bitset.h:75,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:79,1
    - Dst: isSingleBit
      Src: /src/nccl/src/include/param/parser_bitset.h:80,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:82,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: nccl::param::parser::bitsetToString
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<ResultT>
    - static_cast<const bitsetCtx<EnumT, N>*>
    - isSingleBit
    - static_cast<U>
    linkageType: ''
    returnType: std::string
    signature: std::string bitsetToString(const void* ctx, const std::underlying_type_t<EnumT>&
      value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:31,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:35,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/parser_bitset.h:36,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:37,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:39,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_bitset.h:42,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:43,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: nccl::param::parser::bitsetResolve
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::find
    - std::string::substr
    - static_cast<ResultT>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    - static_cast<const bitsetCtx<EnumT, N>*>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t bitsetResolve(const void* ctx, const char* input,\n                           std::underlying_type_t<EnumT>&
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::param::parser::bitsetValidate
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bitsetValidate(const void*, const std::underlying_type_t<EnumT>&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:61,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:67,1
    - Dst: static_cast<U>
      Src: /src/nccl/src/include/param/parser_bitset.h:75,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:79,1
    - Dst: isSingleBit
      Src: /src/nccl/src/include/param/parser_bitset.h:80,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:82,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: nccl::param::parser::bitsetToString
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<ResultT>
    - static_cast<const bitsetCtx<EnumT, N>*>
    - isSingleBit
    - static_cast<U>
    linkageType: ''
    returnType: std::string
    signature: std::string bitsetToString(const void* ctx, const std::underlying_type_t<EnumT>&
      value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:31,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:35,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/parser_bitset.h:36,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:37,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:39,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_bitset.h:42,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:43,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: nccl::param::parser::bitsetResolve
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::find
    - std::string::substr
    - static_cast<ResultT>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    - static_cast<const bitsetCtx<EnumT, N>*>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t bitsetResolve(const void* ctx, const char* input,\n                           std::underlying_type_t<EnumT>&
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::param::parser::bitsetValidate
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bitsetValidate(const void*, const std::underlying_type_t<EnumT>&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:61,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:67,1
    - Dst: static_cast<U>
      Src: /src/nccl/src/include/param/parser_bitset.h:75,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:79,1
    - Dst: isSingleBit
      Src: /src/nccl/src/include/param/parser_bitset.h:80,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:82,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: nccl::param::parser::bitsetToString
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<ResultT>
    - static_cast<const bitsetCtx<EnumT, N>*>
    - isSingleBit
    - static_cast<U>
    linkageType: ''
    returnType: std::string
    signature: std::string bitsetToString(const void* ctx, const std::underlying_type_t<EnumT>&
      value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:31,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:35,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/parser_bitset.h:36,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:37,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:39,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_bitset.h:42,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:43,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: nccl::param::parser::bitsetResolve
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::find
    - std::string::substr
    - static_cast<ResultT>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    - static_cast<const bitsetCtx<EnumT, N>*>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t bitsetResolve(const void* ctx, const char* input,\n                           std::underlying_type_t<EnumT>&
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::param::parser::bitsetValidate
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bitsetValidate(const void*, const std::underlying_type_t<EnumT>&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:61,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:67,1
    - Dst: static_cast<U>
      Src: /src/nccl/src/include/param/parser_bitset.h:75,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:79,1
    - Dst: isSingleBit
      Src: /src/nccl/src/include/param/parser_bitset.h:80,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:82,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: nccl::param::parser::bitsetToString
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<ResultT>
    - static_cast<const bitsetCtx<EnumT, N>*>
    - isSingleBit
    - static_cast<U>
    linkageType: ''
    returnType: std::string
    signature: std::string bitsetToString(const void* ctx, const std::underlying_type_t<EnumT>&
      value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:31,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:35,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/parser_bitset.h:36,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:37,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:39,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_bitset.h:42,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:43,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: nccl::param::parser::bitsetResolve
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::find
    - std::string::substr
    - static_cast<ResultT>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    - static_cast<const bitsetCtx<EnumT, N>*>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t bitsetResolve(const void* ctx, const char* input,\n                           std::underlying_type_t<EnumT>&
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::param::parser::bitsetValidate
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bitsetValidate(const void*, const std::underlying_type_t<EnumT>&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:61,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:67,1
    - Dst: static_cast<U>
      Src: /src/nccl/src/include/param/parser_bitset.h:75,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:79,1
    - Dst: isSingleBit
      Src: /src/nccl/src/include/param/parser_bitset.h:80,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:82,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: nccl::param::parser::bitsetToString
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<ResultT>
    - static_cast<const bitsetCtx<EnumT, N>*>
    - isSingleBit
    - static_cast<U>
    linkageType: ''
    returnType: std::string
    signature: std::string bitsetToString(const void* ctx, const std::underlying_type_t<EnumT>&
      value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:31,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:35,1
    - Dst: std::string::find
      Src: /src/nccl/src/include/param/parser_bitset.h:36,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:37,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::substr
      Src: /src/nccl/src/include/param/parser_bitset.h:38,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:39,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_bitset.h:42,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:43,1
    - Dst: std::string::size
      Src: /src/nccl/src/include/param/parser_bitset.h:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: nccl::param::parser::bitsetResolve
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::find
    - std::string::substr
    - static_cast<ResultT>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    - static_cast<const bitsetCtx<EnumT, N>*>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t bitsetResolve(const void* ctx, const char* input,\n                           std::underlying_type_t<EnumT>&
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::param::parser::bitsetValidate
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bitsetValidate(const void*, const std::underlying_type_t<EnumT>&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const bitsetCtx<EnumT, N>*>
      Src: /src/nccl/src/include/param/parser_bitset.h:61,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:67,1
    - Dst: static_cast<U>
      Src: /src/nccl/src/include/param/parser_bitset.h:75,1
    - Dst: static_cast<ResultT>
      Src: /src/nccl/src/include/param/parser_bitset.h:79,1
    - Dst: isSingleBit
      Src: /src/nccl/src/include/param/parser_bitset.h:80,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:82,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_bitset.h:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - std::underlying_type_t<EnumT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: nccl::param::parser::bitsetToString
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<ResultT>
    - static_cast<const bitsetCtx<EnumT, N>*>
    - isSingleBit
    - static_cast<U>
    linkageType: ''
    returnType: std::string
    signature: std::string bitsetToString(const void* ctx, const std::underlying_type_t<EnumT>&
      value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<bitsetCtx<EnumT, N>>
      Src: /src/nccl/src/include/param/parser_bitset.h:100,1
    - Dst: std::move
      Src: /src/nccl/src/include/param/parser_bitset.h:101,1
    - Dst: std::move
      Src: /src/nccl/src/include/param/parser_bitset.h:109,1
    - Dst: std::move
      Src: /src/nccl/src/include/param/parser_bitset.h:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - options
    argTypes:
    - ncclOptionSet<EnumT, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: ncclParamBitsetOf
    functionSourceFile: /src/nccl/src/include/param/parser_bitset.h
    functionUses: 0
    functionsReached:
    - std::make_shared<bitsetCtx<EnumT, N>>
    - std::move
    linkageType: ''
    returnType: ncclParamParser<std::underlying_type_t<EnumT>>
    signature: "ncclParamParser<std::underlying_type_t<EnumT>> ncclParamBitsetOf(ncclOptionSet<EnumT,
      N> options,\n                                                                 char
      delimiter = ',')"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:22,1
    - Dst: nccl::param::utils::split
      Src: /src/nccl/src/include/param/parser_list.h:24,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_list.h:26,1
    - Dst: auto::empty
      Src: /src/nccl/src/include/param/parser_list.h:27,1
    - Dst: insert
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: end
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::data
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::size
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: nccl::param::parser::listOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - auto::data
    - nccl::param::utils::split
    - auto::empty
    - insert
    - static_cast<const listOfCtx*>
    - std::string
    - auto::size
    - end
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t listOfResolve(const void* ctx, const char* input, ContainerT&
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: nccl::param::parser::listOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool listOfValidate(const void*, const ContainerT&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:39,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_list.h:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: nccl::param::parser::listOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<const listOfCtx*>
    linkageType: ''
    returnType: std::string
    signature: std::string listOfToString(const void* ctx, const ContainerT& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:22,1
    - Dst: nccl::param::utils::split
      Src: /src/nccl/src/include/param/parser_list.h:24,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_list.h:26,1
    - Dst: auto::empty
      Src: /src/nccl/src/include/param/parser_list.h:27,1
    - Dst: insert
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: end
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::data
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::size
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: nccl::param::parser::listOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - auto::data
    - nccl::param::utils::split
    - auto::empty
    - insert
    - static_cast<const listOfCtx*>
    - std::string
    - auto::size
    - end
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t listOfResolve(const void* ctx, const char* input, ContainerT&
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: nccl::param::parser::listOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool listOfValidate(const void*, const ContainerT&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:39,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_list.h:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: nccl::param::parser::listOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<const listOfCtx*>
    linkageType: ''
    returnType: std::string
    signature: std::string listOfToString(const void* ctx, const ContainerT& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:22,1
    - Dst: nccl::param::utils::split
      Src: /src/nccl/src/include/param/parser_list.h:24,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_list.h:26,1
    - Dst: auto::empty
      Src: /src/nccl/src/include/param/parser_list.h:27,1
    - Dst: insert
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: end
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::data
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::size
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: nccl::param::parser::listOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - auto::data
    - nccl::param::utils::split
    - auto::empty
    - insert
    - static_cast<const listOfCtx*>
    - std::string
    - auto::size
    - end
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t listOfResolve(const void* ctx, const char* input, ContainerT&
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: nccl::param::parser::listOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool listOfValidate(const void*, const ContainerT&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:39,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_list.h:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: nccl::param::parser::listOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<const listOfCtx*>
    linkageType: ''
    returnType: std::string
    signature: std::string listOfToString(const void* ctx, const ContainerT& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:22,1
    - Dst: nccl::param::utils::split
      Src: /src/nccl/src/include/param/parser_list.h:24,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_list.h:26,1
    - Dst: auto::empty
      Src: /src/nccl/src/include/param/parser_list.h:27,1
    - Dst: insert
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: end
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::data
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::size
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: nccl::param::parser::listOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - auto::data
    - nccl::param::utils::split
    - auto::empty
    - insert
    - static_cast<const listOfCtx*>
    - std::string
    - auto::size
    - end
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t listOfResolve(const void* ctx, const char* input, ContainerT&
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: nccl::param::parser::listOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool listOfValidate(const void*, const ContainerT&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:39,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_list.h:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: nccl::param::parser::listOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<const listOfCtx*>
    linkageType: ''
    returnType: std::string
    signature: std::string listOfToString(const void* ctx, const ContainerT& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:22,1
    - Dst: nccl::param::utils::split
      Src: /src/nccl/src/include/param/parser_list.h:24,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_list.h:26,1
    - Dst: auto::empty
      Src: /src/nccl/src/include/param/parser_list.h:27,1
    - Dst: insert
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: end
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::data
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::size
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: nccl::param::parser::listOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - auto::data
    - nccl::param::utils::split
    - auto::empty
    - insert
    - static_cast<const listOfCtx*>
    - std::string
    - auto::size
    - end
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t listOfResolve(const void* ctx, const char* input, ContainerT&
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: nccl::param::parser::listOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool listOfValidate(const void*, const ContainerT&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:39,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_list.h:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: nccl::param::parser::listOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<const listOfCtx*>
    linkageType: ''
    returnType: std::string
    signature: std::string listOfToString(const void* ctx, const ContainerT& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:22,1
    - Dst: nccl::param::utils::split
      Src: /src/nccl/src/include/param/parser_list.h:24,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_list.h:26,1
    - Dst: auto::empty
      Src: /src/nccl/src/include/param/parser_list.h:27,1
    - Dst: insert
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: end
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::data
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::size
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: nccl::param::parser::listOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - auto::data
    - nccl::param::utils::split
    - auto::empty
    - insert
    - static_cast<const listOfCtx*>
    - std::string
    - auto::size
    - end
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t listOfResolve(const void* ctx, const char* input, ContainerT&
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: nccl::param::parser::listOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool listOfValidate(const void*, const ContainerT&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:39,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_list.h:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: nccl::param::parser::listOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<const listOfCtx*>
    linkageType: ''
    returnType: std::string
    signature: std::string listOfToString(const void* ctx, const ContainerT& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:22,1
    - Dst: nccl::param::utils::split
      Src: /src/nccl/src/include/param/parser_list.h:24,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_list.h:26,1
    - Dst: auto::empty
      Src: /src/nccl/src/include/param/parser_list.h:27,1
    - Dst: insert
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: end
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::data
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::size
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: nccl::param::parser::listOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - auto::data
    - nccl::param::utils::split
    - auto::empty
    - insert
    - static_cast<const listOfCtx*>
    - std::string
    - auto::size
    - end
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t listOfResolve(const void* ctx, const char* input, ContainerT&
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: nccl::param::parser::listOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool listOfValidate(const void*, const ContainerT&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:39,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_list.h:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: nccl::param::parser::listOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<const listOfCtx*>
    linkageType: ''
    returnType: std::string
    signature: std::string listOfToString(const void* ctx, const ContainerT& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:22,1
    - Dst: nccl::param::utils::split
      Src: /src/nccl/src/include/param/parser_list.h:24,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_list.h:26,1
    - Dst: auto::empty
      Src: /src/nccl/src/include/param/parser_list.h:27,1
    - Dst: insert
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: end
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::data
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    - Dst: auto::size
      Src: /src/nccl/src/include/param/parser_list.h:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: nccl::param::parser::listOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - auto::data
    - nccl::param::utils::split
    - auto::empty
    - insert
    - static_cast<const listOfCtx*>
    - std::string
    - auto::size
    - end
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t listOfResolve(const void* ctx, const char* input, ContainerT&
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: nccl::param::parser::listOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool listOfValidate(const void*, const ContainerT&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const listOfCtx*>
      Src: /src/nccl/src/include/param/parser_list.h:39,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_list.h:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - ContainerT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: nccl::param::parser::listOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<const listOfCtx*>
    linkageType: ''
    returnType: std::string
    signature: std::string listOfToString(const void* ctx, const ContainerT& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<listOfCtx>
      Src: /src/nccl/src/include/param/parser_list.h:57,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_list.h:58,1
    - Dst: std::move
      Src: /src/nccl/src/include/param/parser_list.h:60,1
    - Dst: std::move
      Src: /src/nccl/src/include/param/parser_list.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: ncclParamListOf
    functionSourceFile: /src/nccl/src/include/param/parser_list.h
    functionUses: 0
    functionsReached:
    - std::make_shared<listOfCtx>
    - std::move
    - std::string
    linkageType: ''
    returnType: ncclParamParser<ContainerT>
    signature: ncclParamParser<ContainerT> ncclParamListOf(char delimiter = ',')
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:21,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_enum.h:23,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_enum.h:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: nccl::param::parser::oneOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string
    - static_cast<const ncclOptionSet<T, N>*>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t oneOfResolve(const void* ctx, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: nccl::param::parser::oneOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool oneOfValidate(const void*, const T&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: nccl::param::parser::oneOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - static_cast<const ncclOptionSet<T, N>*>
    linkageType: ''
    returnType: std::string
    signature: std::string oneOfToString(const void* ctx, const T& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:21,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_enum.h:23,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_enum.h:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: nccl::param::parser::oneOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string
    - static_cast<const ncclOptionSet<T, N>*>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t oneOfResolve(const void* ctx, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: nccl::param::parser::oneOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool oneOfValidate(const void*, const T&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: nccl::param::parser::oneOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - static_cast<const ncclOptionSet<T, N>*>
    linkageType: ''
    returnType: std::string
    signature: std::string oneOfToString(const void* ctx, const T& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:21,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_enum.h:23,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_enum.h:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: nccl::param::parser::oneOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string
    - static_cast<const ncclOptionSet<T, N>*>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t oneOfResolve(const void* ctx, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: nccl::param::parser::oneOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool oneOfValidate(const void*, const T&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: nccl::param::parser::oneOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - static_cast<const ncclOptionSet<T, N>*>
    linkageType: ''
    returnType: std::string
    signature: std::string oneOfToString(const void* ctx, const T& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:21,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_enum.h:23,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_enum.h:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: nccl::param::parser::oneOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string
    - static_cast<const ncclOptionSet<T, N>*>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t oneOfResolve(const void* ctx, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: nccl::param::parser::oneOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool oneOfValidate(const void*, const T&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: nccl::param::parser::oneOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - static_cast<const ncclOptionSet<T, N>*>
    linkageType: ''
    returnType: std::string
    signature: std::string oneOfToString(const void* ctx, const T& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:21,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_enum.h:23,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_enum.h:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: nccl::param::parser::oneOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string
    - static_cast<const ncclOptionSet<T, N>*>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t oneOfResolve(const void* ctx, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: nccl::param::parser::oneOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool oneOfValidate(const void*, const T&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: nccl::param::parser::oneOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - static_cast<const ncclOptionSet<T, N>*>
    linkageType: ''
    returnType: std::string
    signature: std::string oneOfToString(const void* ctx, const T& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:21,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_enum.h:23,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_enum.h:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: nccl::param::parser::oneOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string
    - static_cast<const ncclOptionSet<T, N>*>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t oneOfResolve(const void* ctx, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: nccl::param::parser::oneOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool oneOfValidate(const void*, const T&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: nccl::param::parser::oneOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - static_cast<const ncclOptionSet<T, N>*>
    linkageType: ''
    returnType: std::string
    signature: std::string oneOfToString(const void* ctx, const T& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:21,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_enum.h:23,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_enum.h:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: nccl::param::parser::oneOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string
    - static_cast<const ncclOptionSet<T, N>*>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t oneOfResolve(const void* ctx, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: nccl::param::parser::oneOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool oneOfValidate(const void*, const T&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: nccl::param::parser::oneOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - static_cast<const ncclOptionSet<T, N>*>
    linkageType: ''
    returnType: std::string
    signature: std::string oneOfToString(const void* ctx, const T& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:21,1
    - Dst: nccl::param::utils::trim
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string
      Src: /src/nccl/src/include/param/parser_enum.h:22,1
    - Dst: std::string::empty
      Src: /src/nccl/src/include/param/parser_enum.h:23,1
    - Dst: nccl::param::utils::iequals
      Src: /src/nccl/src/include/param/parser_enum.h:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - input
    - ' out'
    argTypes:
    - void*
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: nccl::param::parser::oneOfResolve
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string
    - static_cast<const ncclOptionSet<T, N>*>
    - nccl::param::utils::iequals
    - nccl::param::utils::trim
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t oneOfResolve(const void* ctx, const char* input, T& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: nccl::param::parser::oneOfValidate
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool oneOfValidate(const void*, const T&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ncclOptionSet<T, N>*>
      Src: /src/nccl/src/include/param/parser_enum.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - ' value'
    argTypes:
    - void*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: nccl::param::parser::oneOfToString
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - static_cast<const ncclOptionSet<T, N>*>
    linkageType: ''
    returnType: std::string
    signature: std::string oneOfToString(const void* ctx, const T& value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<ncclOptionSet<T, N>>
      Src: /src/nccl/src/include/param/parser_enum.h:50,1
    - Dst: std::move
      Src: /src/nccl/src/include/param/parser_enum.h:50,1
    - Dst: std::move
      Src: /src/nccl/src/include/param/parser_enum.h:58,1
    - Dst: std::move
      Src: /src/nccl/src/include/param/parser_enum.h:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - options
    argTypes:
    - ncclOptionSet<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: ncclParamOneOf
    functionSourceFile: /src/nccl/src/include/param/parser_enum.h
    functionUses: 0
    functionsReached:
    - std::make_shared<ncclOptionSet<T, N>>
    - std::move
    linkageType: ''
    returnType: ncclParamParser<T>
    signature: ncclParamParser<T> ncclParamOneOf(ncclOptionSet<T, N> options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: ~ncclParamInterface()
    functionSourceFile: /src/nccl/src/include/param/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ncclParamInterface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<registryState*>
      Src: /src/nccl/src/include/param/param_registry.h:59,1
    - Dst: ncclParamRegistryInstance
      Src: /src/nccl/src/include/param/param_registry.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: '& state()'
    functionSourceFile: /src/nccl/src/include/param/param_registry.h
    functionUses: 0
    functionsReached:
    - static_cast<registryState*>
    - ncclParamRegistryInstance
    linkageType: ''
    returnType: registryState
    signature: registryState & state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/nccl/src/include/param/param_registry.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: '& instance()'
    functionSourceFile: /src/nccl/src/include/param/param_registry.h
    functionUses: 0
    functionsReached:
    - state
    linkageType: ''
    returnType: mapType
    signature: mapType & instance()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/nccl/src/include/param/param_registry.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: '& mutex()'
    functionSourceFile: /src/nccl/src/include/param/param_registry.h
    functionUses: 0
    functionsReached:
    - state
    linkageType: ''
    returnType: std::mutex
    signature: std::mutex & mutex()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: ncclParamRegistry::ncclParamRegistry
    functionSourceFile: /src/nccl/src/include/param/param_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclParamRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resolveFn
      Src: /src/nccl/src/include/param/parser_common.h:32,1
    - Dst: get
      Src: /src/nccl/src/include/param/parser_common.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - ' out'
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: resolve
    functionSourceFile: /src/nccl/src/include/param/parser_common.h
    functionUses: 9
    functionsReached:
    - resolveFn
    - get
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t resolve(const char* input, T& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validateFn
      Src: /src/nccl/src/include/param/parser_common.h:35,1
    - Dst: get
      Src: /src/nccl/src/include/param/parser_common.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: validate
    functionSourceFile: /src/nccl/src/include/param/parser_common.h
    functionUses: 9
    functionsReached:
    - validateFn
    - get
    linkageType: ''
    returnType: bool
    signature: bool validate(const T& val) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toStringFn
      Src: /src/nccl/src/include/param/parser_common.h:38,1
    - Dst: get
      Src: /src/nccl/src/include/param/parser_common.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: toString
    functionSourceFile: /src/nccl/src/include/param/parser_common.h
    functionUses: 10
    functionsReached:
    - toStringFn
    - get
    linkageType: ''
    returnType: std::string
    signature: std::string toString(const T& val) const
  - 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: operator bool() const
    functionSourceFile: /src/nccl/src/include/param/parser_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/nccl/src/include/param/parser_common.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: begin
    functionSourceFile: /src/nccl/src/include/param/parser_common.h
    functionUses: 2
    functionsReached:
    - data
    linkageType: ''
    returnType: ncclOption<T>
    signature: ncclOption<T> * begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/nccl/src/include/param/parser_common.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: end
    functionSourceFile: /src/nccl/src/include/param/parser_common.h
    functionUses: 101
    functionsReached:
    - data
    linkageType: ''
    returnType: ncclOption<T>
    signature: ncclOption<T> * end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: size
    functionSourceFile: /src/nccl/src/include/param/parser_common.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: makeOption
    functionSourceFile: /src/nccl/src/include/param/parser_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclOption<T>
    signature: ncclOption<T> makeOption(const char* name, T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - value
    - desc
    argTypes:
    - char*
    - T
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: makeOption
    functionSourceFile: /src/nccl/src/include/param/parser_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclOption<T>
    signature: ncclOption<T> makeOption(const char* name, T value, const char* desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - first
    argTypes:
    - ncclOption<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: makeOptions
    functionSourceFile: /src/nccl/src/include/param/parser_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto makeOptions(ncclOption<T> first, Args... rest) -> ncclOptionSet<T,
      1 + sizeof...(Args)>
  - 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:
    - nvtxDomainNameCategoryA
    - nvtxDomainCreateA
    - nvtxDomainCreateW
    - nvtxDomainRegisterStringA
    - nvtxDomainNameCategoryW
    - NVTX3_STATIC_ASSERT
    - nvtxDomainRegisterStringW
    - from_bytes_msb_to_lsb
    - get_handle
    - domain::get<D>
    - c_str
    - get_id
    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:
    - nvtxDomainNameCategoryA
    - domain::get<D>
    - get_id
    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>
    - nvtxDomainNameCategoryW
    - get_id
    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:
    - domain::get<D>
    - nvtxDomainRegisterStringW
    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_value
    - get_type
    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_value
    - get_type
    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_value
    - get_type
    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>
    - nvtxDomainRangePushEx
    - get
    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:
    - nvtxDomainRangePop
    - domain::get<D>
    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>
    - nvtxDomainRangePushEx
    - get
    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:
    - nvtxDomainRangePop
    - domain::get<D>
    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>
    - nvtxDomainRangePushEx
    - get
    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:
    - nvtxDomainRangePop
    - domain::get<D>
    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:
    - domain::get<D>
    - nvtxDomainRangeStartEx
    - 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:
    - domain::get<D>
    - range_handle::get_value
    - 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:
    - nvtxDomainNameCategoryA
    - nvtxDomainCreateA
    - nvtxDomainCreateW
    - nvtxDomainRegisterStringA
    - nvtxDomainNameCategoryW
    - NVTX3_STATIC_ASSERT
    - nvtxDomainRegisterStringW
    - from_bytes_msb_to_lsb
    - get_handle
    - domain::get<D>
    - c_str
    - get_id
    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:
    - nvtxDomainNameCategoryA
    - domain::get<D>
    - get_id
    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>
    - nvtxDomainNameCategoryW
    - get_id
    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:
    - domain::get<D>
    - nvtxDomainRegisterStringW
    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_value
    - get_type
    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_value
    - get_type
    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_value
    - get_type
    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>
    - nvtxDomainRangePushEx
    - get
    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:
    - nvtxDomainRangePop
    - domain::get<D>
    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>
    - nvtxDomainRangePushEx
    - get
    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:
    - nvtxDomainRangePop
    - domain::get<D>
    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>
    - nvtxDomainRangePushEx
    - get
    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:
    - nvtxDomainRangePop
    - domain::get<D>
    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:
    - domain::get<D>
    - nvtxDomainRangeStartEx
    - 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:
    - domain::get<D>
    - range_handle::get_value
    - 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:
    - nvtxMarkEx
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxRangeStartEx
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxRangeStartA
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxRangeStartW
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxRangeEnd
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxRangePushEx
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxRangePushA
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxRangePushW
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxRangePop
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxNameCategoryA
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxNameCategoryW
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxNameOsThreadA
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxNameOsThreadW
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainMarkEx
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainRangeEnd
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainRangePushEx
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainRangePop
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainResourceCreate
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainResourceDestroy
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainNameCategoryA
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainNameCategoryW
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainRegisterStringA
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainRegisterStringW
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainCreateA
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxDomainDestroy
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - nvtxInitialize
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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:
    - local
    - NVTX_VERSIONED_IDENTIFIER
    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_EXT_PAYLOAD_VERSIONED_ID
    - NVTX_VERSIONED_IDENTIFIER
    - NVTX_INFO
    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: ncclOsGetPid
      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_DLLCLOSE
    - NVTX_ERR
    - access
    - fread
    - ncclOsGetPid
    - fclose
    - NVTX_STR
    - strerror
    - NVTX_DLLOPEN
    - NVTX_GETENV
    - NVTX_VERSIONED_IDENTIFIER
    - fopen
    - init_fnptr
    - snprintf
    - faccessat
    - NVTX_DLLFUNC
    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_ATOMIC_CAS_32
    - NVTX_VERSIONED_IDENTIFIER
    - NVTX_YIELD
    - 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_INFO
    - NVTX_VERSIONED_IDENTIFIER
    - 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: ncclOsGetPid
      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_DLLCLOSE
    - NVTX_ERR
    - access
    - fread
    - ncclOsGetPid
    - fclose
    - NVTX_STR
    - strerror
    - NVTX_DLLOPEN
    - NVTX_GETENV
    - fopen
    - snprintf
    - faccessat
    - NVTX_DLLFUNC
    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_ERR
    - NVTX_MEMBAR
    - NVTX_ATOMIC_CAS_PTR
    - nvtxInitialize
    - NVTX_VERSIONED_IDENTIFIER
    - init_fnptr
    - NVTX_INFO
    - NVTX_YIELD
    - NVTX_ATOMIC_WRITE_PTR
    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: 9
    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: 9
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 20
    functionName: NCCL_CONVERT_ORDER
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_CONVERT_ORDER(order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: COMPILER_ATOMIC_LOAD
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_LOAD(ptr, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - dest
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: COMPILER_ATOMIC_LOAD_DEST
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_LOAD_DEST(ptr, dest, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: COMPILER_ATOMIC_STORE
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_STORE(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: COMPILER_ATOMIC_LOAD_32
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_LOAD_32(ptr, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: COMPILER_ATOMIC_STORE_32
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_STORE_32(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: COMPILER_ATOMIC_EXCHANGE
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_EXCHANGE(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ptr
    - ','
    - expected
    - ','
    - desired
    - ','
    - success_order
    - ','
    - failure_order
    - )
    argTypes:
    - 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: COMPILER_ATOMIC_COMPARE_EXCHANGE
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_COMPARE_EXCHANGE(ptr, expected, desired, success_order,
      failure_order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: COMPILER_ATOMIC_FETCH_ADD
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_FETCH_ADD(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: COMPILER_ATOMIC_ADD_FETCH
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_ADD_FETCH(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: COMPILER_ATOMIC_SUB_FETCH
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_SUB_FETCH(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: COMPILER_PREFETCH
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_PREFETCH(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: COMPILER_POPCOUNT32
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_POPCOUNT32(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: COMPILER_POPCOUNT64
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_POPCOUNT64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: COMPILER_EXPECT
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_EXPECT(x, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: COMPILER_FFS
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_FFS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: COMPILER_FFSL
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_FFSL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: COMPILER_FFSLL
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_FFSLL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: COMPILER_CLZ
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_CLZ(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: COMPILER_CLZL
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_CLZL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: COMPILER_CLZLL
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_CLZLL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: COMPILER_BSWAP16
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_BSWAP16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: COMPILER_BSWAP32
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_BSWAP32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: COMPILER_BSWAP64
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_BSWAP64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - alignment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: COMPILER_ASSUME_ALIGNED
    functionSourceFile: /src/nccl/src/include/compiler/gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ASSUME_ALIGNED(ptr, alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_load_explicit
      Src: /src/nccl/src/include/compiler/msvc.h:19,1
    - Dst: reinterpret_cast<volatile std::atomic<T>*>
      Src: /src/nccl/src/include/compiler/msvc.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - order
    argTypes:
    - T*
    - std::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: COMPILER_ATOMIC_LOAD_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<volatile std::atomic<T>*>
    - std::atomic_load_explicit
    linkageType: ''
    returnType: T
    signature: T COMPILER_ATOMIC_LOAD_impl(volatile T* ptr, std::memory_order order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: COMPILER_ATOMIC_LOAD
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_LOAD(ptr, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_load_explicit
      Src: /src/nccl/src/include/compiler/msvc.h:25,1
    - Dst: reinterpret_cast<volatile std::atomic<T>*>
      Src: /src/nccl/src/include/compiler/msvc.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - dest
    - order
    argTypes:
    - T*
    - T*
    - std::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: COMPILER_ATOMIC_LOAD_DEST_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<volatile std::atomic<T>*>
    - std::atomic_load_explicit
    linkageType: ''
    returnType: void
    signature: void COMPILER_ATOMIC_LOAD_DEST_impl(volatile T* ptr, T* dest, std::memory_order
      order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - dest
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: COMPILER_ATOMIC_LOAD_DEST
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_LOAD_DEST(ptr, dest, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_store_explicit
      Src: /src/nccl/src/include/compiler/msvc.h:31,1
    - Dst: reinterpret_cast<volatile std::atomic<T>*>
      Src: /src/nccl/src/include/compiler/msvc.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - val
    - order
    argTypes:
    - T*
    - T
    - std::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: COMPILER_ATOMIC_STORE_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - std::atomic_store_explicit
    - reinterpret_cast<volatile std::atomic<T>*>
    linkageType: ''
    returnType: void
    signature: void COMPILER_ATOMIC_STORE_impl(volatile T* ptr, T val, std::memory_order
      order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: COMPILER_ATOMIC_STORE
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_STORE(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: COMPILER_ATOMIC_LOAD_32
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_LOAD_32(ptr, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: COMPILER_ATOMIC_STORE_32
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_STORE_32(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_exchange_explicit
      Src: /src/nccl/src/include/compiler/msvc.h:43,1
    - Dst: reinterpret_cast<volatile std::atomic<T>*>
      Src: /src/nccl/src/include/compiler/msvc.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - val
    - order
    argTypes:
    - T*
    - T
    - std::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: COMPILER_ATOMIC_EXCHANGE_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - std::atomic_exchange_explicit
    - reinterpret_cast<volatile std::atomic<T>*>
    linkageType: ''
    returnType: T
    signature: T COMPILER_ATOMIC_EXCHANGE_impl(volatile T* ptr, T val, std::memory_order
      order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: COMPILER_ATOMIC_EXCHANGE
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_EXCHANGE(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_compare_exchange_strong_explicit
      Src: /src/nccl/src/include/compiler/msvc.h:50,1
    - Dst: reinterpret_cast<volatile std::atomic<T>*>
      Src: /src/nccl/src/include/compiler/msvc.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ptr
    - expected
    - desired
    - success_order
    - failure_order
    argTypes:
    - T*
    - T*
    - T
    - std::memory_order
    - std::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: COMPILER_ATOMIC_COMPARE_EXCHANGE_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - std::atomic_compare_exchange_strong_explicit
    - reinterpret_cast<volatile std::atomic<T>*>
    linkageType: ''
    returnType: bool
    signature: "bool COMPILER_ATOMIC_COMPARE_EXCHANGE_impl(volatile T* ptr, T* expected,
      T desired,\n    std::memory_order success_order, std::memory_order failure_order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ptr
    - ','
    - expected
    - ','
    - desired
    - ','
    - success_order
    - ','
    - failure_order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: COMPILER_ATOMIC_COMPARE_EXCHANGE
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_COMPARE_EXCHANGE(ptr, expected, desired, success_order,
      failure_order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_fetch_add_explicit
      Src: /src/nccl/src/include/compiler/msvc.h:58,1
    - Dst: reinterpret_cast<volatile std::atomic<T>*>
      Src: /src/nccl/src/include/compiler/msvc.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - val
    - order
    argTypes:
    - T*
    - T
    - std::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: COMPILER_ATOMIC_FETCH_ADD_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - std::atomic_fetch_add_explicit
    - reinterpret_cast<volatile std::atomic<T>*>
    linkageType: ''
    returnType: T
    signature: T COMPILER_ATOMIC_FETCH_ADD_impl(volatile T* ptr, T val, std::memory_order
      order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: COMPILER_ATOMIC_FETCH_ADD
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_FETCH_ADD(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_fetch_add_explicit
      Src: /src/nccl/src/include/compiler/msvc.h:64,1
    - Dst: reinterpret_cast<volatile std::atomic<T>*>
      Src: /src/nccl/src/include/compiler/msvc.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - val
    - order
    argTypes:
    - T*
    - T
    - std::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: COMPILER_ATOMIC_ADD_FETCH_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - std::atomic_fetch_add_explicit
    - reinterpret_cast<volatile std::atomic<T>*>
    linkageType: ''
    returnType: T
    signature: T COMPILER_ATOMIC_ADD_FETCH_impl(volatile T* ptr, T val, std::memory_order
      order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: COMPILER_ATOMIC_ADD_FETCH
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_ADD_FETCH(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_fetch_sub_explicit
      Src: /src/nccl/src/include/compiler/msvc.h:70,1
    - Dst: reinterpret_cast<volatile std::atomic<T>*>
      Src: /src/nccl/src/include/compiler/msvc.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - val
    - order
    argTypes:
    - T*
    - T
    - std::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: COMPILER_ATOMIC_SUB_FETCH_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<volatile std::atomic<T>*>
    - std::atomic_fetch_sub_explicit
    linkageType: ''
    returnType: T
    signature: T COMPILER_ATOMIC_SUB_FETCH_impl(volatile T* ptr, T val, std::memory_order
      order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - val
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: COMPILER_ATOMIC_SUB_FETCH
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ATOMIC_SUB_FETCH(ptr, val, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: COMPILER_PREFETCH
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_PREFETCH(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: COMPILER_POPCOUNT32
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_POPCOUNT32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: COMPILER_POPCOUNT64
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_POPCOUNT64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: COMPILER_EXPECT
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_EXPECT(x, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward
      Src: /src/nccl/src/include/compiler/msvc.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: NCCL_FFS_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - _BitScanForward
    linkageType: ''
    returnType: int
    signature: int NCCL_FFS_impl(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward
      Src: /src/nccl/src/include/compiler/msvc.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: NCCL_FFSl_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - _BitScanForward
    linkageType: ''
    returnType: int
    signature: int NCCL_FFSl_impl(long x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward64
      Src: /src/nccl/src/include/compiler/msvc.h:97,1
    - Dst: _BitScanForward
      Src: /src/nccl/src/include/compiler/msvc.h:100,1
    - Dst: _BitScanForward
      Src: /src/nccl/src/include/compiler/msvc.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: NCCL_FFSll_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - _BitScanForward64
    - _BitScanForward
    linkageType: ''
    returnType: int
    signature: int NCCL_FFSll_impl(long long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: COMPILER_FFS
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_FFS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: COMPILER_FFSL
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_FFSL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: COMPILER_FFSLL
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_FFSLL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanReverse
      Src: /src/nccl/src/include/compiler/msvc.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: nccl_clz_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - _BitScanReverse
    linkageType: ''
    returnType: int
    signature: int nccl_clz_impl(unsigned int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanReverse
      Src: /src/nccl/src/include/compiler/msvc.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: nccl_clzl_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - _BitScanReverse
    linkageType: ''
    returnType: int
    signature: int nccl_clzl_impl(unsigned long x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanReverse64
      Src: /src/nccl/src/include/compiler/msvc.h:124,1
    - Dst: _BitScanReverse
      Src: /src/nccl/src/include/compiler/msvc.h:128,1
    - Dst: _BitScanReverse
      Src: /src/nccl/src/include/compiler/msvc.h:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: nccl_clzll_impl
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 0
    functionsReached:
    - _BitScanReverse
    - _BitScanReverse64
    linkageType: ''
    returnType: int
    signature: int nccl_clzll_impl(unsigned long long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: COMPILER_CLZ
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_CLZ(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: COMPILER_CLZL
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_CLZL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: COMPILER_CLZLL
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_CLZLL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: COMPILER_BSWAP16
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_BSWAP16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: COMPILER_BSWAP32
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_BSWAP32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: COMPILER_BSWAP64
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_BSWAP64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - alignment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: COMPILER_ASSUME_ALIGNED
    functionSourceFile: /src/nccl/src/include/compiler/msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILER_ASSUME_ALIGNED(ptr, alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ncclGinBarrierSession
    functionSourceFile: /src/nccl/src/include/nccl_device/gin_barrier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclGinBarrierSession(ncclGinBarrierSession const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: ncclBarrierSession
    functionSourceFile: /src/nccl/src/include/nccl_device/barrier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclBarrierSession(ncclBarrierSession const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Impl const*>
      Src: /src/nccl/src/include/nccl_device/coop.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: thread_rank
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 9
    functionsReached:
    - static_cast<Impl const*>
    linkageType: ''
    returnType: __device__
    signature: __device__ thread_rank(void const* o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Impl const*>
      Src: /src/nccl/src/include/nccl_device/coop.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: size
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 62
    functionsReached:
    - static_cast<Impl const*>
    linkageType: ''
    returnType: __device__
    signature: __device__ size(void const* o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Impl*>
      Src: /src/nccl/src/include/nccl_device/coop.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: sync
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 53
    functionsReached:
    - static_cast<Impl*>
    linkageType: ''
    returnType: __device__
    signature: __device__ sync(void* o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: get_vtable
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ * get_vtable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: ncclCoopAny
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclCoopAny(ncclCoopAny const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: ncclCoopAny
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclCoopAny(ncclCoopAny&&)
  - 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: ncclCoopAny
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclCoopAny()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Impl::Impl
      Src: /src/nccl/src/include/nccl_device/coop.h:62,1
    - Dst: get_vtable
      Src: /src/nccl/src/include/nccl_device/coop.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - impl
    argTypes:
    - Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: ncclCoopAny
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - Impl::Impl
    - get_vtable
    linkageType: ''
    returnType: __device__
    signature: __device__ ncclCoopAny(Impl impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: thread_rank
      Src: /src/nccl/src/include/nccl_device/coop.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: thread_rank
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 10
    functionsReached:
    - thread_rank
    linkageType: ''
    returnType: __device__
    signature: __device__ thread_rank() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/nccl/src/include/nccl_device/coop.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: size
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 63
    functionsReached:
    - size
    linkageType: ''
    returnType: __device__
    signature: __device__ size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/nccl/src/include/nccl_device/coop.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: num_threads
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: __device__
    signature: __device__ num_threads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sync
      Src: /src/nccl/src/include/nccl_device/coop.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: sync
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 54
    functionsReached:
    - sync
    linkageType: ''
    returnType: __device__
    signature: __device__ sync()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::lane
      Src: /src/nccl/src/include/nccl_device/coop.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: thread_rank
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 10
    functionsReached:
    - nccl::utility::lane
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE thread_rank() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: size
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: num_threads
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE num_threads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::lane
      Src: /src/nccl/src/include/nccl_device/coop.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: laneMask
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - nccl::utility::lane
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE laneMask() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __syncwarp
      Src: /src/nccl/src/include/nccl_device/coop.h:88,1
    - Dst: laneMask
      Src: /src/nccl/src/include/nccl_device/coop.h:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: sync
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 54
    functionsReached:
    - __syncwarp
    - laneMask
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE sync()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lmask
      Src: /src/nccl/src/include/nccl_device/coop.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: ncclCoopLanes
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - lmask
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopLanes(uint32_t lmask=~0u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __popc
      Src: /src/nccl/src/include/nccl_device/coop.h:105,1
    - Dst: nccl::utility::lanemask_lt
      Src: /src/nccl/src/include/nccl_device/coop.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: thread_rank
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 10
    functionsReached:
    - __popc
    - nccl::utility::lanemask_lt
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE thread_rank() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __popc
      Src: /src/nccl/src/include/nccl_device/coop.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: size
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 64
    functionsReached:
    - __popc
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __popc
      Src: /src/nccl/src/include/nccl_device/coop.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: num_threads
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - __popc
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE num_threads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __syncwarp
      Src: /src/nccl/src/include/nccl_device/coop.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: sync
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 54
    functionsReached:
    - __syncwarp
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE sync()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: thread_rank
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE thread_rank() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: size
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: num_threads
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE num_threads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __barrier_sync_count
      Src: /src/nccl/src/include/nccl_device/coop.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: sync
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 54
    functionsReached:
    - __barrier_sync_count
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE sync()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: thread_rank
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE thread_rank() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: size
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: num_threads
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE num_threads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __syncthreads
      Src: /src/nccl/src/include/nccl_device/coop.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: sync
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 54
    functionsReached:
    - __syncthreads
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE sync()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopTile<nThreadsPow2>::laneMask
      Src: /src/nccl/src/include/nccl_device/coop.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopTile<nThreadsPow2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: ncclCoopGetLaneMask
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - ncclCoopTile<nThreadsPow2>::laneMask
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopGetLaneMask(ncclCoopTile<nThreadsPow2> coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopLanes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: ncclCoopGetLaneMask
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopGetLaneMask(ncclCoopLanes coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopWarpSpan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: ncclCoopGetLaneMask
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopGetLaneMask(ncclCoopWarpSpan coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopCta
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: ncclCoopGetLaneMask
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopGetLaneMask(ncclCoopCta coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: ncclCoopIsThread
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopIsThread(ncclCoopTile<nThreads>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: ncclCoopIsThread
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopIsThread(ncclCoopLanes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: ncclCoopIsThread
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopIsThread(ncclCoopWarpSpan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: ncclCoopIsThread
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopIsThread(ncclCoopCta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: ncclCoopWithinWarp
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopWithinWarp(ncclCoopTile<nThreads>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: ncclCoopWithinWarp
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopWithinWarp(ncclCoopLanes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: ncclCoopWithinWarp
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopWithinWarp(ncclCoopWarpSpan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: ncclCoopWithinWarp
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopWithinWarp(ncclCoopCta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __activemask
      Src: /src/nccl/src/include/nccl_device/coop.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: ncclCoopLanes::ncclCoopCoalesced
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - __activemask
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopLanes ncclCoopCoalesced()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopTile<32>
      Src: /src/nccl/src/include/nccl_device/coop.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: ncclCoopTile<32>::ncclCoopCoalesced
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - ncclCoopTile<32>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopTile<32> ncclCoopCoalesced(Coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopLanes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: ncclCoopLanes::ncclCoopCoalesced
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopLanes ncclCoopCoalesced(ncclCoopLanes coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopTile<nThreads>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: ncclCoopTile<nThreads>::ncclCoopCoalesced
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopTile<nThreads> ncclCoopCoalesced(ncclCoopTile<nThreads>
      coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __shfl_sync
      Src: /src/nccl/src/include/nccl_device/coop.h:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - value
    - root
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: ncclCoopBcast
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - __shfl_sync
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopBcast(ncclCoopTile<nThreads>, T value, int
      root, bool entrySync=true)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ffs
      Src: /src/nccl/src/include/nccl_device/coop.h:228,1
    - Dst: __fns
      Src: /src/nccl/src/include/nccl_device/coop.h:228,1
    - Dst: __shfl_sync
      Src: /src/nccl/src/include/nccl_device/coop.h:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - coop
    - value
    - root
    argTypes:
    - ncclCoopLanes
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: ncclCoopBcast
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - __fns
    - __ffs
    - __shfl_sync
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopBcast(ncclCoopLanes coop, T value, int root,
      bool entrySync=true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: ncclCoopBcast_WarpSpan_stash
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclCoopBcast_WarpSpan_stash()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopBcast_WarpSpan_stash
      Src: /src/nccl/src/include/nccl_device/coop.h:244,1
    - Dst: ncclCoopWarpSpan::sync
      Src: /src/nccl/src/include/nccl_device/coop.h:245,1
    - Dst: ncclCoopWarpSpan::thread_rank
      Src: /src/nccl/src/include/nccl_device/coop.h:246,1
    - Dst: ncclCoopBcast_WarpSpan_stash
      Src: /src/nccl/src/include/nccl_device/coop.h:246,1
    - Dst: ncclCoopWarpSpan::sync
      Src: /src/nccl/src/include/nccl_device/coop.h:247,1
    - Dst: ncclCoopBcast_WarpSpan_stash
      Src: /src/nccl/src/include/nccl_device/coop.h:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - coop
    - value
    - root
    argTypes:
    - ncclCoopWarpSpan
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: ncclCoopBcast
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - ncclCoopBcast_WarpSpan_stash
    - ncclCoopWarpSpan::sync
    - ncclCoopWarpSpan::thread_rank
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopBcast(ncclCoopWarpSpan coop, T value, int
      root, bool entrySync=true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: ncclCoopBcast_Cta_stash
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclCoopBcast_Cta_stash()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopBcast_Cta_stash
      Src: /src/nccl/src/include/nccl_device/coop.h:258,1
    - Dst: ncclCoopCta::sync
      Src: /src/nccl/src/include/nccl_device/coop.h:259,1
    - Dst: ncclCoopCta::thread_rank
      Src: /src/nccl/src/include/nccl_device/coop.h:260,1
    - Dst: ncclCoopBcast_Cta_stash
      Src: /src/nccl/src/include/nccl_device/coop.h:260,1
    - Dst: ncclCoopCta::sync
      Src: /src/nccl/src/include/nccl_device/coop.h:261,1
    - Dst: ncclCoopBcast_Cta_stash
      Src: /src/nccl/src/include/nccl_device/coop.h:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - coop
    - value
    - root
    argTypes:
    - ncclCoopCta
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 263
    functionName: ncclCoopBcast
    functionSourceFile: /src/nccl/src/include/nccl_device/coop.h
    functionUses: 0
    functionsReached:
    - ncclCoopCta::thread_rank
    - ncclCoopCta::sync
    - ncclCoopBcast_Cta_stash
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclCoopBcast(ncclCoopCta coop, T value, int root,
      bool entrySync=true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: ncclLsaBarrierSession
    functionSourceFile: /src/nccl/src/include/nccl_device/lsa_barrier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclLsaBarrierSession(ncclLsaBarrierSession const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - abortFlag
    - ' steps'
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: nccl::utility::testAbort
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE testAbort(uint32_t* abortFlag, uint32_t& steps)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - abortFlag
    - ' steps'
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::utility::testAbort
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE testAbort(uint32_t* abortFlag, uint32_t& steps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: nccl::utility::declval
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T && declval() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: nccl::utility::opaqueZero
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __ldg
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE opaqueZero()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: nccl::utility::divUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE 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: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: nccl::utility::roundUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE 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: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: nccl::utility::roundDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE roundDown(X x, Y y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Z
      Src: /src/nccl/src/include/nccl_device/utility.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - Z
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE alignUp(X x, Y a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/utility.h:155,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignUp(T* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/utility.h:159,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<void*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignUp(void const* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Z
      Src: /src/nccl/src/include/nccl_device/utility.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - Z
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE alignDown(X x, Y a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/utility.h:170,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignDown(T* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/utility.h:174,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<void*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignDown(void const* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - delta4G
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: nccl::utility::add4G
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE add4G(T base, int delta4G)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: nccl::utility::isPow2
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE isPow2(Int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:193,1
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:193,1
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Uint
    - Uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: nccl::utility::rollingLessEq
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - Uint
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE rollingLessEq(Uint a, Uint b, int nBits = 8*sizeof(Uint))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/utility.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Uint
    - Uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: nccl::utility::rollingLessThan
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::rollingLessEq
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE rollingLessThan(Uint a, Uint b, int nBits =
      8*sizeof(Uint))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::isPow2
      Src: /src/nccl/src/include/nccl_device/utility.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: nccl::utility::idivRcp32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::isPow2
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivRcp32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::isPow2
      Src: /src/nccl/src/include/nccl_device/utility.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: nccl::utility::idivRcp64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::isPow2
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivRcp64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __umulhi
      Src: /src/nccl/src/include/nccl_device/utility.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: nccl::utility::mul32hi
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __umulhi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE mul32hi(uint32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __umul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:219,1
    - Dst: __umulh
      Src: /src/nccl/src/include/nccl_device/utility.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: nccl::utility::mul64hi
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __umulh
    - __umul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE mul64hi(uint64_t a, uint64_t b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul32hi
      Src: /src/nccl/src/include/nccl_device/utility.h:233,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: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: nccl::utility::imulRcp32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::mul32hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imulRcp32(uint32_t x, uint32_t xrcp, uint32_t
      y, uint32_t yrcp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:241,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: 245
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: nccl::utility::imulRcp64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::mul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imulRcp64(uint64_t x, uint64_t xrcp, uint64_t
      y, uint64_t yrcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul32hi
      Src: /src/nccl/src/include/nccl_device/utility.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - quo
    - rem
    - x
    - y
    - yrcp
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: nccl::utility::idivmodFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::mul32hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivmodFast32(uint32_t *quo, uint32_t *rem,
      uint32_t x, uint32_t y, uint32_t yrcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - quo
    - rem
    - x
    - y
    - yrcp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: nccl::utility::idivmodFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::mul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivmodFast64(uint64_t *quo, uint64_t *rem,
      uint64_t x, uint64_t y, uint64_t yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast32
      Src: /src/nccl/src/include/nccl_device/utility.h:266,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: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: nccl::utility::idivFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast32
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivFast32(uint32_t x, uint32_t y, uint32_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast64
      Src: /src/nccl/src/include/nccl_device/utility.h:271,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: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: nccl::utility::idivFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast64
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivFast64(uint64_t x, uint64_t y, uint64_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast32
      Src: /src/nccl/src/include/nccl_device/utility.h:277,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: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: nccl::utility::imodFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast32
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imodFast32(uint32_t x, uint32_t y, uint32_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast64
      Src: /src/nccl/src/include/nccl_device/utility.h:282,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: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: nccl::utility::imodFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast64
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imodFast64(uint64_t x, uint64_t y, uint64_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 310
    functionName: nccl::utility::idivRcp64_upto64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivRcp64
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE idivRcp64_upto64(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivRcp64_upto64
      Src: /src/nccl/src/include/nccl_device/utility.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: nccl::utility::idivRcp32_upto64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivRcp64_upto64
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE idivRcp32_upto64(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ord
    argTypes:
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: cuda::memory_order acquireOrderOf(cuda::memory_order ord)
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE cuda::memory_order acquireOrderOf(cuda::memory_order
      ord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ord
    argTypes:
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: cuda::memory_order releaseOrderOf(cuda::memory_order ord)
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE cuda::memory_order releaseOrderOf(cuda::memory_order
      ord)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:337,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:339,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:341,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:343,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/utility.h:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - ord
    - scope
    argTypes:
    - T*
    - cuda::memory_order
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 346
    functionName: nccl::utility::atomicLoad
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    - __builtin_unreachable
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE atomicLoad(T* ptr, cuda::memory_order ord, cuda::thread_scope
      scope)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:354,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:357,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:360,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:363,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/utility.h:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - ptr
    - val
    - ord
    - scope
    argTypes:
    - T*
    - T
    - cuda::memory_order
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 367
    functionName: nccl::utility::atomicStore
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::utility::store
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE atomicStore(T* ptr, T val, cuda::memory_order ord,
      cuda::thread_scope scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: nccl::utility::lane
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE lane()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: nccl::utility::lanemask_lt
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned lanemask_lt()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:389,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:393,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:397,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:401,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:405,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 408
    functionName: nccl::utility::loadConst
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __ldg
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE loadConst(T const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<H>
      Src: /src/nccl/src/include/nccl_device/utility.h:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: nccl::utility::get
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - static_cast<H>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE get(IntSeq<0>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::get
      Src: /src/nccl/src/include/nccl_device/utility.h:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 444
    functionName: nccl::utility::get
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 1
    functionsReached:
    - nccl::utility::get
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE decltype(auto)
    signature: NCCL_HOST_DEVICE_INLINE decltype(auto) get(IntSeq<i>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: nccl::utility::present
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE present()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<H&&>
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    - Dst: nccl::utility::Present<H&&, T&&...>::present
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    - Dst: static_cast<T&&>
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - H
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: nccl::utility::Present<H&&, T&&...>::present
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 1
    functionsReached:
    - static_cast<H&&>
    - static_cast<T&&>
    - nccl::utility::Present<H&&, T&&...>::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Present<H&&, T&&...> present(H&& h, T&& ...t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::present
      Src: /src/nccl/src/include/nccl_device/utility.h:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 463
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::present
      Src: /src/nccl/src/include/nccl_device/utility.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 464
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional(Absent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::get
      Src: /src/nccl/src/include/nccl_device/utility.h:470,1
    - Dst: IntSeq<i>
      Src: /src/nccl/src/include/nccl_device/utility.h:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::get
    - IntSeq<i>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional(args, typename IntSeqUpTo<sizeof...(Arg),
      0>::Type())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/nccl/src/include/nccl_device/utility.h:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 480
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - abortFlag
    - ' steps'
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: nccl::utility::testAbort
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE testAbort(uint32_t* abortFlag, uint32_t& steps)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - abortFlag
    - ' steps'
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::utility::testAbort
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE testAbort(uint32_t* abortFlag, uint32_t& steps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: nccl::utility::declval
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T && declval() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: nccl::utility::opaqueZero
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __ldg
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE opaqueZero()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: nccl::utility::divUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE 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: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: nccl::utility::roundUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE 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: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: nccl::utility::roundDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE roundDown(X x, Y y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Z
      Src: /src/nccl/src/include/nccl_device/utility.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - Z
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE alignUp(X x, Y a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/utility.h:155,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignUp(T* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/utility.h:159,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<void*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignUp(void const* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Z
      Src: /src/nccl/src/include/nccl_device/utility.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - Z
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE alignDown(X x, Y a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/utility.h:170,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignDown(T* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/utility.h:174,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<void*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignDown(void const* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - delta4G
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: nccl::utility::add4G
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE add4G(T base, int delta4G)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: nccl::utility::isPow2
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE isPow2(Int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:193,1
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:193,1
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Uint
    - Uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: nccl::utility::rollingLessEq
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 1
    functionsReached:
    - Uint
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE rollingLessEq(Uint a, Uint b, int nBits = 8*sizeof(Uint))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/utility.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Uint
    - Uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: nccl::utility::rollingLessThan
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::rollingLessEq
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE rollingLessThan(Uint a, Uint b, int nBits =
      8*sizeof(Uint))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::isPow2
      Src: /src/nccl/src/include/nccl_device/utility.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: nccl::utility::idivRcp32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::isPow2
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivRcp32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::isPow2
      Src: /src/nccl/src/include/nccl_device/utility.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: nccl::utility::idivRcp64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 1
    functionsReached:
    - nccl::utility::isPow2
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivRcp64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __umulhi
      Src: /src/nccl/src/include/nccl_device/utility.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: nccl::utility::mul32hi
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached:
    - __umulhi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE mul32hi(uint32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __umul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:219,1
    - Dst: __umulh
      Src: /src/nccl/src/include/nccl_device/utility.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: nccl::utility::mul64hi
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached:
    - __umulh
    - __umul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE mul64hi(uint64_t a, uint64_t b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul32hi
      Src: /src/nccl/src/include/nccl_device/utility.h:233,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: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: nccl::utility::imulRcp32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::mul32hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imulRcp32(uint32_t x, uint32_t xrcp, uint32_t
      y, uint32_t yrcp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:241,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: 245
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: nccl::utility::imulRcp64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::mul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imulRcp64(uint64_t x, uint64_t xrcp, uint64_t
      y, uint64_t yrcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul32hi
      Src: /src/nccl/src/include/nccl_device/utility.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - quo
    - rem
    - x
    - y
    - yrcp
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: nccl::utility::idivmodFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached:
    - nccl::utility::mul32hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivmodFast32(uint32_t *quo, uint32_t *rem,
      uint32_t x, uint32_t y, uint32_t yrcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - quo
    - rem
    - x
    - y
    - yrcp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: nccl::utility::idivmodFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached:
    - nccl::utility::mul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivmodFast64(uint64_t *quo, uint64_t *rem,
      uint64_t x, uint64_t y, uint64_t yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast32
      Src: /src/nccl/src/include/nccl_device/utility.h:266,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: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: nccl::utility::idivFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast32
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivFast32(uint32_t x, uint32_t y, uint32_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast64
      Src: /src/nccl/src/include/nccl_device/utility.h:271,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: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: nccl::utility::idivFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast64
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivFast64(uint64_t x, uint64_t y, uint64_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast32
      Src: /src/nccl/src/include/nccl_device/utility.h:277,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: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: nccl::utility::imodFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast32
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imodFast32(uint32_t x, uint32_t y, uint32_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast64
      Src: /src/nccl/src/include/nccl_device/utility.h:282,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: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: nccl::utility::imodFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast64
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imodFast64(uint64_t x, uint64_t y, uint64_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 310
    functionName: nccl::utility::idivRcp64_upto64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 1
    functionsReached:
    - nccl::utility::idivRcp64
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE idivRcp64_upto64(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivRcp64_upto64
      Src: /src/nccl/src/include/nccl_device/utility.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: nccl::utility::idivRcp32_upto64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivRcp64_upto64
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE idivRcp32_upto64(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ord
    argTypes:
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: cuda::memory_order acquireOrderOf(cuda::memory_order ord)
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE cuda::memory_order acquireOrderOf(cuda::memory_order
      ord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ord
    argTypes:
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: cuda::memory_order releaseOrderOf(cuda::memory_order ord)
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE cuda::memory_order releaseOrderOf(cuda::memory_order
      ord)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:337,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:339,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:341,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:343,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/utility.h:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - ord
    - scope
    argTypes:
    - T*
    - cuda::memory_order
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 346
    functionName: nccl::utility::atomicLoad
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    - __builtin_unreachable
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE atomicLoad(T* ptr, cuda::memory_order ord, cuda::thread_scope
      scope)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:354,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:357,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:360,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:363,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/utility.h:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - ptr
    - val
    - ord
    - scope
    argTypes:
    - T*
    - T
    - cuda::memory_order
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 367
    functionName: nccl::utility::atomicStore
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::utility::store
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE atomicStore(T* ptr, T val, cuda::memory_order ord,
      cuda::thread_scope scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: nccl::utility::lane
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE lane()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: nccl::utility::lanemask_lt
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned lanemask_lt()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:389,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:393,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:397,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:401,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:405,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 408
    functionName: nccl::utility::loadConst
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __ldg
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE loadConst(T const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<H>
      Src: /src/nccl/src/include/nccl_device/utility.h:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: nccl::utility::get
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached:
    - static_cast<H>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE get(IntSeq<0>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::get
      Src: /src/nccl/src/include/nccl_device/utility.h:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 444
    functionName: nccl::utility::get
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 3
    functionsReached:
    - nccl::utility::get
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE decltype(auto)
    signature: NCCL_HOST_DEVICE_INLINE decltype(auto) get(IntSeq<i>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: nccl::utility::present
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE present()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<H&&>
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    - Dst: nccl::utility::Present<H&&, T&&...>::present
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    - Dst: static_cast<T&&>
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - H
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: nccl::utility::Present<H&&, T&&...>::present
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached:
    - static_cast<H&&>
    - static_cast<T&&>
    - nccl::utility::Present<H&&, T&&...>::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Present<H&&, T&&...> present(H&& h, T&& ...t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::present
      Src: /src/nccl/src/include/nccl_device/utility.h:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 463
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::present
      Src: /src/nccl/src/include/nccl_device/utility.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 464
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional(Absent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::get
      Src: /src/nccl/src/include/nccl_device/utility.h:470,1
    - Dst: IntSeq<i>
      Src: /src/nccl/src/include/nccl_device/utility.h:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::get
    - IntSeq<i>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional(args, typename IntSeqUpTo<sizeof...(Arg),
      0>::Type())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/nccl/src/include/nccl_device/utility.h:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 480
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - abortFlag
    - ' steps'
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: nccl::utility::testAbort
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE testAbort(uint32_t* abortFlag, uint32_t& steps)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - abortFlag
    - ' steps'
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::utility::testAbort
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE testAbort(uint32_t* abortFlag, uint32_t& steps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: nccl::utility::declval
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T && declval() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: nccl::utility::opaqueZero
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __ldg
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE opaqueZero()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: nccl::utility::divUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE 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: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: nccl::utility::roundUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE 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: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: nccl::utility::roundDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE roundDown(X x, Y y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Z
      Src: /src/nccl/src/include/nccl_device/utility.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - Z
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE alignUp(X x, Y a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/utility.h:155,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignUp(T* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/utility.h:159,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<void*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignUp(void const* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Z
      Src: /src/nccl/src/include/nccl_device/utility.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - Z
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE alignDown(X x, Y a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/utility.h:170,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignDown(T* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/utility.h:174,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<void*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignDown(void const* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - delta4G
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: nccl::utility::add4G
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE add4G(T base, int delta4G)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: nccl::utility::isPow2
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE isPow2(Int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:193,1
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:193,1
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Uint
    - Uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: nccl::utility::rollingLessEq
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached:
    - Uint
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE rollingLessEq(Uint a, Uint b, int nBits = 8*sizeof(Uint))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/utility.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Uint
    - Uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: nccl::utility::rollingLessThan
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::rollingLessEq
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE rollingLessThan(Uint a, Uint b, int nBits =
      8*sizeof(Uint))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::isPow2
      Src: /src/nccl/src/include/nccl_device/utility.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: nccl::utility::idivRcp32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::isPow2
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivRcp32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::isPow2
      Src: /src/nccl/src/include/nccl_device/utility.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: nccl::utility::idivRcp64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached:
    - nccl::utility::isPow2
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivRcp64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __umulhi
      Src: /src/nccl/src/include/nccl_device/utility.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: nccl::utility::mul32hi
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 4
    functionsReached:
    - __umulhi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE mul32hi(uint32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __umul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:219,1
    - Dst: __umulh
      Src: /src/nccl/src/include/nccl_device/utility.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: nccl::utility::mul64hi
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 4
    functionsReached:
    - __umulh
    - __umul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE mul64hi(uint64_t a, uint64_t b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul32hi
      Src: /src/nccl/src/include/nccl_device/utility.h:233,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: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: nccl::utility::imulRcp32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::mul32hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imulRcp32(uint32_t x, uint32_t xrcp, uint32_t
      y, uint32_t yrcp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:241,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: 245
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: nccl::utility::imulRcp64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::mul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imulRcp64(uint64_t x, uint64_t xrcp, uint64_t
      y, uint64_t yrcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul32hi
      Src: /src/nccl/src/include/nccl_device/utility.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - quo
    - rem
    - x
    - y
    - yrcp
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: nccl::utility::idivmodFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 4
    functionsReached:
    - nccl::utility::mul32hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivmodFast32(uint32_t *quo, uint32_t *rem,
      uint32_t x, uint32_t y, uint32_t yrcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - quo
    - rem
    - x
    - y
    - yrcp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: nccl::utility::idivmodFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 4
    functionsReached:
    - nccl::utility::mul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivmodFast64(uint64_t *quo, uint64_t *rem,
      uint64_t x, uint64_t y, uint64_t yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast32
      Src: /src/nccl/src/include/nccl_device/utility.h:266,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: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: nccl::utility::idivFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast32
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivFast32(uint32_t x, uint32_t y, uint32_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast64
      Src: /src/nccl/src/include/nccl_device/utility.h:271,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: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: nccl::utility::idivFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast64
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivFast64(uint64_t x, uint64_t y, uint64_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast32
      Src: /src/nccl/src/include/nccl_device/utility.h:277,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: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: nccl::utility::imodFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast32
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imodFast32(uint32_t x, uint32_t y, uint32_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast64
      Src: /src/nccl/src/include/nccl_device/utility.h:282,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: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: nccl::utility::imodFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast64
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imodFast64(uint64_t x, uint64_t y, uint64_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 310
    functionName: nccl::utility::idivRcp64_upto64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached:
    - nccl::utility::idivRcp64
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE idivRcp64_upto64(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivRcp64_upto64
      Src: /src/nccl/src/include/nccl_device/utility.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: nccl::utility::idivRcp32_upto64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivRcp64_upto64
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE idivRcp32_upto64(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ord
    argTypes:
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: cuda::memory_order acquireOrderOf(cuda::memory_order ord)
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE cuda::memory_order acquireOrderOf(cuda::memory_order
      ord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ord
    argTypes:
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: cuda::memory_order releaseOrderOf(cuda::memory_order ord)
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE cuda::memory_order releaseOrderOf(cuda::memory_order
      ord)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:337,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:339,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:341,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:343,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/utility.h:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - ord
    - scope
    argTypes:
    - T*
    - cuda::memory_order
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 346
    functionName: nccl::utility::atomicLoad
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    - __builtin_unreachable
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE atomicLoad(T* ptr, cuda::memory_order ord, cuda::thread_scope
      scope)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:354,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:357,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:360,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:363,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/utility.h:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - ptr
    - val
    - ord
    - scope
    argTypes:
    - T*
    - T
    - cuda::memory_order
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 367
    functionName: nccl::utility::atomicStore
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::utility::store
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE atomicStore(T* ptr, T val, cuda::memory_order ord,
      cuda::thread_scope scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: nccl::utility::lane
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE lane()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: nccl::utility::lanemask_lt
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned lanemask_lt()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:389,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:393,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:397,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:401,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:405,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 408
    functionName: nccl::utility::loadConst
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __ldg
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE loadConst(T const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<H>
      Src: /src/nccl/src/include/nccl_device/utility.h:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: nccl::utility::get
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 4
    functionsReached:
    - static_cast<H>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE get(IntSeq<0>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::get
      Src: /src/nccl/src/include/nccl_device/utility.h:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 444
    functionName: nccl::utility::get
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 5
    functionsReached:
    - nccl::utility::get
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE decltype(auto)
    signature: NCCL_HOST_DEVICE_INLINE decltype(auto) get(IntSeq<i>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: nccl::utility::present
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE present()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<H&&>
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    - Dst: nccl::utility::Present<H&&, T&&...>::present
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    - Dst: static_cast<T&&>
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - H
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: nccl::utility::Present<H&&, T&&...>::present
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 3
    functionsReached:
    - static_cast<H&&>
    - static_cast<T&&>
    - nccl::utility::Present<H&&, T&&...>::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Present<H&&, T&&...> present(H&& h, T&& ...t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::present
      Src: /src/nccl/src/include/nccl_device/utility.h:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 463
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::present
      Src: /src/nccl/src/include/nccl_device/utility.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 464
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional(Absent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::get
      Src: /src/nccl/src/include/nccl_device/utility.h:470,1
    - Dst: IntSeq<i>
      Src: /src/nccl/src/include/nccl_device/utility.h:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::get
    - IntSeq<i>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional(args, typename IntSeqUpTo<sizeof...(Arg),
      0>::Type())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/nccl/src/include/nccl_device/utility.h:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 480
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - abortFlag
    - ' steps'
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: nccl::utility::testAbort
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE testAbort(uint32_t* abortFlag, uint32_t& steps)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - abortFlag
    - ' steps'
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: nccl::utility::testAbort
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE testAbort(uint32_t* abortFlag, uint32_t& steps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: nccl::utility::declval
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T && declval() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: nccl::utility::opaqueZero
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __ldg
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE opaqueZero()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: nccl::utility::divUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE 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: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: nccl::utility::roundUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE 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: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: nccl::utility::roundDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE roundDown(X x, Y y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Z
      Src: /src/nccl/src/include/nccl_device/utility.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - Z
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE alignUp(X x, Y a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/utility.h:155,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignUp(T* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/utility.h:159,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: nccl::utility::alignUp
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<void*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignUp(void const* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Z
      Src: /src/nccl/src/include/nccl_device/utility.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - Z
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE alignDown(X x, Y a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/utility.h:170,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignDown(T* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/utility.h:174,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/utility.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: nccl::utility::alignDown
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<void*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE * alignDown(void const* x, size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - delta4G
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: nccl::utility::add4G
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE add4G(T base, int delta4G)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: nccl::utility::isPow2
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE isPow2(Int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:193,1
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:193,1
    - Dst: Uint
      Src: /src/nccl/src/include/nccl_device/utility.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Uint
    - Uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: nccl::utility::rollingLessEq
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 3
    functionsReached:
    - Uint
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE rollingLessEq(Uint a, Uint b, int nBits = 8*sizeof(Uint))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/utility.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Uint
    - Uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: nccl::utility::rollingLessThan
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::rollingLessEq
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE rollingLessThan(Uint a, Uint b, int nBits =
      8*sizeof(Uint))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::isPow2
      Src: /src/nccl/src/include/nccl_device/utility.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: nccl::utility::idivRcp32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::isPow2
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivRcp32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::isPow2
      Src: /src/nccl/src/include/nccl_device/utility.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: nccl::utility::idivRcp64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 3
    functionsReached:
    - nccl::utility::isPow2
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivRcp64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __umulhi
      Src: /src/nccl/src/include/nccl_device/utility.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: nccl::utility::mul32hi
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 6
    functionsReached:
    - __umulhi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE mul32hi(uint32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __umul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:219,1
    - Dst: __umulh
      Src: /src/nccl/src/include/nccl_device/utility.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: nccl::utility::mul64hi
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 6
    functionsReached:
    - __umulh
    - __umul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE mul64hi(uint64_t a, uint64_t b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul32hi
      Src: /src/nccl/src/include/nccl_device/utility.h:233,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: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: nccl::utility::imulRcp32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::mul32hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imulRcp32(uint32_t x, uint32_t xrcp, uint32_t
      y, uint32_t yrcp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:241,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: 245
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: nccl::utility::imulRcp64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::mul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imulRcp64(uint64_t x, uint64_t xrcp, uint64_t
      y, uint64_t yrcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul32hi
      Src: /src/nccl/src/include/nccl_device/utility.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - quo
    - rem
    - x
    - y
    - yrcp
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: nccl::utility::idivmodFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 6
    functionsReached:
    - nccl::utility::mul32hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivmodFast32(uint32_t *quo, uint32_t *rem,
      uint32_t x, uint32_t y, uint32_t yrcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::mul64hi
      Src: /src/nccl/src/include/nccl_device/utility.h:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - quo
    - rem
    - x
    - y
    - yrcp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: nccl::utility::idivmodFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 6
    functionsReached:
    - nccl::utility::mul64hi
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivmodFast64(uint64_t *quo, uint64_t *rem,
      uint64_t x, uint64_t y, uint64_t yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast32
      Src: /src/nccl/src/include/nccl_device/utility.h:266,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: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: nccl::utility::idivFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast32
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivFast32(uint32_t x, uint32_t y, uint32_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast64
      Src: /src/nccl/src/include/nccl_device/utility.h:271,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: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: nccl::utility::idivFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast64
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE idivFast64(uint64_t x, uint64_t y, uint64_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast32
      Src: /src/nccl/src/include/nccl_device/utility.h:277,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: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: nccl::utility::imodFast32
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast32
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imodFast32(uint32_t x, uint32_t y, uint32_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivmodFast64
      Src: /src/nccl/src/include/nccl_device/utility.h:282,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: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: nccl::utility::imodFast64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivmodFast64
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE imodFast64(uint64_t x, uint64_t y, uint64_t
      yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:291,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:292,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:293,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:294,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:295,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:296,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:297,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:298,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:299,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:300,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:301,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:302,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:303,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:304,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:305,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:306,1
    - Dst: nccl::utility::idivRcp64
      Src: /src/nccl/src/include/nccl_device/utility.h:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 310
    functionName: nccl::utility::idivRcp64_upto64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 3
    functionsReached:
    - nccl::utility::idivRcp64
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE idivRcp64_upto64(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivRcp64_upto64
      Src: /src/nccl/src/include/nccl_device/utility.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: nccl::utility::idivRcp32_upto64
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivRcp64_upto64
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE idivRcp32_upto64(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ord
    argTypes:
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: cuda::memory_order acquireOrderOf(cuda::memory_order ord)
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE cuda::memory_order acquireOrderOf(cuda::memory_order
      ord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ord
    argTypes:
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: cuda::memory_order releaseOrderOf(cuda::memory_order ord)
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE cuda::memory_order releaseOrderOf(cuda::memory_order
      ord)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:337,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:339,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:341,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/utility.h:343,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/utility.h:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - ord
    - scope
    argTypes:
    - T*
    - cuda::memory_order
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 346
    functionName: nccl::utility::atomicLoad
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    - __builtin_unreachable
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE atomicLoad(T* ptr, cuda::memory_order ord, cuda::thread_scope
      scope)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:354,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:357,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:360,1
    - Dst: nccl::utility::store
      Src: /src/nccl/src/include/nccl_device/utility.h:363,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/utility.h:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - ptr
    - val
    - ord
    - scope
    argTypes:
    - T*
    - T
    - cuda::memory_order
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 367
    functionName: nccl::utility::atomicStore
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::utility::store
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE atomicStore(T* ptr, T val, cuda::memory_order ord,
      cuda::thread_scope scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: nccl::utility::lane
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE lane()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: nccl::utility::lanemask_lt
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned lanemask_lt()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:389,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:393,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:397,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:401,1
    - Dst: __ldg
      Src: /src/nccl/src/include/nccl_device/utility.h:405,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 408
    functionName: nccl::utility::loadConst
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - __ldg
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE loadConst(T const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<H>
      Src: /src/nccl/src/include/nccl_device/utility.h:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: nccl::utility::get
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 6
    functionsReached:
    - static_cast<H>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE get(IntSeq<0>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::get
      Src: /src/nccl/src/include/nccl_device/utility.h:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 444
    functionName: nccl::utility::get
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 7
    functionsReached:
    - nccl::utility::get
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE decltype(auto)
    signature: NCCL_HOST_DEVICE_INLINE decltype(auto) get(IntSeq<i>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: nccl::utility::present
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE present()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<H&&>
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    - Dst: nccl::utility::Present<H&&, T&&...>::present
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    - Dst: static_cast<T&&>
      Src: /src/nccl/src/include/nccl_device/utility.h:452,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - H
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: nccl::utility::Present<H&&, T&&...>::present
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 4
    functionsReached:
    - static_cast<H&&>
    - static_cast<T&&>
    - nccl::utility::Present<H&&, T&&...>::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Present<H&&, T&&...> present(H&& h, T&& ...t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::present
      Src: /src/nccl/src/include/nccl_device/utility.h:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 463
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::present
      Src: /src/nccl/src/include/nccl_device/utility.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 464
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::present
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional(Absent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::get
      Src: /src/nccl/src/include/nccl_device/utility.h:470,1
    - Dst: IntSeq<i>
      Src: /src/nccl/src/include/nccl_device/utility.h:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - nccl::utility::get
    - IntSeq<i>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional(args, typename IntSeqUpTo<sizeof...(Arg),
      0>::Type())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/nccl/src/include/nccl_device/utility.h:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 480
    functionName: nccl::utility::Optional
    functionSourceFile: /src/nccl/src/include/nccl_device/utility.h
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE Optional()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: ncclLLA2ASession
    functionSourceFile: /src/nccl/src/include/nccl_device/ll_a2a.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclLLA2ASession(ncclLLA2ASession const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: '& ncclBarrierSession<Coop>::lsaBarrier()'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE & ncclBarrierSession<Coop>::lsaBarrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: '& ncclBarrierSession<Coop>::ginBarrier()'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE & ncclBarrierSession<Coop>::ginBarrier()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclBarrierSession<Coop>::innerLsaBar::thing::sync
      Src: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h:89,1
    - Dst: nccl::utility::releaseOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h:89,1
    - Dst: ncclBarrierSession<Coop>::outerGinBar::thing::sync
      Src: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h:92,1
    - Dst: nccl::utility::acquireOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ord
    - fence
    argTypes:
    - cuda::memory_order
    - ncclGinFenceLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: ncclBarrierSession<Coop>::sync
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h
    functionUses: 0
    functionsReached:
    - ncclBarrierSession<Coop>::outerGinBar::thing::sync
    - nccl::utility::releaseOrderOf
    - ncclBarrierSession<Coop>::innerLsaBar::thing::sync
    - nccl::utility::acquireOrderOf
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclBarrierSession<Coop>::sync(Coop, cuda::memory_order
      ord, ncclGinFenceLevel fence)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clock64
      Src: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h:105,1
    - Dst: "ncclResult_t ncclBarrierSession<Coop>::sync(\n    Coop, cuda::innerLsaBar::thing::sync"
      Src: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h:106,1
    - Dst: nccl::utility::releaseOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h:108,1
    - Dst: clock64
      Src: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h:111,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h:112,1
    - Dst: "ncclResult_t ncclBarrierSession<Coop>::sync(\n    Coop, cuda::outerGinBar::thing::sync"
      Src: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h:120,1
    - Dst: nccl::utility::acquireOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ord
    - fence
    - timeoutCycles
    argTypes:
    - cuda::memory_order
    - ncclGinFenceLevel
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 128
    functionName: "ncclResult_t ncclBarrierSession<Coop>::sync(\n    Coop, cuda::memory_order
      ord, ncclGinFenceLevel fence, uint64_t timeoutCycles)"
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h
    functionUses: 0
    functionsReached:
    - min
    - "ncclResult_t ncclBarrierSession<Coop>::sync(\n    Coop, cuda::outerGinBar::thing::sync"
    - clock64
    - "ncclResult_t ncclBarrierSession<Coop>::sync(\n    Coop, cuda::innerLsaBar::thing::sync"
    - nccl::utility::acquireOrderOf
    - nccl::utility::releaseOrderOf
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclResult_t ncclBarrierSession<Coop>::sync(\n
      \   Coop, cuda::memory_order ord, ncclGinFenceLevel fence, uint64_t timeoutCycles)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: operator()(const T& a, const T& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE operator()(const T& a, const T& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_fp8_e4m3
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __hadd
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __nv_fp8_e4m3
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - __nv_fp8_e4m3
    - __nv_fp8_e4m3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached:
    - __nv_fp8_e4m3
    - __half
    - __hadd
    linkageType: ''
    returnType: void
    signature: void operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_fp8_e5m2
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __hadd
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __nv_fp8_e5m2
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - __nv_fp8_e5m2
    - __nv_fp8_e5m2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached:
    - __hadd
    - __half
    - __nv_fp8_e5m2
    linkageType: ''
    returnType: void
    signature: void operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: operator()(const T& a, const T& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE operator()(const T& a, const T& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_fp8_e4m3
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __hadd
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __nv_fp8_e4m3
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - __nv_fp8_e4m3
    - __nv_fp8_e4m3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached:
    - __nv_fp8_e4m3
    - __half
    - __hadd
    linkageType: ''
    returnType: void
    signature: void operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_fp8_e5m2
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __hadd
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __nv_fp8_e5m2
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - __nv_fp8_e5m2
    - __nv_fp8_e5m2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached:
    - __hadd
    - __half
    - __nv_fp8_e5m2
    linkageType: ''
    returnType: void
    signature: void operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: operator()(const T& a, const T& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE operator()(const T& a, const T& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_fp8_e4m3
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __hadd
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __nv_fp8_e4m3
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - __nv_fp8_e4m3
    - __nv_fp8_e4m3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached:
    - __nv_fp8_e4m3
    - __half
    - __hadd
    linkageType: ''
    returnType: void
    signature: void operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_fp8_e5m2
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __hadd
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __nv_fp8_e5m2
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - __nv_fp8_e5m2
    - __nv_fp8_e5m2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached:
    - __hadd
    - __half
    - __nv_fp8_e5m2
    linkageType: ''
    returnType: void
    signature: void operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: operator()(const T& a, const T& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE operator()(const T& a, const T& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_fp8_e4m3
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __hadd
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:79,1
    - Dst: __nv_fp8_e4m3
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - __nv_fp8_e4m3
    - __nv_fp8_e4m3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached:
    - __nv_fp8_e4m3
    - __half
    - __hadd
    linkageType: ''
    returnType: void
    signature: void operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_fp8_e5m2
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __hadd
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __half
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:93,1
    - Dst: __nv_fp8_e5m2
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - __nv_fp8_e5m2
    - __nv_fp8_e5m2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    functionUses: 0
    functionsReached:
    - __hadd
    - __half
    - __nv_fp8_e5m2
    linkageType: ''
    returnType: void
    signature: void operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: calcSlotOffset
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ll_a2a__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE calcSlotOffset() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBufferLocalPointer
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:35,1
    - Dst: ncclLLA2ASession<Coop>::coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:37,1
    - Dst: ncclLLA2ASession<Coop>::coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: ncclLLA2ASession<Coop>::~ncclLLA2ASession()
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLLA2ASession<Coop>::coop::thread_rank
    - ncclLLA2ASession<Coop>::coop::sync
    - ncclGetResourceBufferLocalPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclLLA2ASession<Coop>::~ncclLLA2ASession()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:47,1
    - Dst: ncclGetResourceBufferPeerPointer
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:49,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - peer
    - elt
    - data
    argTypes:
    - int
    - int
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 67
    functionName: ncclLLA2ASession<Coop>::send
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h
    functionUses: 0
    functionsReached:
    - divUp
    - ncclGetResourceBufferPeerPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclLLA2ASession<Coop>::send(int peer, int elt,
      T data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:76,1
    - Dst: ncclGetResourceBufferMultimemPointer
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:78,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:81,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:97,1
    - Dst: ncclGetResourceBufferPeerPointer
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:105,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:108,1
    - Dst: ncclGetResourceBufferPeerPointer
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:130,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:133,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - elt
    - data
    argTypes:
    - int
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 152
    functionName: ncclLLA2ASession<Coop>::bcast
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h
    functionUses: 0
    functionsReached:
    - divUp
    - ncclGetResourceBufferPeerPointer
    - ncclGetResourceBufferMultimemPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclLLA2ASession<Coop>::bcast(int elt, T data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLLA2ASession<Coop>::template recvUnrolled</*MinEltCount=*/1, /*MaxEltCount=*/1>
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - elt
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: ncclLLA2ASession<Coop>::recv
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLLA2ASession<Coop>::template recvUnrolled</*MinEltCount=*/1, /*MaxEltCount=*/1>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclLLA2ASession<Coop>::recv(int elt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBufferLocalPointer
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:171,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:174,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:176,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:183,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:191,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:200,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:213,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:221,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:227,1
    - Dst: divUp
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:229,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 4
    argNames:
    - eltStart
    - eltCount
    - eltStride
    - (elts)
    argTypes:
    - int
    - int
    - int
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 235
    functionName: ncclLLA2ASession<Coop>::recvUnrolled
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - divUp
    - testAbort
    - ncclGetResourceBufferLocalPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclLLA2ASession<Coop>::recvUnrolled(int eltStart,
      int eltCount, int eltStride, T(&elts)[MaxEltCount])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eltToAcc
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:243,1
    - Dst: nccl::utility::declval<Elt>
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:243,1
    - Dst: eltToAcc
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:244,1
    - Dst: nccl::utility::declval<Elt>
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:244,1
    - Dst: ncclLLA2ASession<Coop>::template recvUnrolled</*Min=*/Unroll>
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:250,1
    - Dst: eltToAcc
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:251,1
    - Dst: reduce
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:252,1
    - Dst: reduce
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:254,1
    - Dst: eltToAcc
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:254,1
    - Dst: ncclLLA2ASession<Coop>::template recvUnrolled</*Min=*/1>
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:258,1
    - Dst: eltToAcc
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:259,1
    - Dst: reduce
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:260,1
    - Dst: reduce
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:263,1
    - Dst: eltToAcc
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - eltStart
    - eltCount
    - eltStride
    - eltToAcc
    - reduce
    argTypes:
    - int
    - int
    - int
    - EltToAcc
    - Reduce
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 267
    functionName: ncclLLA2ASession<Coop>::recvReduce
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h
    functionUses: 0
    functionsReached:
    - eltToAcc
    - reduce
    - nccl::utility::declval<Elt>
    - ncclLLA2ASession<Coop>::template recvUnrolled</*Min=*/Unroll>
    - ncclLLA2ASession<Coop>::template recvUnrolled</*Min=*/1>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE auto
    signature: "NCCL_DEVICE_INLINE auto ncclLLA2ASession<Coop>::recvReduce(\n    int
      eltStart, int eltCount, int eltStride, EltToAcc eltToAcc, Reduce reduce\n  )
      -> decltype(eltToAcc(nccl::utility::declval<Elt>()))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:273,1
    - Dst: ncclLLA2ASession<Coop>::coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:274,1
    - Dst: ncclGetResourceBufferLocalPointer
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:275,1
    - Dst: ncclLLA2ASession<Coop>::coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:278,1
    - Dst: ncclLLA2ASession<Coop>::coop::size
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:278,1
    - Dst: ncclLLA2ASession<Coop>::coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:282,1
    - Dst: ncclLLA2ASession<Coop>::calcSlotOffset
      Src: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 285
    functionName: ncclLLA2ASession<Coop>::endEpoch
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLLA2ASession<Coop>::coop::thread_rank
    - __builtin_expect
    - ncclLLA2ASession<Coop>::coop::sync
    - ncclLLA2ASession<Coop>::calcSlotOffset
    - ncclLLA2ASession<Coop>::coop::size
    - ncclGetResourceBufferLocalPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclLLA2ASession<Coop>::endEpoch(Coop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBufferMultimemPointer
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__types.h:33,1
    - Dst: ncclGetResourceBufferLocalPointer
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__types.h:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - multimem
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: mcInbox
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/lsa_barrier__types.h
    functionUses: 0
    functionsReached:
    - ncclGetResourceBufferLocalPointer
    - ncclGetResourceBufferMultimemPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * mcInbox(bool multimem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBufferPeerPointer
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__types.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - owner
    - peer
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: ucInbox
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/lsa_barrier__types.h
    functionUses: 0
    functionsReached:
    - ncclGetResourceBufferPeerPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ucInbox(int owner, int peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: ncclGinBarrierSession<Coop>::~ncclGinBarrierSession()
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinBarrierSession<Coop>::~ncclGinBarrierSession()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:53,1
    - Dst: clock64
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:55,1
    - Dst: ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:58,1
    - Dst: ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::coop::size
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:58,1
    - Dst: ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::net::signal
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:64,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:65,1
    - Dst: ncclGin_None
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:65,1
    - Dst: nccl::utility::releaseOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:66,1
    - Dst: ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::net::getSignalShadowPtr
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:72,1
    - Dst: ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::net::readSignal
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:77,1
    - Dst: nccl::utility::acquireOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:77,1
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:78,1
    - Dst: static_cast<uint64_t>
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:78,1
    - Dst: clock64
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:79,1
    - Dst: ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::net::waitSignal
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:85,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:85,1
    - Dst: nccl::utility::acquireOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - ord
    - fence
    - timeoutCycles
    argTypes:
    - cuda::memory_order
    - ncclGinFenceLevel
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 87
    functionName: "ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop,
      cuda::memory_order ord,\n                                                                      ncclGinFenceLevel
      fence, uint64_t timeoutCycles)"
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::rollingLessEq
    - ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::coop::thread_rank
    - ncclGin_None
    - ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::net::signal
    - ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::net::waitSignal
    - static_cast<uint64_t>
    - ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::coop::sync
    - ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::net::readSignal
    - clock64
    - nccl::utility::acquireOrderOf
    - ncclCoopThread
    - nccl::utility::releaseOrderOf
    - ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::net::getSignalShadowPtr
    - ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::coop::size
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop,
      cuda::memory_order ord,\n                                                                      ncclGinFenceLevel
      fence, uint64_t timeoutCycles)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock64
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - clock64
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (EnableTimeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: net::readSignal
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:77,1
    - Dst: nccl::utility::acquireOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:77,1
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:78,1
    - Dst: static_cast<uint64_t>
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:78,1
    - Dst: clock64
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::rollingLessEq
    - static_cast<uint64_t>
    - net::readSignal
    - clock64
    - nccl::utility::acquireOrderOf
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (EnableTimeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinBarrierSession<Coop>::template syncInternal</*EnableTimeout=*/false>
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - coop
    - ord
    - fence
    argTypes:
    - Coop
    - cuda::memory_order
    - ncclGinFenceLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: ncclGinBarrierSession<Coop>::sync
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinBarrierSession<Coop>::template syncInternal</*EnableTimeout=*/false>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinBarrierSession<Coop>::sync(Coop coop, cuda::memory_order
      ord, ncclGinFenceLevel fence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: "ncclResult_t ncclGinBarrierSession<Coop>::sync(\n    Coop coop, cuda::template
        syncInternal</*EnableTimeout=*/true>"
      Src: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - coop
    - ord
    - fence
    - timeoutCycles
    argTypes:
    - Coop
    - cuda::memory_order
    - ncclGinFenceLevel
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: "ncclResult_t ncclGinBarrierSession<Coop>::sync(\n    Coop coop,
      cuda::memory_order ord, ncclGinFenceLevel fence, uint64_t timeoutCycles)"
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - "ncclResult_t ncclGinBarrierSession<Coop>::sync(\n    Coop coop, cuda::template
      syncInternal</*EnableTimeout=*/true>"
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclResult_t ncclGinBarrierSession<Coop>::sync(\n
      \   Coop coop, cuda::memory_order ord, ncclGinFenceLevel fence, uint64_t timeoutCycles)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBufferLocalPointer
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 31
    functionName: ncclLsaBarrierSession_internal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGetResourceBufferLocalPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclLsaBarrierSession_internal<Coop>
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBufferLocalPointer
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:47,1
    - Dst: ncclLsaBarrierSession<Coop>::coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:48,1
    - Dst: ncclLsaBarrierSession<Coop>::coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: ncclLsaBarrierSession<Coop>::~ncclLsaBarrierSession()
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaBarrierSession<Coop>::coop::sync
    - ncclGetResourceBufferLocalPointer
    - ncclLsaBarrierSession<Coop>::coop::thread_rank
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclLsaBarrierSession<Coop>::~ncclLsaBarrierSession()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaBarrierSession<Coop>::coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:64,1
    - Dst: ncclLsaBarrierSession<Coop>::coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:67,1
    - Dst: ncclLsaBarrierSession<Coop>::mcInbox
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:68,1
    - Dst: nccl::utility::releaseOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:69,1
    - Dst: cuda::atomic_thread_fence
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:78,1
    - Dst: nccl::utility::releaseOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:78,1
    - Dst: ncclLsaBarrierSession<Coop>::coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:81,1
    - Dst: ncclLsaBarrierSession<Coop>::coop::size
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:81,1
    - Dst: ncclLsaBarrierSession<Coop>::ucInbox
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:83,1
    - Dst: cuda::atomic_ref::store
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - order
    argTypes:
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 87
    functionName: ncclLsaBarrierSession<Coop>::arrive
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaBarrierSession<Coop>::coop::size
    - ncclLsaBarrierSession<Coop>::ucInbox
    - ncclLsaBarrierSession<Coop>::coop::sync
    - ncclLsaBarrierSession<Coop>::mcInbox
    - cuda::atomic_thread_fence
    - nccl::utility::releaseOrderOf
    - cuda::atomic_ref::store
    - ncclLsaBarrierSession<Coop>::coop::thread_rank
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclLsaBarrierSession<Coop>::arrive(Coop, cuda::memory_order
      order)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: clock64
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:100,1
    - Dst: ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:106,1
    - Dst: ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::mcInbox
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:107,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:110,1
    - Dst: nccl::utility::acquireOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:110,1
    - Dst: clock64
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:114,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:119,1
    - Dst: ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:127,1
    - Dst: ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::coop::size
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:127,1
    - Dst: ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::ucInbox
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:129,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:132,1
    - Dst: nccl::utility::acquireOrderOf
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:132,1
    - Dst: clock64
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:136,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:141,1
    - Dst: ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:149,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 2
    argNames:
    - order
    - timeoutCycles
    argTypes:
    - cuda::memory_order
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 151
    functionName: "ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop,
      cuda::memory_order order,\n                                                                                   uint64_t
      timeoutCycles)"
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::coop::size
    - cuda::atomic_ref::load
    - ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::coop::sync
    - ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::mcInbox
    - ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::ucInbox
    - testAbort
    - nccl::utility::acquireOrderOf
    - clock64
    - ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::coop::thread_rank
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop,
      cuda::memory_order order,\n                                                                                   uint64_t
      timeoutCycles)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaBarrierSession<Coop>::template waitInternal</*EnableTimeout=*/false>
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - coop
    - order
    argTypes:
    - Coop
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: ncclLsaBarrierSession<Coop>::wait
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaBarrierSession<Coop>::template waitInternal</*EnableTimeout=*/false>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclLsaBarrierSession<Coop>::wait(Coop coop, cuda::memory_order
      order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: "ncclResult_t ncclLsaBarrierSession<Coop>::wait(\n    Coop coop, cuda::coop::sync"
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:165,1
    - Dst: "ncclResult_t ncclLsaBarrierSession<Coop>::wait(\n    Coop coop, cuda::template
        waitInternal</*EnableTimeout=*/true>"
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - coop
    - order
    - timeoutCycles
    argTypes:
    - Coop
    - cuda::memory_order
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: "ncclResult_t ncclLsaBarrierSession<Coop>::wait(\n    Coop coop,
      cuda::memory_order order, uint64_t timeoutCycles)"
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - "ncclResult_t ncclLsaBarrierSession<Coop>::wait(\n    Coop coop, cuda::coop::sync"
    - "ncclResult_t ncclLsaBarrierSession<Coop>::wait(\n    Coop coop, cuda::template
      waitInternal</*EnableTimeout=*/true>"
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclResult_t ncclLsaBarrierSession<Coop>::wait(\n
      \   Coop coop, cuda::memory_order order, uint64_t timeoutCycles)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaBarrierSession<Coop>::arrive
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:173,1
    - Dst: ncclLsaBarrierSession<Coop>::wait
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - coop
    - order
    argTypes:
    - Coop
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: ncclLsaBarrierSession<Coop>::sync
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaBarrierSession<Coop>::arrive
    - ncclLsaBarrierSession<Coop>::wait
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclLsaBarrierSession<Coop>::sync(Coop coop, cuda::memory_order
      order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: "ncclResult_t ncclLsaBarrierSession<Coop>::sync(\n    Coop coop, cuda::arrive"
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:182,1
    - Dst: "ncclResult_t ncclLsaBarrierSession<Coop>::sync(\n    Coop coop, cuda::wait"
      Src: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - coop
    - order
    - timeoutCycles
    argTypes:
    - Coop
    - cuda::memory_order
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: "ncclResult_t ncclLsaBarrierSession<Coop>::sync(\n    Coop coop,
      cuda::memory_order order, uint64_t timeoutCycles)"
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h
    functionUses: 0
    functionsReached:
    - "ncclResult_t ncclLsaBarrierSession<Coop>::sync(\n    Coop coop, cuda::wait"
    - "ncclResult_t ncclLsaBarrierSession<Coop>::sync(\n    Coop coop, cuda::arrive"
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclResult_t ncclLsaBarrierSession<Coop>::sync(\n
      \   Coop coop, cuda::memory_order order, uint64_t timeoutCycles)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeLambdaAlignmentOffsetWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:49,1
    - Dst: nccl::utility::reduceCopy<T, RedOp, Coop, false, false, SrcLambda, DstLambda,
        IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - ' redOp'
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - RedOp
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: ncclLsaReduceLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::computeLambdaAlignmentOffsetWithFallback<T>
    - nccl::utility::reduceCopy<T, RedOp, Coop, false, false, SrcLambda, DstLambda,
      IntCount, UNROLL>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceLsaCopy(\n    Coop coop,\n    SrcLambda
      srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    RedOp const& redOp,\n
      \   IntCount count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeLambdaAlignmentOffsetWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:65,1
    - Dst: nccl::utility::reduceCopy<T, RedOp, Coop, false, true, SrcLambda, DstLambda,
        IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - ' redOp'
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - RedOp
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: ncclLsaReduceMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::reduceCopy<T, RedOp, Coop, false, true, SrcLambda, DstLambda,
      IntCount, UNROLL>
    - nccl::utility::computeLambdaAlignmentOffsetWithFallback<T>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceMultimemCopy(\n    Coop coop,\n    SrcLambda
      srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    RedOp const& redOp,\n
      \   IntCount count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaReduceLsaCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: ncclLsaReduceSumLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaReduceLsaCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumLsaCopy(\n    Coop coop,\n    SrcLambda
      srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    IntCount count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaReduceMultimemCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: ncclLsaReduceSumMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaReduceMultimemCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumMultimemCopy(\n    Coop coop,\n
      \   SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    IntCount
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeLambdaAlignmentOffsetWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:106,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, true, false,
        SrcLambda, DstLambda, IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: ncclMultimemReduceSumLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, true, false, SrcLambda,
      DstLambda, IntCount, UNROLL>
    - nccl::utility::computeLambdaAlignmentOffsetWithFallback<T>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumLsaCopy(\n    Coop coop,\n
      \   SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    IntCount
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeLambdaAlignmentOffsetWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:123,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, true, true,
        SrcLambda, DstLambda, IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: ncclMultimemReduceSumMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::computeLambdaAlignmentOffsetWithFallback<T>
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, true, true, SrcLambda,
      DstLambda, IntCount, UNROLL>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumMultimemCopy(\n    Coop coop,\n
      \   SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    IntCount
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaReduceSumLsaCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstPtr
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - T*
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: ncclLsaReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaReduceSumLsaCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSum(Coop coop,\n                                            SrcLambda
      srcLambda, int nSrc,\n                                            T* dstPtr,\n
      \                                           IntCount count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<T>::peerPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:158,1
    - Dst: nccl::utility::computePointerPairAlignmentWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:169,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:170,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:170,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false,
        decltype(srcLambda), decltype(dstLambda), IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - coop
    - src
    - dstPtr
    - count
    - team
    argTypes:
    - Coop
    - ncclSymPtr<T>
    - T*
    - IntCount
    - ncclTeam
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 176
    functionName: ncclLsaReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false, decltype(srcLambda),
      decltype(dstLambda), IntCount, UNROLL>
    - ncclSymPtr<T>::peerPtr
    - srcLambda
    - nccl::utility::computePointerPairAlignmentWithFallback<T>
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSum(Coop coop,\n                                            ncclSymPtr<T>
      src,\n                                            T* dstPtr,\n                                            IntCount
      count,\n                                            ncclTeam team)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:186,1
    - Dst: ncclLsaReduceSum
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - coop
    - src
    - dstPtr
    - count
    - devComm
    argTypes:
    - Coop
    - ncclSymPtr<T>
    - T*
    - IntCount
    - ncclDevComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: ncclLsaReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached:
    - ncclLsaReduceSum
    - ncclTeamLsa
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSum(Coop coop,\n                                            ncclSymPtr<T>
      src,\n                                            T* dstPtr,\n                                            IntCount
      count,\n                                            ncclDevComm_t devComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaReduceSum
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - coop
    - window
    - offset
    - dstPtr
    - count
    - team
    argTypes:
    - Coop
    - ncclWindow_t
    - size_t
    - T*
    - IntCount
    - ncclTeam
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: ncclLsaReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached:
    - ncclLsaReduceSum
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSum(Coop coop,\n                                            ncclWindow_t
      window,\n                                            size_t offset,\n                                            T*
      dstPtr,\n                                            IntCount count,\n                                            ncclTeam
      team)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaReduceSum
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - coop
    - window
    - offset
    - dstPtr
    - count
    - devComm
    argTypes:
    - Coop
    - ncclWindow_t
    - size_t
    - T*
    - IntCount
    - ncclDevComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 217
    functionName: ncclLsaReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached:
    - ncclLsaReduceSum
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSum(Coop coop,\n                                            ncclWindow_t
      window,\n                                            size_t offset,\n                                            T*
      dstPtr,\n                                            IntCount count,\n                                            ncclDevComm_t
      devComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<T>::multimemPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:228,1
    - Dst: ncclMultimemReduceSumLsaCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - coop
    - src
    - dstPtr
    - count
    - multimemHandle
    argTypes:
    - Coop
    - ncclSymPtr<T>
    - T*
    - IntCount
    - ncclMultimemHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 239
    functionName: ncclMultimemReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclMultimemReduceSumLsaCopy
    - ncclSymPtr<T>::multimemPtr
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSum(Coop coop,\n                                                 ncclSymPtr<T>
      src,\n                                                 T* dstPtr,\n                                                 IntCount
      count,\n                                                 ncclMultimemHandle
      multimemHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMultimemReduceSumLsaCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - coop
    - mcSrcPtr
    - dstPtr
    - count
    argTypes:
    - Coop
    - T*
    - T*
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: ncclMultimemReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclMultimemReduceSumLsaCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSum(Coop coop,\n                                                 T*
      mcSrcPtr,\n                                                 T* dstPtr,\n                                                 IntCount
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMultimemReduceSum
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - coop
    - window
    - offset
    - dstPtr
    - count
    - multimemHandle
    argTypes:
    - Coop
    - ncclWindow_t
    - size_t
    - T*
    - IntCount
    - ncclMultimemHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: ncclMultimemReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached:
    - ncclMultimemReduceSum
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSum(Coop coop,\n                                                 ncclWindow_t
      window,\n                                                 size_t offset,\n                                                 T*
      dstPtr,\n                                                 IntCount count,\n
      \                                                ncclMultimemHandle multimemHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaReduceSumLsaCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstPtr
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - T*
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: ncclLocalReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaReduceSumLsaCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLocalReduceSum(Coop coop,\n                                              SrcLambda
      srcLambda, int nSrc,\n                                              T* dstPtr,\n
      \                                             IntCount count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeStridedAlignmentWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:301,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false,
        decltype(srcLambda), decltype(dstLambda), IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - coop
    - nSrc
    - basePtr
    - displ
    - dstPtr
    - count
    argTypes:
    - Coop
    - int
    - T*
    - size_t
    - T*
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 315
    functionName: ncclLocalReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::computeStridedAlignmentWithFallback<T>
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false, decltype(srcLambda),
      decltype(dstLambda), IntCount, UNROLL>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLocalReduceSum(Coop coop,\n                                              int
      nSrc,\n                                              T* basePtr,\n                                              size_t
      displ,\n                                              T* dstPtr,\n                                              IntCount
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaReduceSumLsaCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - coop
    - srcPtr
    - dstLambda
    - nDst
    - count
    argTypes:
    - Coop
    - T*
    - DstLambda
    - int
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: ncclLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaReduceSumLsaCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaCopy(Coop coop,\n                                       T*
      srcPtr,\n                                       DstLambda dstLambda, int nDst,\n
      \                                      IntCount count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<T>::peerPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:347,1
    - Dst: nccl::utility::computePointerPairAlignmentWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:355,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:356,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:356,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false,
        decltype(srcLambda), decltype(dstLambda), IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - coop
    - srcPtr
    - dst
    - count
    - team
    argTypes:
    - Coop
    - T*
    - ncclSymPtr<T>
    - IntCount
    - ncclTeam
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 362
    functionName: ncclLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false, decltype(srcLambda),
      decltype(dstLambda), IntCount, UNROLL>
    - ncclSymPtr<T>::peerPtr
    - srcLambda
    - nccl::utility::computePointerPairAlignmentWithFallback<T>
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaCopy(Coop coop,\n                                       T*
      srcPtr,\n                                       ncclSymPtr<T> dst,\n                                       IntCount
      count,\n                                       ncclTeam team)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:372,1
    - Dst: ncclLsaCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - coop
    - srcPtr
    - dst
    - count
    - devComm
    argTypes:
    - Coop
    - T*
    - ncclSymPtr<T>
    - IntCount
    - ncclDevComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 375
    functionName: ncclLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached:
    - ncclLsaCopy
    - ncclTeamLsa
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaCopy(Coop coop,\n                                       T*
      srcPtr,\n                                       ncclSymPtr<T> dst,\n                                       IntCount
      count,\n                                       ncclDevComm_t devComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - coop
    - srcPtr
    - window
    - offset
    - count
    - team
    argTypes:
    - Coop
    - T*
    - ncclWindow_t
    - size_t
    - IntCount
    - ncclTeam
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 389
    functionName: ncclLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached:
    - ncclLsaCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaCopy(Coop coop,\n                                       T*
      srcPtr,\n                                       ncclWindow_t window,\n                                       size_t
      offset,\n                                       IntCount count,\n                                       ncclTeam
      team)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - coop
    - srcPtr
    - window
    - offset
    - count
    - devComm
    argTypes:
    - Coop
    - T*
    - ncclWindow_t
    - size_t
    - IntCount
    - ncclDevComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 403
    functionName: ncclLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached:
    - ncclLsaCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaCopy(Coop coop,\n                                       T*
      srcPtr,\n                                       ncclWindow_t window,\n                                       size_t
      offset,\n                                       IntCount count,\n                                       ncclDevComm_t
      devComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<T>::multimemPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:417,1
    - Dst: ncclLsaReduceSumMultimemCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - coop
    - srcPtr
    - dst
    - count
    - multimemHandle
    argTypes:
    - Coop
    - T*
    - ncclSymPtr<T>
    - IntCount
    - ncclMultimemHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 425
    functionName: ncclMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaReduceSumMultimemCopy
    - ncclSymPtr<T>::multimemPtr
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemCopy(Coop coop,\n                                            T*
      srcPtr,\n                                            ncclSymPtr<T> dst,\n                                            IntCount
      count,\n                                            ncclMultimemHandle multimemHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaReduceSumMultimemCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - coop
    - srcPtr
    - mcDstPtr
    - count
    argTypes:
    - Coop
    - T*
    - T*
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 446
    functionName: ncclMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaReduceSumMultimemCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemCopy(Coop coop,\n                                            T*
      srcPtr,\n                                            T* mcDstPtr,\n                                            IntCount
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMultimemCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - coop
    - srcPtr
    - window
    - offset
    - count
    - multimemHandle
    argTypes:
    - Coop
    - T*
    - ncclWindow_t
    - size_t
    - IntCount
    - ncclMultimemHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 460
    functionName: ncclMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached:
    - ncclMultimemCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemCopy(Coop coop,\n                                            T*
      srcPtr,\n                                            ncclWindow_t window,\n
      \                                           size_t offset,\n                                            IntCount
      count,\n                                            ncclMultimemHandle multimemHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaReduceSumLsaCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - coop
    - srcPtr
    - dstLambda
    - nDst
    - count
    argTypes:
    - Coop
    - T*
    - DstLambda
    - int
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 474
    functionName: ncclLocalCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclLsaReduceSumLsaCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLocalCopy(Coop coop,\n                                         T*
      srcPtr,\n                                         DstLambda dstLambda, int nDst,\n
      \                                        IntCount count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeLambdaAlignmentOffsetWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:494,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false,
        decltype(srcLambda), decltype(dstLambda), IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - coop
    - srcPtr
    - nDst
    - basePtr
    - displ
    - count
    argTypes:
    - Coop
    - T*
    - int
    - T*
    - size_t
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 499
    functionName: ncclLocalCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::computeLambdaAlignmentOffsetWithFallback<T>
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false, decltype(srcLambda),
      decltype(dstLambda), IntCount, UNROLL>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLocalCopy(Coop coop,\n                                         T*
      srcPtr,\n                                         int nDst,\n                                         T*
      basePtr,\n                                         size_t displ,\n                                         IntCount
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<T>::peerPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:513,1
    - Dst: ncclSymPtr<T>::peerPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:516,1
    - Dst: nccl::utility::computePointerPairAlignmentWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:524,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:525,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:525,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false,
        decltype(srcLambda), decltype(dstLambda), IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - coop
    - src
    - dst
    - count
    - team
    argTypes:
    - Coop
    - ncclSymPtr<T>
    - ncclSymPtr<T>
    - IntCount
    - ncclTeam
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 530
    functionName: ncclLsaReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false, decltype(srcLambda),
      decltype(dstLambda), IntCount, UNROLL>
    - ncclSymPtr<T>::peerPtr
    - srcLambda
    - nccl::utility::computePointerPairAlignmentWithFallback<T>
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumCopy(Coop coop,\n                                                ncclSymPtr<T>
      src,\n                                                ncclSymPtr<T> dst,\n                                                IntCount
      count,\n                                                ncclTeam team)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:539,1
    - Dst: ncclLsaReduceSumCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - coop
    - src
    - dst
    - count
    - devComm
    argTypes:
    - Coop
    - ncclSymPtr<T>
    - ncclSymPtr<T>
    - IntCount
    - ncclDevComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 541
    functionName: ncclLsaReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached:
    - ncclTeamLsa
    - ncclLsaReduceSumCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumCopy(Coop coop,\n                                                ncclSymPtr<T>
      src,\n                                                ncclSymPtr<T> dst,\n                                                IntCount
      count,\n                                                ncclDevComm_t devComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaReduceSumCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - coop
    - srcWindow
    - srcOffset
    - dstWindow
    - dstOffset
    - count
    - team
    argTypes:
    - Coop
    - ncclWindow_t
    - size_t
    - ncclWindow_t
    - size_t
    - IntCount
    - ncclTeam
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 554
    functionName: ncclLsaReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached:
    - ncclLsaReduceSumCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumCopy(Coop coop,\n                                                ncclWindow_t
      srcWindow, size_t srcOffset,\n                                                ncclWindow_t
      dstWindow, size_t dstOffset,\n                                                IntCount
      count,\n                                                ncclTeam team)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaReduceSumCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - coop
    - srcWindow
    - srcOffset
    - dstWindow
    - dstOffset
    - count
    - devComm
    argTypes:
    - Coop
    - ncclWindow_t
    - size_t
    - ncclWindow_t
    - size_t
    - IntCount
    - ncclDevComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 567
    functionName: ncclLsaReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached:
    - ncclLsaReduceSumCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumCopy(Coop coop,\n                                                ncclWindow_t
      srcWindow, size_t srcOffset,\n                                                ncclWindow_t
      dstWindow, size_t dstOffset,\n                                                IntCount
      count,\n                                                ncclDevComm_t devComm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<T>::peerPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:576,1
    - Dst: ncclSymPtr<T>::peerPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:579,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:587,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:588,1
    - Dst: nccl::utility::computePointerPairAlignmentWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:589,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false,
        decltype(srcLambda), decltype(dstLambda), IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - coop
    - src
    - srcTeam
    - dst
    - dstTeam
    - count
    argTypes:
    - Coop
    - ncclSymPtr<T>
    - ncclTeam
    - ncclSymPtr<T>
    - ncclTeam
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 595
    functionName: ncclLsaReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached:
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false, decltype(srcLambda),
      decltype(dstLambda), IntCount, UNROLL>
    - ncclSymPtr<T>::peerPtr
    - srcLambda
    - nccl::utility::computePointerPairAlignmentWithFallback<T>
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumCopy(Coop coop,\n                                                ncclSymPtr<T>
      src, ncclTeam srcTeam,\n                                                ncclSymPtr<T>
      dst, ncclTeam dstTeam,\n                                                IntCount
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<T>::multimemPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:604,1
    - Dst: ncclSymPtr<T>::multimemPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:607,1
    - Dst: ncclMultimemReduceSumMultimemCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - coop
    - src
    - srcHandle
    - dst
    - dstHandle
    - count
    argTypes:
    - Coop
    - ncclSymPtr<T>
    - ncclMultimemHandle
    - ncclSymPtr<T>
    - ncclMultimemHandle
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 615
    functionName: ncclMultimemReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclMultimemReduceSumMultimemCopy
    - ncclSymPtr<T>::multimemPtr
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumCopy(Coop coop,\n                                                     ncclSymPtr<T>
      src, ncclMultimemHandle srcHandle,\n                                                     ncclSymPtr<T>
      dst, ncclMultimemHandle dstHandle,\n                                                     IntCount
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMultimemReduceSumMultimemCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - coop
    - mcSrcPtr
    - mcDstPtr
    - count
    argTypes:
    - Coop
    - T*
    - T*
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 635
    functionName: ncclMultimemReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - ncclMultimemReduceSumMultimemCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumCopy(Coop coop,\n                                                     T*
      mcSrcPtr,\n                                                     T* mcDstPtr,\n
      \                                                    IntCount count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMultimemReduceSumCopy
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - coop
    - srcWindow
    - srcOffset
    - srcHandle
    - dstWindow
    - dstOffset
    - dstHandle
    - count
    argTypes:
    - Coop
    - ncclWindow_t
    - size_t
    - ncclMultimemHandle
    - ncclWindow_t
    - size_t
    - ncclMultimemHandle
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 648
    functionName: ncclMultimemReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached:
    - ncclMultimemReduceSumCopy
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumCopy(Coop coop,\n                                                     ncclWindow_t
      srcWindow, size_t srcOffset, ncclMultimemHandle srcHandle,\n                                                     ncclWindow_t
      dstWindow, size_t dstOffset, ncclMultimemHandle dstHandle,\n                                                     IntCount
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<T>::peerPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:657,1
    - Dst: ncclSymPtr<T>::multimemPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:660,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:668,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:669,1
    - Dst: nccl::utility::computePointerPairAlignmentWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:670,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, true,
        decltype(srcLambda), decltype(dstLambda), IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - coop
    - src
    - srcTeam
    - dst
    - dstHandle
    - count
    argTypes:
    - Coop
    - ncclSymPtr<T>
    - ncclTeam
    - ncclSymPtr<T>
    - ncclMultimemHandle
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 677
    functionName: ncclLsaReduceSumMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached:
    - ncclSymPtr<T>::peerPtr
    - srcLambda
    - nccl::utility::computePointerPairAlignmentWithFallback<T>
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, true, decltype(srcLambda),
      decltype(dstLambda), IntCount, UNROLL>
    - ncclSymPtr<T>::multimemPtr
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumMultimemCopy(Coop coop,\n                                                        ncclSymPtr<T>
      src, ncclTeam srcTeam,\n                                                        ncclSymPtr<T>
      dst, ncclMultimemHandle dstHandle,\n                                                        IntCount
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<T>::peerPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:686,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:697,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:698,1
    - Dst: nccl::utility::computePointerPairAlignmentWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:699,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, true,
        decltype(srcLambda), decltype(dstLambda), IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - coop
    - src
    - srcTeam
    - mcDstPtr
    - count
    argTypes:
    - Coop
    - ncclSymPtr<T>
    - ncclTeam
    - T*
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 706
    functionName: ncclLsaReduceSumMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached:
    - ncclSymPtr<T>::peerPtr
    - srcLambda
    - nccl::utility::computePointerPairAlignmentWithFallback<T>
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, true, decltype(srcLambda),
      decltype(dstLambda), IntCount, UNROLL>
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumMultimemCopy(Coop coop,\n                                                        ncclSymPtr<T>
      src, ncclTeam srcTeam,\n                                                        T*
      mcDstPtr,\n                                                        IntCount
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<T>::multimemPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:715,1
    - Dst: ncclSymPtr<T>::peerPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:718,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:726,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:727,1
    - Dst: nccl::utility::computePointerPairAlignmentWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:728,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, true, false,
        decltype(srcLambda), decltype(dstLambda), IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - coop
    - src
    - srcHandle
    - dst
    - dstTeam
    - count
    argTypes:
    - Coop
    - ncclSymPtr<T>
    - ncclMultimemHandle
    - ncclSymPtr<T>
    - ncclTeam
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 735
    functionName: ncclMultimemReduceSumLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached:
    - ncclSymPtr<T>::peerPtr
    - srcLambda
    - nccl::utility::computePointerPairAlignmentWithFallback<T>
    - ncclSymPtr<T>::multimemPtr
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, true, false, decltype(srcLambda),
      decltype(dstLambda), IntCount, UNROLL>
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumLsaCopy(Coop coop,\n                                                        ncclSymPtr<T>
      src, ncclMultimemHandle srcHandle,\n                                                        ncclSymPtr<T>
      dst, ncclTeam dstTeam,\n                                                        IntCount
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<T>::peerPtr
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:747,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:755,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:756,1
    - Dst: nccl::utility::computePointerPairAlignmentWithFallback<T>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:757,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, true, false,
        decltype(srcLambda), decltype(dstLambda), IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - coop
    - mcSrcPtr
    - dst
    - dstTeam
    - count
    argTypes:
    - Coop
    - T*
    - ncclSymPtr<T>
    - ncclTeam
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 764
    functionName: ncclMultimemReduceSumLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached:
    - ncclSymPtr<T>::peerPtr
    - srcLambda
    - nccl::utility::computePointerPairAlignmentWithFallback<T>
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, true, false, decltype(srcLambda),
      decltype(dstLambda), IntCount, UNROLL>
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumLsaCopy(Coop coop,\n                                                        T*
      mcSrcPtr,\n                                                        ncclSymPtr<T>
      dst, ncclTeam dstTeam,\n                                                        IntCount
      count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:774,1
    - Dst: nccl::utility::tryComplexStridedAlignmentForPackSize<T, 16>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:777,1
    - Dst: nccl::utility::tryComplexStridedAlignmentForPackSize<T, 4>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:780,1
    - Dst: nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false,
        decltype(srcLambda), decltype(dstLambda), IntCount, UNROLL>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h:792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - coop
    - nSrc
    - srcBasePtr
    - srcDispl
    - nDst
    - dstBasePtr
    - dstDispl
    - count
    argTypes:
    - Coop
    - int
    - T*
    - size_t
    - int
    - T*
    - size_t
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 794
    functionName: ncclLocalReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - nccl::utility::tryComplexStridedAlignmentForPackSize<T, 16>
    - nccl::utility::tryComplexStridedAlignmentForPackSize<T, 4>
    - nccl::utility::reduceCopy<T, nccl::utility::OpSum<T>, Coop, false, false, decltype(srcLambda),
      decltype(dstLambda), IntCount, UNROLL>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLocalReduceSumCopy(Coop coop,\n                                                  int
      nSrc, T* srcBasePtr, size_t srcDispl,\n                                                  int
      nDst, T* dstBasePtr, size_t dstDispl,\n                                                  IntCount
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 808
    functionName: ncclLsaReduceLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceLsaCopy(\n    Coop, SrcLambda, int,
      DstLambda, int, RedOp const&, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 816
    functionName: ncclLsaReduceMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceMultimemCopy(\n    Coop, SrcLambda,
      int, DstLambda, int, RedOp const&, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 825
    functionName: ncclLsaReduceSumLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumLsaCopy(\n    Coop, SrcLambda,
      int, DstLambda, int, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 833
    functionName: ncclLsaReduceSumMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumMultimemCopy(\n    Coop, SrcLambda,
      int, DstLambda, int, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 841
    functionName: ncclMultimemReduceSumLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumLsaCopy(\n    Coop, SrcLambda,
      int, DstLambda, int, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 849
    functionName: ncclMultimemReduceSumMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumMultimemCopy(\n    Coop, SrcLambda,
      int, DstLambda, int, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 857
    functionName: ncclLsaReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSum(\n    Coop, SrcLambda, int, T*,
      IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 864
    functionName: ncclLsaReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSum(\n    Coop, ncclSymPtr<T>, T*,
      IntCount, ncclTeam)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 871
    functionName: ncclLsaReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSum(\n    Coop, ncclSymPtr<T>, T*,
      IntCount, ncclDevComm_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 878
    functionName: ncclLsaReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSum(\n    Coop, ncclWindow_t, size_t,
      T*, IntCount, ncclTeam)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 885
    functionName: ncclLsaReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSum(\n    Coop, ncclWindow_t, size_t,
      T*, IntCount, ncclDevComm_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: ncclMultimemReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSum(\n    Coop, ncclSymPtr<T>,
      T*, IntCount, ncclMultimemHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 900
    functionName: ncclMultimemReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSum(\n    Coop, T*, T*, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 907
    functionName: ncclMultimemReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSum(\n    Coop, ncclWindow_t,
      size_t, T*, IntCount, ncclMultimemHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 915
    functionName: ncclLocalReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLocalReduceSum(\n    Coop, SrcLambda, int,
      T*, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 923
    functionName: ncclLocalReduceSum
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLocalReduceSum(\n    Coop, int, T*, size_t,
      T*, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 933
    functionName: ncclLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaCopy(\n    Coop, T*, DstLambda, int, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 941
    functionName: ncclLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaCopy(\n    Coop, T*, ncclSymPtr<T>, IntCount,
      ncclTeam)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 949
    functionName: ncclLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaCopy(\n    Coop, T*, ncclSymPtr<T>, IntCount,
      ncclDevComm_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 957
    functionName: ncclLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaCopy(\n    Coop, T*, ncclWindow_t, size_t,
      IntCount, ncclTeam)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 965
    functionName: ncclLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaCopy(\n    Coop, T*, ncclWindow_t, size_t,
      IntCount, ncclDevComm_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 973
    functionName: ncclMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemCopy(\n    Coop, T*, ncclSymPtr<T>,
      IntCount, ncclMultimemHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 981
    functionName: ncclMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemCopy(\n    Coop, T*, T*, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 989
    functionName: ncclMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemCopy(\n    Coop, T*, ncclWindow_t,
      size_t, IntCount, ncclMultimemHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 997
    functionName: ncclLocalCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLocalCopy(\n    Coop, T*, DstLambda, int, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1005
    functionName: ncclLocalCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLocalCopy(\n    Coop, T*, int, T*, size_t,
      IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1015
    functionName: ncclLsaReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumCopy(\n    Coop, ncclSymPtr<T>,
      ncclSymPtr<T>, IntCount, ncclTeam)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1023
    functionName: ncclLsaReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumCopy(\n    Coop, ncclSymPtr<T>,
      ncclSymPtr<T>, IntCount, ncclDevComm_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1031
    functionName: ncclLsaReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumCopy(\n    Coop, ncclWindow_t,
      size_t, ncclWindow_t, size_t, IntCount, ncclTeam)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1039
    functionName: ncclLsaReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumCopy(\n    Coop, ncclWindow_t,
      size_t, ncclWindow_t, size_t, IntCount, ncclDevComm_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1047
    functionName: ncclLsaReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumCopy(\n    Coop, ncclSymPtr<T>,
      ncclTeam, ncclSymPtr<T>, ncclTeam, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1055
    functionName: ncclMultimemReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumCopy(\n    Coop, ncclSymPtr<T>,
      ncclMultimemHandle, ncclSymPtr<T>, ncclMultimemHandle, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1063
    functionName: ncclMultimemReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumCopy(\n    Coop, T*, T*, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1071
    functionName: ncclMultimemReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumCopy(\n    Coop, ncclWindow_t,
      size_t, ncclMultimemHandle, ncclWindow_t, size_t, ncclMultimemHandle, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1079
    functionName: ncclLsaReduceSumMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumMultimemCopy(\n    Coop, ncclSymPtr<T>,
      ncclTeam, ncclSymPtr<T>, ncclMultimemHandle, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1087
    functionName: ncclLsaReduceSumMultimemCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLsaReduceSumMultimemCopy(\n    Coop, ncclSymPtr<T>,
      ncclTeam, T*, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1095
    functionName: ncclMultimemReduceSumLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumLsaCopy(\n    Coop, ncclSymPtr<T>,
      ncclMultimemHandle, ncclSymPtr<T>, ncclTeam, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1103
    functionName: ncclMultimemReduceSumLsaCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclMultimemReduceSumLsaCopy(\n    Coop, T*, ncclSymPtr<T>,
      ncclTeam, IntCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1111
    functionName: ncclLocalReduceSumCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclLocalReduceSumCopy(\n    Coop, int, T*, size_t,
      int, T*, size_t, IntCount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:34,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts:
    - condition: (false && "multimem is not supported on architectures < sm_90")
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: nccl::utility::run
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE run(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: nccl::utility::run
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE run(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::run
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: nccl::utility::load
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 8
    functionsReached:
    - nccl::utility::run
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE load(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:67,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<double, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: EltPack<double, 1> load<EltPack<double, 1>, true, OpSum<double>>(const
      EltPack<double, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<double, 1> load<EltPack<double, 1>, true,
      OpSum<double>>(const EltPack<double, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:78,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:79,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:85,1
    - Dst: reinterpret_cast<const EltPack<double, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:86,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<double, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: EltPack<double, 2> load<EltPack<double, 2>, true, OpSum<double>>(const
      EltPack<double, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    - reinterpret_cast<const EltPack<double, 1>*>
    - reinterpret_cast<const char*>
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<double, 2> load<EltPack<double, 2>, true,
      OpSum<double>>(const EltPack<double, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:99,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: EltPack<float, 1> load<EltPack<float, 1>, true, OpSum<float>>(const
      EltPack<float, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> load<EltPack<float, 1>, true,
      OpSum<float>>(const EltPack<float, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:112,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:114,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: EltPack<float, 2> load<EltPack<float, 2>, true, OpSum<float>>(const
      EltPack<float, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> load<EltPack<float, 2>, true,
      OpSum<float>>(const EltPack<float, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:126,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: EltPack<float, 4> load<EltPack<float, 4>, true, OpSum<float>>(const
      EltPack<float, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 4> load<EltPack<float, 4>, true,
      OpSum<float>>(const EltPack<float, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:143,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:149,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const
      EltPack<half, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const
      EltPack<half, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:158,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:166,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:167,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:170,1
    - Dst: reinterpret_cast<const EltPack<half, 2>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:171,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:173,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 161
        line_start: 157
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 178
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 178
    functionName: EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const
      EltPack<half, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - nccl::utility::load
    - reinterpret_cast<const char*>
    - assert
    - reinterpret_cast<const EltPack<half, 2>*>
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const
      EltPack<half, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:187,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 8>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 197
    functionName: EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const
      EltPack<half, 8>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const
      EltPack<half, 8>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:209,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:215,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16, 2>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16,
      2>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:224,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:232,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:233,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:236,1
    - Dst: reinterpret_cast<const EltPack<__nv_bfloat16, 2>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:237,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:239,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 227
        line_start: 223
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 244
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 244
    functionName: EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16, 1>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - nccl::utility::load
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - reinterpret_cast<const EltPack<__nv_bfloat16, 2>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16,
      1>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:254,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 8>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16, 8>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 8>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16,
      8>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 8>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:290,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:296,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:301,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 4>*
    assertStmts:
    - condition: (false && "FP8 multimem is not supported on this architecture.")
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 304
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 304
    functionName: EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3, 4>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3,
      4>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:310,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:318,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:319,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:322,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:323,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:326,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 2>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 313
        line_start: 309
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 333
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 333
    functionName: EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3, 2>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
    - reinterpret_cast<size_t>
    - nccl::utility::load
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3,
      2>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:339,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:347,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:348,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:351,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:352,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:355,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 342
        line_start: 338
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 359
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 359
    functionName: EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3, 1>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
    - reinterpret_cast<size_t>
    - nccl::utility::load
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3,
      1>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:378,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:384,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 16>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 392
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 392
    functionName: EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3, 16>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 16>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3,
      16>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 16>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:411,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:417,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:422,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 4>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 425
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 425
    functionName: EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2, 4>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2,
      4>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:431,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:439,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:440,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:443,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:444,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:447,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 2>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 434
        line_start: 430
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 454
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 454
    functionName: EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2, 2>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - nccl::utility::load
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2,
      2>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:460,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:468,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:469,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:472,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:473,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:476,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 463
        line_start: 459
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 480
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 480
    functionName: EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2, 1>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - nccl::utility::load
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2,
      1>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:498,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:504,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:509,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 16>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 512
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 512
    functionName: EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2, 16>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 16>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2,
      16>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 16>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:522,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int32_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true, OpSum<int32_t>>(const
      EltPack<int32_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true,
      OpSum<int32_t>>(const EltPack<int32_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:533,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:534,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:540,1
    - Dst: reinterpret_cast<const EltPack<int32_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:541,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int32_t, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 545
    functionName: EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true, OpSum<int32_t>>(const
      EltPack<int32_t, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<int32_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true,
      OpSum<int32_t>>(const EltPack<int32_t, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:554,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint32_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 558
    functionName: EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>, true, OpSum<uint32_t>>(const
      EltPack<uint32_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>,
      true, OpSum<uint32_t>>(const EltPack<uint32_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:565,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:566,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:572,1
    - Dst: reinterpret_cast<const EltPack<uint32_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:573,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint32_t, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 577
    functionName: EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>, true, OpSum<uint32_t>>(const
      EltPack<uint32_t, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<uint32_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>,
      true, OpSum<uint32_t>>(const EltPack<uint32_t, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:587,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int64_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 591
    functionName: EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true, OpSum<int64_t>>(const
      EltPack<int64_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true,
      OpSum<int64_t>>(const EltPack<int64_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:598,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:599,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:605,1
    - Dst: reinterpret_cast<const EltPack<int64_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:606,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int64_t, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 610
    functionName: EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true, OpSum<int64_t>>(const
      EltPack<int64_t, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    - reinterpret_cast<const char*>
    - reinterpret_cast<const EltPack<int64_t, 1>*>
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true,
      OpSum<int64_t>>(const EltPack<int64_t, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:619,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint64_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 623
    functionName: EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>, true, OpSum<uint64_t>>(const
      EltPack<uint64_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>,
      true, OpSum<uint64_t>>(const EltPack<uint64_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:630,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:631,1
    - Dst: nccl::utility::load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:637,1
    - Dst: reinterpret_cast<const EltPack<uint64_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:638,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint64_t, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 642
    functionName: EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>, true, OpSum<uint64_t>>(const
      EltPack<uint64_t, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<uint64_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>,
      true, OpSum<uint64_t>>(const EltPack<uint64_t, 2>* addr)
  - 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: 669
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<0>(uintptr_t addr, const BytePack<0>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - uintptr_t
    - BytePack<1>
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#multimem-addresses.\")"
      pos:
        line_end: 677
        line_start: 673
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 683
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 683
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<1>(uintptr_t addr, const BytePack<1>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - uintptr_t
    - BytePack<2>
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#multimem-addresses.\")"
      pos:
        line_end: 691
        line_start: 687
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 697
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 697
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<2>(uintptr_t addr, const 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: 702
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 702
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<4>(uintptr_t addr, const 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: 707
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 707
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<8>(uintptr_t addr, const 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: 715
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 715
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<16>(uintptr_t addr, const BytePack<16>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:724,1
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:727,1
    - Dst: nccl::utility::multimem_st_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - addr
    - ' pack'
    argTypes:
    - void*
    - Pack
    assertStmts:
    - condition: (false && "multimemStore requires CUDA architecture >= 900 (sm_90
        or higher)")
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 736
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 736
    functionName: nccl::utility::multimemStore
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - __cvta_generic_to_global
    - nccl::utility::multimem_st_global
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimemStore(void* addr, const Pack& pack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::multimemStore
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - Pack*
    - Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 748
    functionName: nccl::utility::store
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 4
    functionsReached:
    - nccl::utility::multimemStore
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE store(Pack* addr, const Pack& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:34,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts:
    - condition: (false && "multimem is not supported on architectures < sm_90")
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: nccl::utility::run
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE run(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: nccl::utility::run
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE run(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::run
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: nccl::utility::load
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 19
    functionsReached:
    - nccl::utility::run
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE load(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:67,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<double, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: EltPack<double, 1> load<EltPack<double, 1>, true, OpSum<double>>(const
      EltPack<double, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<double, 1> load<EltPack<double, 1>, true,
      OpSum<double>>(const EltPack<double, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:78,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:79,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:85,1
    - Dst: reinterpret_cast<const EltPack<double, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:86,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<double, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: EltPack<double, 2> load<EltPack<double, 2>, true, OpSum<double>>(const
      EltPack<double, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const EltPack<double, 1>*>
    - reinterpret_cast<const char*>
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<double, 2> load<EltPack<double, 2>, true,
      OpSum<double>>(const EltPack<double, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:99,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: EltPack<float, 1> load<EltPack<float, 1>, true, OpSum<float>>(const
      EltPack<float, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> load<EltPack<float, 1>, true,
      OpSum<float>>(const EltPack<float, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:112,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:114,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: EltPack<float, 2> load<EltPack<float, 2>, true, OpSum<float>>(const
      EltPack<float, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> load<EltPack<float, 2>, true,
      OpSum<float>>(const EltPack<float, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:126,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: EltPack<float, 4> load<EltPack<float, 4>, true, OpSum<float>>(const
      EltPack<float, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 4> load<EltPack<float, 4>, true,
      OpSum<float>>(const EltPack<float, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:143,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:149,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const
      EltPack<half, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const
      EltPack<half, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:158,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:166,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:167,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:170,1
    - Dst: reinterpret_cast<const EltPack<half, 2>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:171,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:173,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 161
        line_start: 157
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 178
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 178
    functionName: EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const
      EltPack<half, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - reinterpret_cast<const EltPack<half, 2>*>
    - EltPack::elts
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const
      EltPack<half, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:187,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 8>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 197
    functionName: EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const
      EltPack<half, 8>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const
      EltPack<half, 8>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:209,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:215,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16, 2>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16,
      2>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:224,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:232,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:233,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:236,1
    - Dst: reinterpret_cast<const EltPack<__nv_bfloat16, 2>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:237,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:239,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 227
        line_start: 223
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 244
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 244
    functionName: EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16, 1>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - reinterpret_cast<const EltPack<__nv_bfloat16, 2>*>
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16,
      1>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:254,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 8>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16, 8>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 8>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16,
      8>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 8>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:290,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:296,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:301,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 4>*
    assertStmts:
    - condition: (false && "FP8 multimem is not supported on this architecture.")
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 304
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 304
    functionName: EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3, 4>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3,
      4>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:310,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:318,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:319,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:322,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:323,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:326,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 2>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 313
        line_start: 309
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 333
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 333
    functionName: EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3, 2>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3,
      2>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:339,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:347,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:348,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:351,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:352,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:355,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 342
        line_start: 338
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 359
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 359
    functionName: EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3, 1>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3,
      1>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:378,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:384,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 16>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 392
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 392
    functionName: EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3, 16>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 16>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3,
      16>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 16>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:411,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:417,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:422,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 4>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 425
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 425
    functionName: EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2, 4>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2,
      4>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:431,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:439,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:440,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:443,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:444,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:447,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 2>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 434
        line_start: 430
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 454
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 454
    functionName: EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2, 2>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    - reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2,
      2>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:460,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:468,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:469,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:472,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:473,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:476,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 463
        line_start: 459
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 480
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 480
    functionName: EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2, 1>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    - reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2,
      1>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:498,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:504,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:509,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 16>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 512
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 512
    functionName: EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2, 16>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 16>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2,
      16>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 16>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:522,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int32_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true, OpSum<int32_t>>(const
      EltPack<int32_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true,
      OpSum<int32_t>>(const EltPack<int32_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:533,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:534,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:540,1
    - Dst: reinterpret_cast<const EltPack<int32_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:541,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int32_t, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 545
    functionName: EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true, OpSum<int32_t>>(const
      EltPack<int32_t, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<int32_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true,
      OpSum<int32_t>>(const EltPack<int32_t, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:554,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint32_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 558
    functionName: EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>, true, OpSum<uint32_t>>(const
      EltPack<uint32_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>,
      true, OpSum<uint32_t>>(const EltPack<uint32_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:565,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:566,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:572,1
    - Dst: reinterpret_cast<const EltPack<uint32_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:573,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint32_t, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 577
    functionName: EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>, true, OpSum<uint32_t>>(const
      EltPack<uint32_t, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<uint32_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>,
      true, OpSum<uint32_t>>(const EltPack<uint32_t, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:587,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int64_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 591
    functionName: EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true, OpSum<int64_t>>(const
      EltPack<int64_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true,
      OpSum<int64_t>>(const EltPack<int64_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:598,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:599,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:605,1
    - Dst: reinterpret_cast<const EltPack<int64_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:606,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int64_t, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 610
    functionName: EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true, OpSum<int64_t>>(const
      EltPack<int64_t, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - reinterpret_cast<const EltPack<int64_t, 1>*>
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true,
      OpSum<int64_t>>(const EltPack<int64_t, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:619,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint64_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 623
    functionName: EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>, true, OpSum<uint64_t>>(const
      EltPack<uint64_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>,
      true, OpSum<uint64_t>>(const EltPack<uint64_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:630,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:631,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:637,1
    - Dst: reinterpret_cast<const EltPack<uint64_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:638,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint64_t, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 642
    functionName: EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>, true, OpSum<uint64_t>>(const
      EltPack<uint64_t, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<uint64_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>,
      true, OpSum<uint64_t>>(const EltPack<uint64_t, 2>* addr)
  - 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: 669
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<0>(uintptr_t addr, const BytePack<0>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - uintptr_t
    - BytePack<1>
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#multimem-addresses.\")"
      pos:
        line_end: 677
        line_start: 673
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 683
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 683
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<1>(uintptr_t addr, const BytePack<1>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - uintptr_t
    - BytePack<2>
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#multimem-addresses.\")"
      pos:
        line_end: 691
        line_start: 687
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 697
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 697
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<2>(uintptr_t addr, const 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: 702
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 702
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<4>(uintptr_t addr, const 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: 707
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 707
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<8>(uintptr_t addr, const 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: 715
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 715
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<16>(uintptr_t addr, const BytePack<16>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:724,1
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:727,1
    - Dst: nccl::utility::multimem_st_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - addr
    - ' pack'
    argTypes:
    - void*
    - Pack
    assertStmts:
    - condition: (false && "multimemStore requires CUDA architecture >= 900 (sm_90
        or higher)")
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 736
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 736
    functionName: nccl::utility::multimemStore
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 1
    functionsReached:
    - __cvta_generic_to_global
    - nccl::utility::multimem_st_global
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimemStore(void* addr, const Pack& pack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::multimemStore
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - Pack*
    - Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 748
    functionName: nccl::utility::store
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 4
    functionsReached:
    - nccl::utility::multimemStore
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE store(Pack* addr, const Pack& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:34,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts:
    - condition: (false && "multimem is not supported on architectures < sm_90")
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: nccl::utility::run
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE run(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: nccl::utility::run
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE run(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::run
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: nccl::utility::load
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 19
    functionsReached:
    - nccl::utility::run
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE load(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:67,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<double, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: EltPack<double, 1> load<EltPack<double, 1>, true, OpSum<double>>(const
      EltPack<double, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<double, 1> load<EltPack<double, 1>, true,
      OpSum<double>>(const EltPack<double, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:78,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:79,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:85,1
    - Dst: reinterpret_cast<const EltPack<double, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:86,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<double, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: EltPack<double, 2> load<EltPack<double, 2>, true, OpSum<double>>(const
      EltPack<double, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const EltPack<double, 1>*>
    - reinterpret_cast<const char*>
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<double, 2> load<EltPack<double, 2>, true,
      OpSum<double>>(const EltPack<double, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:99,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: EltPack<float, 1> load<EltPack<float, 1>, true, OpSum<float>>(const
      EltPack<float, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> load<EltPack<float, 1>, true,
      OpSum<float>>(const EltPack<float, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:112,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:114,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: EltPack<float, 2> load<EltPack<float, 2>, true, OpSum<float>>(const
      EltPack<float, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> load<EltPack<float, 2>, true,
      OpSum<float>>(const EltPack<float, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:126,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: EltPack<float, 4> load<EltPack<float, 4>, true, OpSum<float>>(const
      EltPack<float, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 4> load<EltPack<float, 4>, true,
      OpSum<float>>(const EltPack<float, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:143,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:149,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const
      EltPack<half, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const
      EltPack<half, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:158,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:166,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:167,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:170,1
    - Dst: reinterpret_cast<const EltPack<half, 2>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:171,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:173,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 161
        line_start: 157
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 178
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 178
    functionName: EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const
      EltPack<half, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - reinterpret_cast<const EltPack<half, 2>*>
    - EltPack::elts
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const
      EltPack<half, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:187,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 8>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 197
    functionName: EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const
      EltPack<half, 8>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const
      EltPack<half, 8>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:209,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:215,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16, 2>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16,
      2>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:224,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:232,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:233,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:236,1
    - Dst: reinterpret_cast<const EltPack<__nv_bfloat16, 2>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:237,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:239,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 227
        line_start: 223
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 244
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 244
    functionName: EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16, 1>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - reinterpret_cast<const EltPack<__nv_bfloat16, 2>*>
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16,
      1>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:254,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 8>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16, 8>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 8>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16,
      8>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 8>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:290,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:296,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:301,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 4>*
    assertStmts:
    - condition: (false && "FP8 multimem is not supported on this architecture.")
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 304
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 304
    functionName: EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3, 4>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3,
      4>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:310,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:318,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:319,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:322,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:323,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:326,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 2>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 313
        line_start: 309
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 333
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 333
    functionName: EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3, 2>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3,
      2>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:339,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:347,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:348,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:351,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:352,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:355,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 342
        line_start: 338
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 359
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 359
    functionName: EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3, 1>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3,
      1>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:378,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:384,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 16>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 392
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 392
    functionName: EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3, 16>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 16>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3,
      16>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 16>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:411,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:417,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:422,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 4>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 425
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 425
    functionName: EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2, 4>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2,
      4>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:431,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:439,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:440,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:443,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:444,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:447,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 2>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 434
        line_start: 430
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 454
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 454
    functionName: EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2, 2>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    - reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2,
      2>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:460,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:468,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:469,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:472,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:473,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:476,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 463
        line_start: 459
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 480
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 480
    functionName: EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2, 1>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    - reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2,
      1>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:498,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:504,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:509,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 16>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 512
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 512
    functionName: EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2, 16>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 16>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2,
      16>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 16>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:522,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int32_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true, OpSum<int32_t>>(const
      EltPack<int32_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true,
      OpSum<int32_t>>(const EltPack<int32_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:533,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:534,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:540,1
    - Dst: reinterpret_cast<const EltPack<int32_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:541,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int32_t, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 545
    functionName: EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true, OpSum<int32_t>>(const
      EltPack<int32_t, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<int32_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true,
      OpSum<int32_t>>(const EltPack<int32_t, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:554,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint32_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 558
    functionName: EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>, true, OpSum<uint32_t>>(const
      EltPack<uint32_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>,
      true, OpSum<uint32_t>>(const EltPack<uint32_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:565,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:566,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:572,1
    - Dst: reinterpret_cast<const EltPack<uint32_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:573,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint32_t, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 577
    functionName: EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>, true, OpSum<uint32_t>>(const
      EltPack<uint32_t, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<uint32_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>,
      true, OpSum<uint32_t>>(const EltPack<uint32_t, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:587,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int64_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 591
    functionName: EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true, OpSum<int64_t>>(const
      EltPack<int64_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true,
      OpSum<int64_t>>(const EltPack<int64_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:598,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:599,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:605,1
    - Dst: reinterpret_cast<const EltPack<int64_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:606,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int64_t, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 610
    functionName: EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true, OpSum<int64_t>>(const
      EltPack<int64_t, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - reinterpret_cast<const EltPack<int64_t, 1>*>
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true,
      OpSum<int64_t>>(const EltPack<int64_t, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:619,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint64_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 623
    functionName: EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>, true, OpSum<uint64_t>>(const
      EltPack<uint64_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>,
      true, OpSum<uint64_t>>(const EltPack<uint64_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:630,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:631,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:637,1
    - Dst: reinterpret_cast<const EltPack<uint64_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:638,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint64_t, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 642
    functionName: EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>, true, OpSum<uint64_t>>(const
      EltPack<uint64_t, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<uint64_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>,
      true, OpSum<uint64_t>>(const EltPack<uint64_t, 2>* addr)
  - 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: 669
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<0>(uintptr_t addr, const BytePack<0>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - uintptr_t
    - BytePack<1>
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#multimem-addresses.\")"
      pos:
        line_end: 677
        line_start: 673
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 683
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 683
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<1>(uintptr_t addr, const BytePack<1>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - uintptr_t
    - BytePack<2>
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#multimem-addresses.\")"
      pos:
        line_end: 691
        line_start: 687
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 697
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 697
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<2>(uintptr_t addr, const 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: 702
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 702
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<4>(uintptr_t addr, const 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: 707
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 707
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<8>(uintptr_t addr, const 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: 715
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 715
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<16>(uintptr_t addr, const BytePack<16>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:724,1
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:727,1
    - Dst: nccl::utility::multimem_st_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - addr
    - ' pack'
    argTypes:
    - void*
    - Pack
    assertStmts:
    - condition: (false && "multimemStore requires CUDA architecture >= 900 (sm_90
        or higher)")
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 736
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 736
    functionName: nccl::utility::multimemStore
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 2
    functionsReached:
    - __cvta_generic_to_global
    - nccl::utility::multimem_st_global
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimemStore(void* addr, const Pack& pack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::multimemStore
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - Pack*
    - Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 748
    functionName: nccl::utility::store
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 4
    functionsReached:
    - nccl::utility::multimemStore
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE store(Pack* addr, const Pack& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:34,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts:
    - condition: (false && "multimem is not supported on architectures < sm_90")
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: nccl::utility::run
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE run(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: nccl::utility::run
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE run(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::run
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Pack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: nccl::utility::load
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 19
    functionsReached:
    - nccl::utility::run
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE load(const Pack* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:67,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<double, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: EltPack<double, 1> load<EltPack<double, 1>, true, OpSum<double>>(const
      EltPack<double, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<double, 1> load<EltPack<double, 1>, true,
      OpSum<double>>(const EltPack<double, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:78,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:79,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:85,1
    - Dst: reinterpret_cast<const EltPack<double, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:86,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<double, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: EltPack<double, 2> load<EltPack<double, 2>, true, OpSum<double>>(const
      EltPack<double, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const EltPack<double, 1>*>
    - reinterpret_cast<const char*>
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<double, 2> load<EltPack<double, 2>, true,
      OpSum<double>>(const EltPack<double, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:99,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: EltPack<float, 1> load<EltPack<float, 1>, true, OpSum<float>>(const
      EltPack<float, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> load<EltPack<float, 1>, true,
      OpSum<float>>(const EltPack<float, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:112,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:114,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: EltPack<float, 2> load<EltPack<float, 2>, true, OpSum<float>>(const
      EltPack<float, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> load<EltPack<float, 2>, true,
      OpSum<float>>(const EltPack<float, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:126,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<float, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: EltPack<float, 4> load<EltPack<float, 4>, true, OpSum<float>>(const
      EltPack<float, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 4> load<EltPack<float, 4>, true,
      OpSum<float>>(const EltPack<float, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:143,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:149,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const
      EltPack<half, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const
      EltPack<half, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:158,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:166,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:167,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:170,1
    - Dst: reinterpret_cast<const EltPack<half, 2>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:171,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:173,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 161
        line_start: 157
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 178
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 178
    functionName: EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const
      EltPack<half, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - reinterpret_cast<const EltPack<half, 2>*>
    - EltPack::elts
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const
      EltPack<half, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:187,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<half, 8>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 197
    functionName: EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const
      EltPack<half, 8>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const
      EltPack<half, 8>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:209,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:215,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16, 2>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16,
      2>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:224,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:232,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:233,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:236,1
    - Dst: reinterpret_cast<const EltPack<__nv_bfloat16, 2>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:237,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:239,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 227
        line_start: 223
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 244
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 244
    functionName: EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16, 1>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - reinterpret_cast<const EltPack<__nv_bfloat16, 2>*>
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16,
      1>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:254,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_bfloat16, 8>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16, 8>, true,
      OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 8>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16,
      8>, true, OpSum<__nv_bfloat16>>(const EltPack<__nv_bfloat16, 8>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:290,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:296,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:301,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 4>*
    assertStmts:
    - condition: (false && "FP8 multimem is not supported on this architecture.")
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 304
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 304
    functionName: EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3, 4>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3,
      4>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:310,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:318,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:319,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:322,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:323,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:326,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 2>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 313
        line_start: 309
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 333
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 333
    functionName: EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3, 2>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3,
      2>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:339,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:347,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:348,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:351,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:352,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:355,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 342
        line_start: 338
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 359
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 359
    functionName: EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3, 1>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const EltPack<__nv_fp8_e4m3, 4>*>
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3,
      1>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:378,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:384,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e4m3, 16>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 392
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 392
    functionName: EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3, 16>, true,
      OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 16>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3,
      16>, true, OpSum<__nv_fp8_e4m3>>(const EltPack<__nv_fp8_e4m3, 16>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:411,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:417,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:422,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 4>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 425
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 425
    functionName: EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2, 4>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2,
      4>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:431,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:439,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:440,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:443,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:444,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:447,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 2>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 434
        line_start: 430
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 454
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 454
    functionName: EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2, 2>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    - reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2,
      2>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:460,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:468,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:469,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:472,1
    - Dst: reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:473,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:476,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 1>*
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands\")"
      pos:
        line_end: 463
        line_start: 459
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 480
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 480
    functionName: EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2, 1>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<size_t>
    - reinterpret_cast<const char*>
    - assert
    - EltPack::elts
    - load
    - reinterpret_cast<const EltPack<__nv_fp8_e5m2, 4>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2,
      1>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:498,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:504,1
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:509,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<__nv_fp8_e5m2, 16>*
    assertStmts:
    - condition: (false && "FP8 multimem with is not supported on this architecture.")
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 512
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 512
    functionName: EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2, 16>, true,
      OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 16>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - assert
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2,
      16>, true, OpSum<__nv_fp8_e5m2>>(const EltPack<__nv_fp8_e5m2, 16>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:522,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int32_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true, OpSum<int32_t>>(const
      EltPack<int32_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true,
      OpSum<int32_t>>(const EltPack<int32_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:533,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:534,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:540,1
    - Dst: reinterpret_cast<const EltPack<int32_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:541,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int32_t, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 545
    functionName: EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true, OpSum<int32_t>>(const
      EltPack<int32_t, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<int32_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true,
      OpSum<int32_t>>(const EltPack<int32_t, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:554,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint32_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 558
    functionName: EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>, true, OpSum<uint32_t>>(const
      EltPack<uint32_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>,
      true, OpSum<uint32_t>>(const EltPack<uint32_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:565,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:566,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:572,1
    - Dst: reinterpret_cast<const EltPack<uint32_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:573,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint32_t, 4>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 577
    functionName: EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>, true, OpSum<uint32_t>>(const
      EltPack<uint32_t, 4>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<uint32_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>,
      true, OpSum<uint32_t>>(const EltPack<uint32_t, 4>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:587,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int64_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 591
    functionName: EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true, OpSum<int64_t>>(const
      EltPack<int64_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true,
      OpSum<int64_t>>(const EltPack<int64_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:598,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:599,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:605,1
    - Dst: reinterpret_cast<const EltPack<int64_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:606,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<int64_t, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 610
    functionName: EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true, OpSum<int64_t>>(const
      EltPack<int64_t, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - reinterpret_cast<const EltPack<int64_t, 1>*>
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true,
      OpSum<int64_t>>(const EltPack<int64_t, 2>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:619,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint64_t, 1>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 623
    functionName: EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>, true, OpSum<uint64_t>>(const
      EltPack<uint64_t, 1>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack::elts
    - __cvta_generic_to_global
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>,
      true, OpSum<uint64_t>>(const EltPack<uint64_t, 1>* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:630,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:631,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:637,1
    - Dst: reinterpret_cast<const EltPack<uint64_t, 1>*>
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:638,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - EltPack<uint64_t, 2>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 642
    functionName: EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>, true, OpSum<uint64_t>>(const
      EltPack<uint64_t, 2>* addr)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - reinterpret_cast<const char*>
    - EltPack::elts
    - reinterpret_cast<const EltPack<uint64_t, 1>*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>,
      true, OpSum<uint64_t>>(const EltPack<uint64_t, 2>* addr)
  - 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: 669
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<0>(uintptr_t addr, const BytePack<0>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - uintptr_t
    - BytePack<1>
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#multimem-addresses.\")"
      pos:
        line_end: 677
        line_start: 673
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 683
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 683
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<1>(uintptr_t addr, const BytePack<1>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - uintptr_t
    - BytePack<2>
    assertStmts:
    - condition: "(false && \"Experimental NCCL device code detected; you may accept
        the risk \"\n                    \"of this not being available in the future.
        If you accept that risk, \"\n                    \"set NCCL_DEVICE_PERMIT_EXPERIMENTAL_CODE
        during compilation or \"\n                    \"refactor the code. More details
        \"\n                    \"https://docs.nvidia.com/cuda/parallel-thread-execution/#multimem-addresses.\")"
      pos:
        line_end: 691
        line_start: 687
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 697
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 697
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<2>(uintptr_t addr, const 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: 702
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 702
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<4>(uintptr_t addr, const 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: 707
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 707
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<8>(uintptr_t addr, const 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: 715
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 715
    functionName: nccl::utility::multimem_st_global
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimem_st_global<16>(uintptr_t addr, const BytePack<16>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:724,1
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:727,1
    - Dst: nccl::utility::multimem_st_global
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - addr
    - ' pack'
    argTypes:
    - void*
    - Pack
    assertStmts:
    - condition: (false && "multimemStore requires CUDA architecture >= 900 (sm_90
        or higher)")
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    constantsTouched: []
    func_position:
      end: 736
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 736
    functionName: nccl::utility::multimemStore
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 3
    functionsReached:
    - __cvta_generic_to_global
    - nccl::utility::multimem_st_global
    - assert
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE multimemStore(void* addr, const Pack& pack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::multimemStore
      Src: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - addr
    - ' val'
    argTypes:
    - Pack*
    - Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 748
    functionName: nccl::utility::store
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    functionUses: 4
    functionsReached:
    - nccl::utility::multimemStore
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE store(Pack* addr, const Pack& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - modulo
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: nccl::utility::getAlignment
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned getAlignment(void* ptr, unsigned modulo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - Int
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: nccl::utility::safeDiv
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE safeDiv(Int numerator, Int denominator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopCoalesced
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:50,1
    - Dst: auto::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:53,1
    - Dst: auto::size
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:53,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:54,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:54,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:55,1
    - Dst: __reduce_min_sync
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:57,1
    - Dst: ncclCoopGetLaneMask
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:57,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:63,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:63,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - coop
    - ptrLambda
    - nPtrs
    argTypes:
    - Coop
    - Lambda
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: nccl::utility::computeCommonAlignment
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::getAlignment
    - ncclCoopGetLaneMask
    - __reduce_min_sync
    - min
    - ptrLambda
    - auto::thread_rank
    - auto::size
    - ncclCoopCoalesced
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned computeCommonAlignment(Coop coop, Lambda
      ptrLambda, int nPtrs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeCommonAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:79,1
    - Dst: nccl::utility::computeCommonAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:80,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: nccl::utility::computeAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::computeCommonAlignment
    - min
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: "NCCL_DEVICE_INLINE unsigned computeAlignmentForPackSize(\n    Coop
      coop,\n    SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:111,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:117,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:117,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:120,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:120,1
    - Dst: ncclCoopCoalesced
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:123,1
    - Dst: auto::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:126,1
    - Dst: auto::size
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:126,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:127,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:127,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:128,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:128,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:129,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:129,1
    - Dst: __reduce_min_sync
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:134,1
    - Dst: ncclCoopGetLaneMask
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:134,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:140,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:140,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:141,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:141,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:142,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:142,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:154,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 8
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 160
    functionName: nccl::utility::tryLambdaAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - ncclCoopGetLaneMask
    - __reduce_min_sync
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - static_cast<uintptr_t>
    - nccl::utility::computeAlignmentForPackSize
    - srcLambda
    - ptrLambda
    - static_cast<intptr_t>
    - auto::thread_rank
    - auto::size
    - ncclCoopCoalesced
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryLambdaAlignmentForPackSize(\n    Coop coop,\n
      \   SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    IntCount
      count,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:179,1
    - Dst: tryLambdaAlignmentForPackSize<T, 16>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:182,1
    - Dst: tryLambdaAlignmentForPackSize<T, 4>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:185,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: nccl::utility::AlignmentResult<IntCount>::computeLambdaAlignmentOffsetWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - tryLambdaAlignmentForPackSize<T, 4>
    - tryLambdaAlignmentForPackSize<T, 16>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE AlignmentResult<IntCount> computeLambdaAlignmentOffsetWithFallback(\n
      \   Coop coop,\n    SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda,
      int nDst,\n    IntCount count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:206,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:207,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:208,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:213,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:214,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:215,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:215,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:220,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:220,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:230,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - srcPtr
    - dstPtr
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - void*
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 236
    functionName: nccl::utility::tryPointerPairAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - min
    - static_cast<uintptr_t>
    - static_cast<intptr_t>
    - nccl::utility::getAlignment
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryPointerPairAlignmentForPackSize(\n    void*
      srcPtr,\n    void* dstPtr,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:249,1
    - Dst: nccl::utility::tryPointerPairAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:252,1
    - Dst: nccl::utility::tryPointerPairAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:255,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - srcPtr
    - dstPtr
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - void*
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: nccl::utility::computePointerPairAlignmentWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - nccl::utility::tryPointerPairAlignmentForPackSize
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE computePointerPairAlignmentWithFallback(\n    void*
      srcPtr,\n    void* dstPtr,\n    IntCount count,\n    IntCount& alignOffset,\n
      \   int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:276,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:277,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:277,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:278,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:281,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - basePtr
    - displ
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 287
    functionName: nccl::utility::tryStridedAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::getAlignment
    - min
    - reinterpret_cast<void*>
    - static_cast<unsigned int>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryStridedAlignmentForPackSize(\n    void* basePtr,\n
      \   size_t displ,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:301,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:302,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:302,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:303,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:305,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:306,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:306,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:307,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:310,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:321,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:322,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:323,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:323,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:327,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:327,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:337,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - srcBasePtr
    - srcDispl
    - dstBasePtr
    - dstDispl
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 343
    functionName: nccl::utility::tryComplexStridedAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - min
    - static_cast<uintptr_t>
    - static_cast<intptr_t>
    - reinterpret_cast<void*>
    - nccl::utility::getAlignment
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryComplexStridedAlignmentForPackSize(\n    void*
      srcBasePtr,\n    size_t srcDispl,\n    void* dstBasePtr,\n    size_t dstDispl,\n
      \   IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:355,1
    - Dst: nccl::utility::tryStridedAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:358,1
    - Dst: nccl::utility::tryStridedAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:361,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - basePtr
    - displ
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 368
    functionName: nccl::utility::computeStridedAlignmentWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - nccl::utility::tryStridedAlignmentForPackSize
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE computeStridedAlignmentWithFallback(\n    void*
      basePtr,\n    size_t displ,\n    IntCount count,\n    IntCount& alignOffset,\n
      \   int& maxPackBytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: static_cast<Y>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: nccl::utility::EltPack<Y, n>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:415,1
    - Dst: nccl::utility::EltPack<Y, n>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<X, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 419
    functionName: nccl::utility::EltPack<Y, n>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 1
    functionsReached:
    - PackAccess::pack::elts
    - nccl::utility::EltPack<Y, n>::castPack
    - static_cast<Y>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<Y, n> castPack(EltPack<X, n> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: nccl::utility::EltPack<Y, 0>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<Y, 0> castPack(EltPack<X, 0> /* x */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    - Dst: __half2float
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: nccl::utility::EltPack<float, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __half2float
    - EltPack<half, 1>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> castPack(EltPack<half, 1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __half22float2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 455
    functionName: nccl::utility::EltPack<float, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __half22float2
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> castPack(EltPack<half, 2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    - Dst: __float2half_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    - Dst: EltPack<float, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<float, 1>::elts
    - EltPack::elts
    - __float2half_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<float, 1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __floats2half2_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    - Dst: EltPack<float, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    - Dst: EltPack<float, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 474
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<float, 2>::elts
    - __floats2half2_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<float, 2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    - Dst: __bfloat162float
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    - Dst: EltPack<__nv_bfloat16, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_bfloat16, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: nccl::utility::EltPack<float, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<__nv_bfloat16, 1>::elts
    - __bfloat162float
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> castPack(EltPack<__nv_bfloat16,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __bfloat1622float2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_bfloat16, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 501
    functionName: nccl::utility::EltPack<float, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __bfloat1622float2
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> castPack(EltPack<__nv_bfloat16,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    - Dst: __float2bfloat16_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    - Dst: EltPack<float, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: nccl::utility::EltPack<__nv_bfloat16, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __float2bfloat16_rn
    - EltPack<float, 1>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 1> castPack(EltPack<float,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __float22bfloat162_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 526
    functionName: nccl::utility::EltPack<__nv_bfloat16, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __float22bfloat162_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> castPack(EltPack<float,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:547,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e4m3, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 550
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<__nv_fp8_e4m3,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8x2_to_halfraw2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:571,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:578,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e4m3, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 582
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 1
    functionsReached:
    - __nv_cvt_fp8x2_to_halfraw2
    - nccl::utility::EltPack<half, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<__nv_fp8_e4m3,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:600,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e5m2, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 603
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<__nv_fp8_e5m2,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8x2_to_halfraw2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:624,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:631,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e5m2, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 635
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 2
    functionsReached:
    - __nv_cvt_fp8x2_to_halfraw2
    - nccl::utility::EltPack<half, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<__nv_fp8_e5m2,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:651,1
    - Dst: __nv_cvt_halfraw_to_fp8
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 654
    functionName: nccl::utility::EltPack<__nv_fp8_e4m3, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<half, 1>::elts
    - __nv_cvt_halfraw_to_fp8
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 1> castPack(EltPack<half,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_halfraw2_to_fp8x2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:676,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:682,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 686
    functionName: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 1
    functionsReached:
    - __nv_cvt_halfraw2_to_fp8x2
    - nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 2> castPack(EltPack<half,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:702,1
    - Dst: __nv_cvt_halfraw_to_fp8
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 705
    functionName: nccl::utility::EltPack<__nv_fp8_e5m2, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<half, 1>::elts
    - __nv_cvt_halfraw_to_fp8
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 1> castPack(EltPack<half,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_halfraw2_to_fp8x2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:727,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:733,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 737
    functionName: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 1
    functionsReached:
    - __nv_cvt_halfraw2_to_fp8x2
    - nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 2> castPack(EltPack<half,
      2> x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: nccl::utility::EltPack<T, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:760,1
    - Dst: nccl::utility::EltPack<T, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' red'
    - a
    - b
    argTypes:
    - Red<T>
    - EltPack<T, n>
    - EltPack<T, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 764
    functionName: nccl::utility::EltPack<T, n>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 1
    functionsReached:
    - PackAccess::pack::elts
    - red
    - nccl::utility::EltPack<T, n>::reducePack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<T, n> reducePack(Red<T> const& red, EltPack<T,
      n> a, EltPack<T, n> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 771
    functionName: nccl::utility::EltPack<T, 0>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<T, 0> reducePack(Red<T> const& /* red */,
      EltPack<T, 0> /* a */, EltPack<T, 0> /* b */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vadd4
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<int8_t, 4>
    - EltPack<int8_t, 4>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 789
    functionName: nccl::utility::EltPack<int8_t, 4>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __vadd4
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int8_t, 4> reducePack(OpSum<int8_t> const&
      /* red */, EltPack<int8_t, 4> a, EltPack<int8_t, 4> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::EltPack<uint8_t, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' red'
    - a
    - b
    argTypes:
    - OpSum<uint8_t>
    - EltPack<uint8_t, n>
    - EltPack<uint8_t, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 807
    functionName: nccl::utility::EltPack<uint8_t, n>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 1
    functionsReached:
    - nccl::utility::EltPack<uint8_t, n>::reducePack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint8_t, n> reducePack(OpSum<uint8_t> const&
      red, EltPack<uint8_t, n> a, EltPack<uint8_t, n> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hadd2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:823,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<half, 2>
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 832
    functionName: nccl::utility::EltPack<half, 2>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - red
    - __hadd2
    - EltPack<half, 2>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> reducePack(OpSum<half> const& /*
      red */, EltPack<half, 2> a, EltPack<half, 2> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hadd2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:849,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<__nv_bfloat16, 2>
    - EltPack<__nv_bfloat16, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 858
    functionName: nccl::utility::EltPack<__nv_bfloat16, 2>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - red
    - EltPack<__nv_bfloat16, 2>::elts
    - __hadd2
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> reducePack(OpSum<__nv_bfloat16>
      const& /* red */, EltPack<__nv_bfloat16, 2> a, EltPack<__nv_bfloat16, 2> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - modulo
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: nccl::utility::getAlignment
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 4
    functionsReached:
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned getAlignment(void* ptr, unsigned modulo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - Int
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: nccl::utility::safeDiv
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE safeDiv(Int numerator, Int denominator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopCoalesced
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:50,1
    - Dst: auto::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:53,1
    - Dst: auto::size
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:53,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:54,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:54,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:55,1
    - Dst: __reduce_min_sync
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:57,1
    - Dst: ncclCoopGetLaneMask
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:57,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:63,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:63,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - coop
    - ptrLambda
    - nPtrs
    argTypes:
    - Coop
    - Lambda
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: nccl::utility::computeCommonAlignment
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 1
    functionsReached:
    - nccl::utility::getAlignment
    - ncclCoopGetLaneMask
    - __reduce_min_sync
    - min
    - ptrLambda
    - auto::thread_rank
    - auto::size
    - ncclCoopCoalesced
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned computeCommonAlignment(Coop coop, Lambda
      ptrLambda, int nPtrs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeCommonAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:79,1
    - Dst: nccl::utility::computeCommonAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:80,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: nccl::utility::computeAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 1
    functionsReached:
    - nccl::utility::computeCommonAlignment
    - min
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: "NCCL_DEVICE_INLINE unsigned computeAlignmentForPackSize(\n    Coop
      coop,\n    SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:111,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:117,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:117,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:120,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:120,1
    - Dst: ncclCoopCoalesced
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:123,1
    - Dst: auto::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:126,1
    - Dst: auto::size
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:126,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:127,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:127,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:128,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:128,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:129,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:129,1
    - Dst: __reduce_min_sync
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:134,1
    - Dst: ncclCoopGetLaneMask
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:134,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:140,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:140,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:141,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:141,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:142,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:142,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:154,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 8
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 160
    functionName: nccl::utility::tryLambdaAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - ncclCoopGetLaneMask
    - __reduce_min_sync
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - static_cast<uintptr_t>
    - nccl::utility::computeAlignmentForPackSize
    - srcLambda
    - ptrLambda
    - static_cast<intptr_t>
    - auto::thread_rank
    - auto::size
    - ncclCoopCoalesced
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryLambdaAlignmentForPackSize(\n    Coop coop,\n
      \   SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    IntCount
      count,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:179,1
    - Dst: tryLambdaAlignmentForPackSize<T, 16>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:182,1
    - Dst: tryLambdaAlignmentForPackSize<T, 4>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:185,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: nccl::utility::AlignmentResult<IntCount>::computeLambdaAlignmentOffsetWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - tryLambdaAlignmentForPackSize<T, 4>
    - tryLambdaAlignmentForPackSize<T, 16>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE AlignmentResult<IntCount> computeLambdaAlignmentOffsetWithFallback(\n
      \   Coop coop,\n    SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda,
      int nDst,\n    IntCount count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:206,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:207,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:208,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:213,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:214,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:215,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:215,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:220,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:220,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:230,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - srcPtr
    - dstPtr
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - void*
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 236
    functionName: nccl::utility::tryPointerPairAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 1
    functionsReached:
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - min
    - static_cast<uintptr_t>
    - static_cast<intptr_t>
    - nccl::utility::getAlignment
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryPointerPairAlignmentForPackSize(\n    void*
      srcPtr,\n    void* dstPtr,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:249,1
    - Dst: nccl::utility::tryPointerPairAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:252,1
    - Dst: nccl::utility::tryPointerPairAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:255,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - srcPtr
    - dstPtr
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - void*
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: nccl::utility::computePointerPairAlignmentWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - nccl::utility::tryPointerPairAlignmentForPackSize
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE computePointerPairAlignmentWithFallback(\n    void*
      srcPtr,\n    void* dstPtr,\n    IntCount count,\n    IntCount& alignOffset,\n
      \   int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:276,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:277,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:277,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:278,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:281,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - basePtr
    - displ
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 287
    functionName: nccl::utility::tryStridedAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 1
    functionsReached:
    - nccl::utility::getAlignment
    - min
    - reinterpret_cast<void*>
    - static_cast<unsigned int>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryStridedAlignmentForPackSize(\n    void* basePtr,\n
      \   size_t displ,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:301,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:302,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:302,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:303,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:305,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:306,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:306,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:307,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:310,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:321,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:322,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:323,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:323,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:327,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:327,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:337,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - srcBasePtr
    - srcDispl
    - dstBasePtr
    - dstDispl
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 343
    functionName: nccl::utility::tryComplexStridedAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - min
    - static_cast<uintptr_t>
    - static_cast<intptr_t>
    - reinterpret_cast<void*>
    - nccl::utility::getAlignment
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryComplexStridedAlignmentForPackSize(\n    void*
      srcBasePtr,\n    size_t srcDispl,\n    void* dstBasePtr,\n    size_t dstDispl,\n
      \   IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:355,1
    - Dst: nccl::utility::tryStridedAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:358,1
    - Dst: nccl::utility::tryStridedAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:361,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - basePtr
    - displ
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 368
    functionName: nccl::utility::computeStridedAlignmentWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - nccl::utility::tryStridedAlignmentForPackSize
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE computeStridedAlignmentWithFallback(\n    void*
      basePtr,\n    size_t displ,\n    IntCount count,\n    IntCount& alignOffset,\n
      \   int& maxPackBytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: static_cast<Y>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: nccl::utility::EltPack<Y, n>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:415,1
    - Dst: nccl::utility::EltPack<Y, n>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<X, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 419
    functionName: nccl::utility::EltPack<Y, n>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 2
    functionsReached:
    - PackAccess::pack::elts
    - nccl::utility::EltPack<Y, n>::castPack
    - static_cast<Y>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<Y, n> castPack(EltPack<X, n> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: nccl::utility::EltPack<Y, 0>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<Y, 0> castPack(EltPack<X, 0> /* x */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    - Dst: __half2float
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: nccl::utility::EltPack<float, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __half2float
    - EltPack<half, 1>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> castPack(EltPack<half, 1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __half22float2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 455
    functionName: nccl::utility::EltPack<float, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __half22float2
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> castPack(EltPack<half, 2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    - Dst: __float2half_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    - Dst: EltPack<float, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<float, 1>::elts
    - EltPack::elts
    - __float2half_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<float, 1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __floats2half2_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    - Dst: EltPack<float, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    - Dst: EltPack<float, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 474
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 2
    functionsReached:
    - EltPack<float, 2>::elts
    - __floats2half2_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<float, 2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    - Dst: __bfloat162float
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    - Dst: EltPack<__nv_bfloat16, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_bfloat16, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: nccl::utility::EltPack<float, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<__nv_bfloat16, 1>::elts
    - __bfloat162float
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> castPack(EltPack<__nv_bfloat16,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __bfloat1622float2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_bfloat16, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 501
    functionName: nccl::utility::EltPack<float, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __bfloat1622float2
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> castPack(EltPack<__nv_bfloat16,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    - Dst: __float2bfloat16_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    - Dst: EltPack<float, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: nccl::utility::EltPack<__nv_bfloat16, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __float2bfloat16_rn
    - EltPack<float, 1>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 1> castPack(EltPack<float,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __float22bfloat162_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 526
    functionName: nccl::utility::EltPack<__nv_bfloat16, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __float22bfloat162_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> castPack(EltPack<float,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:547,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e4m3, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 550
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<__nv_fp8_e4m3,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8x2_to_halfraw2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:571,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:578,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e4m3, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 582
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 3
    functionsReached:
    - __nv_cvt_fp8x2_to_halfraw2
    - nccl::utility::EltPack<half, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<__nv_fp8_e4m3,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:600,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e5m2, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 603
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<__nv_fp8_e5m2,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8x2_to_halfraw2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:624,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:631,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e5m2, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 635
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 4
    functionsReached:
    - __nv_cvt_fp8x2_to_halfraw2
    - nccl::utility::EltPack<half, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<__nv_fp8_e5m2,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:651,1
    - Dst: __nv_cvt_halfraw_to_fp8
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 654
    functionName: nccl::utility::EltPack<__nv_fp8_e4m3, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<half, 1>::elts
    - __nv_cvt_halfraw_to_fp8
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 1> castPack(EltPack<half,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_halfraw2_to_fp8x2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:676,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:682,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 686
    functionName: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 2
    functionsReached:
    - __nv_cvt_halfraw2_to_fp8x2
    - nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 2> castPack(EltPack<half,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:702,1
    - Dst: __nv_cvt_halfraw_to_fp8
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 705
    functionName: nccl::utility::EltPack<__nv_fp8_e5m2, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<half, 1>::elts
    - __nv_cvt_halfraw_to_fp8
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 1> castPack(EltPack<half,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_halfraw2_to_fp8x2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:727,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:733,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 737
    functionName: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 2
    functionsReached:
    - __nv_cvt_halfraw2_to_fp8x2
    - nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 2> castPack(EltPack<half,
      2> x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: nccl::utility::EltPack<T, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:760,1
    - Dst: nccl::utility::EltPack<T, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' red'
    - a
    - b
    argTypes:
    - Red<T>
    - EltPack<T, n>
    - EltPack<T, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 764
    functionName: nccl::utility::EltPack<T, n>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 2
    functionsReached:
    - PackAccess::pack::elts
    - red
    - nccl::utility::EltPack<T, n>::reducePack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<T, n> reducePack(Red<T> const& red, EltPack<T,
      n> a, EltPack<T, n> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 771
    functionName: nccl::utility::EltPack<T, 0>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<T, 0> reducePack(Red<T> const& /* red */,
      EltPack<T, 0> /* a */, EltPack<T, 0> /* b */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vadd4
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<int8_t, 4>
    - EltPack<int8_t, 4>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 789
    functionName: nccl::utility::EltPack<int8_t, 4>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __vadd4
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int8_t, 4> reducePack(OpSum<int8_t> const&
      /* red */, EltPack<int8_t, 4> a, EltPack<int8_t, 4> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::EltPack<uint8_t, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' red'
    - a
    - b
    argTypes:
    - OpSum<uint8_t>
    - EltPack<uint8_t, n>
    - EltPack<uint8_t, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 807
    functionName: nccl::utility::EltPack<uint8_t, n>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 2
    functionsReached:
    - nccl::utility::EltPack<uint8_t, n>::reducePack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint8_t, n> reducePack(OpSum<uint8_t> const&
      red, EltPack<uint8_t, n> a, EltPack<uint8_t, n> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hadd2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:823,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<half, 2>
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 832
    functionName: nccl::utility::EltPack<half, 2>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - red
    - __hadd2
    - EltPack<half, 2>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> reducePack(OpSum<half> const& /*
      red */, EltPack<half, 2> a, EltPack<half, 2> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hadd2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:849,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<__nv_bfloat16, 2>
    - EltPack<__nv_bfloat16, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 858
    functionName: nccl::utility::EltPack<__nv_bfloat16, 2>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - red
    - EltPack<__nv_bfloat16, 2>::elts
    - __hadd2
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> reducePack(OpSum<__nv_bfloat16>
      const& /* red */, EltPack<__nv_bfloat16, 2> a, EltPack<__nv_bfloat16, 2> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - modulo
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: nccl::utility::getAlignment
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 8
    functionsReached:
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned getAlignment(void* ptr, unsigned modulo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - Int
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: nccl::utility::safeDiv
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE safeDiv(Int numerator, Int denominator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopCoalesced
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:50,1
    - Dst: auto::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:53,1
    - Dst: auto::size
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:53,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:54,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:54,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:55,1
    - Dst: __reduce_min_sync
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:57,1
    - Dst: ncclCoopGetLaneMask
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:57,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:63,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:63,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - coop
    - ptrLambda
    - nPtrs
    argTypes:
    - Coop
    - Lambda
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: nccl::utility::computeCommonAlignment
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 2
    functionsReached:
    - nccl::utility::getAlignment
    - ncclCoopGetLaneMask
    - __reduce_min_sync
    - min
    - ptrLambda
    - auto::thread_rank
    - auto::size
    - ncclCoopCoalesced
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned computeCommonAlignment(Coop coop, Lambda
      ptrLambda, int nPtrs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeCommonAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:79,1
    - Dst: nccl::utility::computeCommonAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:80,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: nccl::utility::computeAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 2
    functionsReached:
    - nccl::utility::computeCommonAlignment
    - min
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: "NCCL_DEVICE_INLINE unsigned computeAlignmentForPackSize(\n    Coop
      coop,\n    SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:111,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:117,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:117,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:120,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:120,1
    - Dst: ncclCoopCoalesced
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:123,1
    - Dst: auto::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:126,1
    - Dst: auto::size
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:126,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:127,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:127,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:128,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:128,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:129,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:129,1
    - Dst: __reduce_min_sync
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:134,1
    - Dst: ncclCoopGetLaneMask
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:134,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:140,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:140,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:141,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:141,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:142,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:142,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:154,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 8
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 160
    functionName: nccl::utility::tryLambdaAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - ncclCoopGetLaneMask
    - __reduce_min_sync
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - static_cast<uintptr_t>
    - nccl::utility::computeAlignmentForPackSize
    - srcLambda
    - ptrLambda
    - static_cast<intptr_t>
    - auto::thread_rank
    - auto::size
    - ncclCoopCoalesced
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryLambdaAlignmentForPackSize(\n    Coop coop,\n
      \   SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    IntCount
      count,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:179,1
    - Dst: tryLambdaAlignmentForPackSize<T, 16>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:182,1
    - Dst: tryLambdaAlignmentForPackSize<T, 4>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:185,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: nccl::utility::AlignmentResult<IntCount>::computeLambdaAlignmentOffsetWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - tryLambdaAlignmentForPackSize<T, 4>
    - tryLambdaAlignmentForPackSize<T, 16>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE AlignmentResult<IntCount> computeLambdaAlignmentOffsetWithFallback(\n
      \   Coop coop,\n    SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda,
      int nDst,\n    IntCount count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:206,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:207,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:208,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:213,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:214,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:215,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:215,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:220,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:220,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:230,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - srcPtr
    - dstPtr
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - void*
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 236
    functionName: nccl::utility::tryPointerPairAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 2
    functionsReached:
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - min
    - static_cast<uintptr_t>
    - static_cast<intptr_t>
    - nccl::utility::getAlignment
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryPointerPairAlignmentForPackSize(\n    void*
      srcPtr,\n    void* dstPtr,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:249,1
    - Dst: nccl::utility::tryPointerPairAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:252,1
    - Dst: nccl::utility::tryPointerPairAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:255,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - srcPtr
    - dstPtr
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - void*
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: nccl::utility::computePointerPairAlignmentWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - nccl::utility::tryPointerPairAlignmentForPackSize
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE computePointerPairAlignmentWithFallback(\n    void*
      srcPtr,\n    void* dstPtr,\n    IntCount count,\n    IntCount& alignOffset,\n
      \   int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:276,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:277,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:277,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:278,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:281,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - basePtr
    - displ
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 287
    functionName: nccl::utility::tryStridedAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 2
    functionsReached:
    - nccl::utility::getAlignment
    - min
    - reinterpret_cast<void*>
    - static_cast<unsigned int>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryStridedAlignmentForPackSize(\n    void* basePtr,\n
      \   size_t displ,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:301,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:302,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:302,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:303,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:305,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:306,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:306,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:307,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:310,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:321,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:322,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:323,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:323,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:327,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:327,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:337,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - srcBasePtr
    - srcDispl
    - dstBasePtr
    - dstDispl
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 343
    functionName: nccl::utility::tryComplexStridedAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - min
    - static_cast<uintptr_t>
    - static_cast<intptr_t>
    - reinterpret_cast<void*>
    - nccl::utility::getAlignment
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryComplexStridedAlignmentForPackSize(\n    void*
      srcBasePtr,\n    size_t srcDispl,\n    void* dstBasePtr,\n    size_t dstDispl,\n
      \   IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:355,1
    - Dst: nccl::utility::tryStridedAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:358,1
    - Dst: nccl::utility::tryStridedAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:361,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - basePtr
    - displ
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 368
    functionName: nccl::utility::computeStridedAlignmentWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - nccl::utility::tryStridedAlignmentForPackSize
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE computeStridedAlignmentWithFallback(\n    void*
      basePtr,\n    size_t displ,\n    IntCount count,\n    IntCount& alignOffset,\n
      \   int& maxPackBytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: static_cast<Y>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: nccl::utility::EltPack<Y, n>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:415,1
    - Dst: nccl::utility::EltPack<Y, n>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<X, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 419
    functionName: nccl::utility::EltPack<Y, n>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 3
    functionsReached:
    - PackAccess::pack::elts
    - nccl::utility::EltPack<Y, n>::castPack
    - static_cast<Y>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<Y, n> castPack(EltPack<X, n> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: nccl::utility::EltPack<Y, 0>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<Y, 0> castPack(EltPack<X, 0> /* x */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    - Dst: __half2float
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: nccl::utility::EltPack<float, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __half2float
    - EltPack<half, 1>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> castPack(EltPack<half, 1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __half22float2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 455
    functionName: nccl::utility::EltPack<float, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __half22float2
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> castPack(EltPack<half, 2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    - Dst: __float2half_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    - Dst: EltPack<float, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<float, 1>::elts
    - EltPack::elts
    - __float2half_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<float, 1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __floats2half2_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    - Dst: EltPack<float, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    - Dst: EltPack<float, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 474
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 4
    functionsReached:
    - EltPack<float, 2>::elts
    - __floats2half2_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<float, 2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    - Dst: __bfloat162float
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    - Dst: EltPack<__nv_bfloat16, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_bfloat16, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: nccl::utility::EltPack<float, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<__nv_bfloat16, 1>::elts
    - __bfloat162float
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> castPack(EltPack<__nv_bfloat16,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __bfloat1622float2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_bfloat16, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 501
    functionName: nccl::utility::EltPack<float, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __bfloat1622float2
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> castPack(EltPack<__nv_bfloat16,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    - Dst: __float2bfloat16_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    - Dst: EltPack<float, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: nccl::utility::EltPack<__nv_bfloat16, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __float2bfloat16_rn
    - EltPack<float, 1>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 1> castPack(EltPack<float,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __float22bfloat162_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 526
    functionName: nccl::utility::EltPack<__nv_bfloat16, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __float22bfloat162_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> castPack(EltPack<float,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:547,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e4m3, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 550
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<__nv_fp8_e4m3,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8x2_to_halfraw2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:571,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:578,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e4m3, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 582
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 5
    functionsReached:
    - __nv_cvt_fp8x2_to_halfraw2
    - nccl::utility::EltPack<half, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<__nv_fp8_e4m3,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:600,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e5m2, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 603
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<__nv_fp8_e5m2,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8x2_to_halfraw2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:624,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:631,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e5m2, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 635
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 6
    functionsReached:
    - __nv_cvt_fp8x2_to_halfraw2
    - nccl::utility::EltPack<half, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<__nv_fp8_e5m2,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:651,1
    - Dst: __nv_cvt_halfraw_to_fp8
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 654
    functionName: nccl::utility::EltPack<__nv_fp8_e4m3, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<half, 1>::elts
    - __nv_cvt_halfraw_to_fp8
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 1> castPack(EltPack<half,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_halfraw2_to_fp8x2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:676,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:682,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 686
    functionName: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 3
    functionsReached:
    - __nv_cvt_halfraw2_to_fp8x2
    - nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 2> castPack(EltPack<half,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:702,1
    - Dst: __nv_cvt_halfraw_to_fp8
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 705
    functionName: nccl::utility::EltPack<__nv_fp8_e5m2, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<half, 1>::elts
    - __nv_cvt_halfraw_to_fp8
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 1> castPack(EltPack<half,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_halfraw2_to_fp8x2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:727,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:733,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 737
    functionName: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 3
    functionsReached:
    - __nv_cvt_halfraw2_to_fp8x2
    - nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 2> castPack(EltPack<half,
      2> x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: nccl::utility::EltPack<T, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:760,1
    - Dst: nccl::utility::EltPack<T, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' red'
    - a
    - b
    argTypes:
    - Red<T>
    - EltPack<T, n>
    - EltPack<T, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 764
    functionName: nccl::utility::EltPack<T, n>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 3
    functionsReached:
    - PackAccess::pack::elts
    - red
    - nccl::utility::EltPack<T, n>::reducePack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<T, n> reducePack(Red<T> const& red, EltPack<T,
      n> a, EltPack<T, n> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 771
    functionName: nccl::utility::EltPack<T, 0>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<T, 0> reducePack(Red<T> const& /* red */,
      EltPack<T, 0> /* a */, EltPack<T, 0> /* b */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vadd4
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<int8_t, 4>
    - EltPack<int8_t, 4>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 789
    functionName: nccl::utility::EltPack<int8_t, 4>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __vadd4
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int8_t, 4> reducePack(OpSum<int8_t> const&
      /* red */, EltPack<int8_t, 4> a, EltPack<int8_t, 4> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::EltPack<uint8_t, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' red'
    - a
    - b
    argTypes:
    - OpSum<uint8_t>
    - EltPack<uint8_t, n>
    - EltPack<uint8_t, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 807
    functionName: nccl::utility::EltPack<uint8_t, n>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 3
    functionsReached:
    - nccl::utility::EltPack<uint8_t, n>::reducePack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint8_t, n> reducePack(OpSum<uint8_t> const&
      red, EltPack<uint8_t, n> a, EltPack<uint8_t, n> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hadd2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:823,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<half, 2>
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 832
    functionName: nccl::utility::EltPack<half, 2>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - red
    - __hadd2
    - EltPack<half, 2>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> reducePack(OpSum<half> const& /*
      red */, EltPack<half, 2> a, EltPack<half, 2> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hadd2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:849,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<__nv_bfloat16, 2>
    - EltPack<__nv_bfloat16, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 858
    functionName: nccl::utility::EltPack<__nv_bfloat16, 2>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - red
    - EltPack<__nv_bfloat16, 2>::elts
    - __hadd2
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> reducePack(OpSum<__nv_bfloat16>
      const& /* red */, EltPack<__nv_bfloat16, 2> a, EltPack<__nv_bfloat16, 2> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - modulo
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: nccl::utility::getAlignment
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 12
    functionsReached:
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned getAlignment(void* ptr, unsigned modulo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - Int
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: nccl::utility::safeDiv
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE safeDiv(Int numerator, Int denominator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopCoalesced
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:50,1
    - Dst: auto::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:53,1
    - Dst: auto::size
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:53,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:54,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:54,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:55,1
    - Dst: __reduce_min_sync
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:57,1
    - Dst: ncclCoopGetLaneMask
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:57,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:63,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:63,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - coop
    - ptrLambda
    - nPtrs
    argTypes:
    - Coop
    - Lambda
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: nccl::utility::computeCommonAlignment
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 3
    functionsReached:
    - nccl::utility::getAlignment
    - ncclCoopGetLaneMask
    - __reduce_min_sync
    - min
    - ptrLambda
    - auto::thread_rank
    - auto::size
    - ncclCoopCoalesced
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: NCCL_DEVICE_INLINE unsigned computeCommonAlignment(Coop coop, Lambda
      ptrLambda, int nPtrs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeCommonAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:79,1
    - Dst: nccl::utility::computeCommonAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:80,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: nccl::utility::computeAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 3
    functionsReached:
    - nccl::utility::computeCommonAlignment
    - min
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE unsigned
    signature: "NCCL_DEVICE_INLINE unsigned computeAlignmentForPackSize(\n    Coop
      coop,\n    SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::computeAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:111,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:117,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:117,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:120,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:120,1
    - Dst: ncclCoopCoalesced
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:123,1
    - Dst: auto::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:126,1
    - Dst: auto::size
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:126,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:127,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:127,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:128,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:128,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:129,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:129,1
    - Dst: __reduce_min_sync
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:134,1
    - Dst: ncclCoopGetLaneMask
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:134,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:140,1
    - Dst: ptrLambda
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:140,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:141,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:141,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:142,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:142,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:154,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 8
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 160
    functionName: nccl::utility::tryLambdaAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - ncclCoopGetLaneMask
    - __reduce_min_sync
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - static_cast<uintptr_t>
    - nccl::utility::computeAlignmentForPackSize
    - srcLambda
    - ptrLambda
    - static_cast<intptr_t>
    - auto::thread_rank
    - auto::size
    - ncclCoopCoalesced
    - dstLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryLambdaAlignmentForPackSize(\n    Coop coop,\n
      \   SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    IntCount
      count,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:179,1
    - Dst: tryLambdaAlignmentForPackSize<T, 16>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:182,1
    - Dst: tryLambdaAlignmentForPackSize<T, 4>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:185,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: nccl::utility::AlignmentResult<IntCount>::computeLambdaAlignmentOffsetWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - tryLambdaAlignmentForPackSize<T, 4>
    - tryLambdaAlignmentForPackSize<T, 16>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE AlignmentResult<IntCount> computeLambdaAlignmentOffsetWithFallback(\n
      \   Coop coop,\n    SrcLambda srcLambda, int nSrc,\n    DstLambda dstLambda,
      int nDst,\n    IntCount count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:206,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:207,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:208,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:213,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:214,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:215,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:215,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:220,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:220,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:230,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - srcPtr
    - dstPtr
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - void*
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 236
    functionName: nccl::utility::tryPointerPairAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 3
    functionsReached:
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - min
    - static_cast<uintptr_t>
    - static_cast<intptr_t>
    - nccl::utility::getAlignment
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryPointerPairAlignmentForPackSize(\n    void*
      srcPtr,\n    void* dstPtr,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:249,1
    - Dst: nccl::utility::tryPointerPairAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:252,1
    - Dst: nccl::utility::tryPointerPairAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:255,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - srcPtr
    - dstPtr
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - void*
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: nccl::utility::computePointerPairAlignmentWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - nccl::utility::tryPointerPairAlignmentForPackSize
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE computePointerPairAlignmentWithFallback(\n    void*
      srcPtr,\n    void* dstPtr,\n    IntCount count,\n    IntCount& alignOffset,\n
      \   int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:276,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:277,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:277,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:278,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:281,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - basePtr
    - displ
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 287
    functionName: nccl::utility::tryStridedAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 3
    functionsReached:
    - nccl::utility::getAlignment
    - min
    - reinterpret_cast<void*>
    - static_cast<unsigned int>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryStridedAlignmentForPackSize(\n    void* basePtr,\n
      \   size_t displ,\n    IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:301,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:302,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:302,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:303,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:305,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:306,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:306,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:307,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:310,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:321,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:322,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:323,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:323,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:327,1
    - Dst: static_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:327,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:337,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - srcBasePtr
    - srcDispl
    - dstBasePtr
    - dstDispl
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 343
    functionName: nccl::utility::tryComplexStridedAlignmentForPackSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - reinterpret_cast<uintptr_t>
    - min
    - static_cast<uintptr_t>
    - static_cast<intptr_t>
    - reinterpret_cast<void*>
    - nccl::utility::getAlignment
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE tryComplexStridedAlignmentForPackSize(\n    void*
      srcBasePtr,\n    size_t srcDispl,\n    void* dstBasePtr,\n    size_t dstDispl,\n
      \   IntCount& alignOffset,\n    int& maxPackBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:355,1
    - Dst: nccl::utility::tryStridedAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:358,1
    - Dst: nccl::utility::tryStridedAlignmentForPackSize
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:361,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - basePtr
    - displ
    - count
    - ' alignOffset'
    - ' maxPackBytes'
    argTypes:
    - void*
    - size_t
    - IntCount
    - IntCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 368
    functionName: nccl::utility::computeStridedAlignmentWithFallback
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - nccl::utility::tryStridedAlignmentForPackSize
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE computeStridedAlignmentWithFallback(\n    void*
      basePtr,\n    size_t displ,\n    IntCount count,\n    IntCount& alignOffset,\n
      \   int& maxPackBytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: static_cast<Y>
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:413,1
    - Dst: nccl::utility::EltPack<Y, n>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:415,1
    - Dst: nccl::utility::EltPack<Y, n>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<X, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 419
    functionName: nccl::utility::EltPack<Y, n>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 4
    functionsReached:
    - PackAccess::pack::elts
    - nccl::utility::EltPack<Y, n>::castPack
    - static_cast<Y>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<Y, n> castPack(EltPack<X, n> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: nccl::utility::EltPack<Y, 0>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<Y, 0> castPack(EltPack<X, 0> /* x */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    - Dst: __half2float
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: nccl::utility::EltPack<float, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __half2float
    - EltPack<half, 1>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> castPack(EltPack<half, 1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __half22float2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 455
    functionName: nccl::utility::EltPack<float, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __half22float2
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> castPack(EltPack<half, 2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    - Dst: __float2half_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    - Dst: EltPack<float, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<float, 1>::elts
    - EltPack::elts
    - __float2half_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<float, 1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __floats2half2_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    - Dst: EltPack<float, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    - Dst: EltPack<float, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 474
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 6
    functionsReached:
    - EltPack<float, 2>::elts
    - __floats2half2_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<float, 2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    - Dst: __bfloat162float
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    - Dst: EltPack<__nv_bfloat16, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_bfloat16, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: nccl::utility::EltPack<float, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<__nv_bfloat16, 1>::elts
    - __bfloat162float
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 1> castPack(EltPack<__nv_bfloat16,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __bfloat1622float2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_bfloat16, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 501
    functionName: nccl::utility::EltPack<float, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __bfloat1622float2
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<float, 2> castPack(EltPack<__nv_bfloat16,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    - Dst: __float2bfloat16_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    - Dst: EltPack<float, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: nccl::utility::EltPack<__nv_bfloat16, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __float2bfloat16_rn
    - EltPack<float, 1>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 1> castPack(EltPack<float,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __float22bfloat162_rn
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<float, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 526
    functionName: nccl::utility::EltPack<__nv_bfloat16, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __float22bfloat162_rn
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> castPack(EltPack<float,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:547,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e4m3, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 550
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<__nv_fp8_e4m3,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8x2_to_halfraw2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:571,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:578,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e4m3, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 582
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 7
    functionsReached:
    - __nv_cvt_fp8x2_to_halfraw2
    - nccl::utility::EltPack<half, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<__nv_fp8_e4m3,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:600,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e5m2, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 603
    functionName: nccl::utility::EltPack<half, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 1> castPack(EltPack<__nv_fp8_e5m2,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_fp8x2_to_halfraw2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:624,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:631,1
    - Dst: nccl::utility::EltPack<half, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<__nv_fp8_e5m2, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 635
    functionName: nccl::utility::EltPack<half, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 8
    functionsReached:
    - __nv_cvt_fp8x2_to_halfraw2
    - nccl::utility::EltPack<half, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> castPack(EltPack<__nv_fp8_e5m2,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:651,1
    - Dst: __nv_cvt_halfraw_to_fp8
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 654
    functionName: nccl::utility::EltPack<__nv_fp8_e4m3, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<half, 1>::elts
    - __nv_cvt_halfraw_to_fp8
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 1> castPack(EltPack<half,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_halfraw2_to_fp8x2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:676,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:682,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 686
    functionName: nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 4
    functionsReached:
    - __nv_cvt_halfraw2_to_fp8x2
    - nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e4m3, 2> castPack(EltPack<half,
      2> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EltPack<half, 1>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:702,1
    - Dst: __nv_cvt_halfraw_to_fp8
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 705
    functionName: nccl::utility::EltPack<__nv_fp8_e5m2, 1>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - EltPack<half, 1>::elts
    - __nv_cvt_halfraw_to_fp8
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 1> castPack(EltPack<half,
      1> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __nv_cvt_halfraw2_to_fp8x2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:727,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:733,1
    - Dst: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 737
    functionName: nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 4
    functionsReached:
    - __nv_cvt_halfraw2_to_fp8x2
    - nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_fp8_e5m2, 2> castPack(EltPack<half,
      2> x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: PackAccess::pack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:758,1
    - Dst: nccl::utility::EltPack<T, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:760,1
    - Dst: nccl::utility::EltPack<T, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' red'
    - a
    - b
    argTypes:
    - Red<T>
    - EltPack<T, n>
    - EltPack<T, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 764
    functionName: nccl::utility::EltPack<T, n>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 4
    functionsReached:
    - PackAccess::pack::elts
    - red
    - nccl::utility::EltPack<T, n>::reducePack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<T, n> reducePack(Red<T> const& red, EltPack<T,
      n> a, EltPack<T, n> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 771
    functionName: nccl::utility::EltPack<T, 0>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<T, 0> reducePack(Red<T> const& /* red */,
      EltPack<T, 0> /* a */, EltPack<T, 0> /* b */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vadd4
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<int8_t, 4>
    - EltPack<int8_t, 4>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 789
    functionName: nccl::utility::EltPack<int8_t, 4>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - __vadd4
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<int8_t, 4> reducePack(OpSum<int8_t> const&
      /* red */, EltPack<int8_t, 4> a, EltPack<int8_t, 4> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::EltPack<uint8_t, n>::reducePack
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' red'
    - a
    - b
    argTypes:
    - OpSum<uint8_t>
    - EltPack<uint8_t, n>
    - EltPack<uint8_t, n>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 807
    functionName: nccl::utility::EltPack<uint8_t, n>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 4
    functionsReached:
    - nccl::utility::EltPack<uint8_t, n>::reducePack
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<uint8_t, n> reducePack(OpSum<uint8_t> const&
      red, EltPack<uint8_t, n> a, EltPack<uint8_t, n> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hadd2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:823,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:828,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    - Dst: EltPack<half, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<half, 2>
    - EltPack<half, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 832
    functionName: nccl::utility::EltPack<half, 2>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - red
    - __hadd2
    - EltPack<half, 2>::elts
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<half, 2> reducePack(OpSum<half> const& /*
      red */, EltPack<half, 2> a, EltPack<half, 2> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hadd2
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:849,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:854,1
    - Dst: EltPack::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: red
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    - Dst: EltPack<__nv_bfloat16, 2>::elts
      Src: /src/nccl/src/include/nccl_device/impl/vector__funcs.h:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EltPack<__nv_bfloat16, 2>
    - EltPack<__nv_bfloat16, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 858
    functionName: nccl::utility::EltPack<__nv_bfloat16, 2>::reducePack
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    functionUses: 0
    functionsReached:
    - red
    - EltPack<__nv_bfloat16, 2>::elts
    - __hadd2
    - EltPack::elts
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE EltPack<__nv_bfloat16, 2> reducePack(OpSum<__nv_bfloat16>
      const& /* red */, EltPack<__nv_bfloat16, 2> a, EltPack<__nv_bfloat16, 2> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: ncclSymPtr<T>::operator ncclSymPtr<U>() const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclSymPtr<T>::operator ncclSymPtr<U>() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:29,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: '& ncclSymPtr<T>::operator+=(int d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator+=(int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:34,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: '& ncclSymPtr<T>::operator+=(unsigned int d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator+=(unsigned int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:40,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: '& ncclSymPtr<T>::operator+=(long d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator+=(long d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:45,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: '& ncclSymPtr<T>::operator+=(unsigned long d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator+=(unsigned long d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:51,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: '& ncclSymPtr<T>::operator+=(long long d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator+=(long long d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:56,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: '& ncclSymPtr<T>::operator+=(unsigned long long d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator+=(unsigned long long
      d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:62,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: '& ncclSymPtr<T>::operator-=(int d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator-=(int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:67,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: '& ncclSymPtr<T>::operator-=(unsigned int d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator-=(unsigned int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:73,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: '& ncclSymPtr<T>::operator-=(long d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator-=(long d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:78,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: '& ncclSymPtr<T>::operator-=(unsigned long d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator-=(unsigned long d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:84,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: '& ncclSymPtr<T>::operator-=(long long d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator-=(long long d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<size_t>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:89,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: '& ncclSymPtr<T>::operator-=(unsigned long long d)'
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE & ncclSymPtr<T>::operator-=(unsigned long long
      d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetLocalPointer
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: ncclSymPtr<T>::localPtr
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGetLocalPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclSymPtr<T>::localPtr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetLsaPointer
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - peer
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: ncclSymPtr<T>::lsaPtr
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGetLsaPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclSymPtr<T>::lsaPtr(int peer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetPeerPointer
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - peer
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: ncclSymPtr<T>::peerPtr
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 8
    functionsReached:
    - ncclGetPeerPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclSymPtr<T>::peerPtr(int peer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetPeerPointer
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - team
    - peer
    argTypes:
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: ncclSymPtr<T>::peerPtr
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 8
    functionsReached:
    - ncclGetPeerPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclSymPtr<T>::peerPtr(ncclTeam team, int peer)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetMultimemPointer
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mmHandle
    argTypes:
    - ncclMultimemHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: ncclSymPtr<T>::multimemPtr
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 5
    functionsReached:
    - ncclGetMultimemPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclSymPtr<T>::multimemPtr(ncclMultimemHandle
      mmHandle) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetLsaMultimemPointer
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comm'
    argTypes:
    - ncclDevComm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: ncclSymPtr<T>::lsaMultimemPtr
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGetLsaMultimemPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclSymPtr<T>::lsaMultimemPtr(ncclDevComm const&
      comm) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - d
    argTypes:
    - ncclSymPtr<T>
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: ncclSymPtr<T> operator+(ncclSymPtr<T> p, Int d)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclSymPtr<T> operator+(ncclSymPtr<T> p, Int
      d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - d
    argTypes:
    - ncclSymPtr<T>
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: ncclSymPtr<T> operator-(ncclSymPtr<T> p, Int d)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclSymPtr<T> operator-(ncclSymPtr<T> p, Int
      d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:149,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ncclSymPtr<T>
    - ncclSymPtr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: operator-(ncclSymPtr<T> a, ncclSymPtr<T> b)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE operator-(ncclSymPtr<T> a, ncclSymPtr<T> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ncclSymPtr<T>
    - ncclSymPtr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: operator==(ncclSymPtr<T> a, ncclSymPtr<T> b)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE operator==(ncclSymPtr<T> a, ncclSymPtr<T> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ncclSymPtr<T>
    - ncclSymPtr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: operator!=(ncclSymPtr<T> a, ncclSymPtr<T> b)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE operator!=(ncclSymPtr<T> a, ncclSymPtr<T> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclDevComm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: ncclTeamWorld
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclTeamWorld(ncclDevComm const &comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclDevComm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: ncclTeamLsa
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclTeamLsa(ncclDevComm const &comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::idivFast32
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:37,1
    - Dst: nccl::utility::idivFast32
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' comm'
    argTypes:
    - ncclDevComm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: ncclTeamRail
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 5
    functionsReached:
    - nccl::utility::idivFast32
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclTeamRail(ncclDevComm const& comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - brank
    argTypes:
    - ncclTeam_t
    - ncclTeam_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: ncclTeamRankIsMember
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclTeamRankIsMember(ncclTeam_t a, ncclTeam_t
      b, int brank)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - brank
    argTypes:
    - ncclTeam_t
    - ncclTeam_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: ncclTeamRankToTeam
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclTeamRankToTeam(ncclTeam_t a, ncclTeam_t
      b, int brank)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' comm'
    - tm
    - rank
    argTypes:
    - ncclDevComm
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: ncclTeamRankToWorld
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclTeamRankToWorld(ncclDevComm const& comm,
      ncclTeam tm, int rank)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' comm'
    - tm
    - rank
    argTypes:
    - ncclDevComm
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: ncclTeamRankToLsa
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclTeamRankToLsa(ncclDevComm const& comm,
      ncclTeam tm, int rank)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - parent
    - innerSize
    argTypes:
    - ncclTeam_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: ncclTeamInnerFactor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclTeamInnerFactor(ncclTeam_t parent, int
      innerSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - parent
    - innerSize
    argTypes:
    - ncclTeam_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: ncclTeamOuterFactor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclTeamOuterFactor(ncclTeam_t parent, int
      innerSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - parent
    - subset
    - index
    argTypes:
    - ncclTeam_t
    - ncclTeam_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: ncclTeamRankInDifference
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclTeamRankInDifference(ncclTeam_t parent,
      ncclTeam_t subset, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:106,1
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:107,1
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:108,1
    - Dst: nccl::utility::add4G
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - offset
    argTypes:
    - ncclWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: ncclGetLocalPointer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 1
    functionsReached:
    - nccl::utility::loadConst
    - nccl::utility::add4G
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGetLocalPointer(ncclWindow_t w, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:115,1
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:116,1
    - Dst: nccl::utility::add4G
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - w
    - offset
    - peer
    argTypes:
    - ncclWindow_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: ncclGetLsaPointer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 1
    functionsReached:
    - nccl::utility::loadConst
    - nccl::utility::add4G
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGetLsaPointer(ncclWindow_t w, size_t offset,
      int peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:124,1
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:125,1
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:126,1
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:127,1
    - Dst: nccl::utility::add4G
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - w
    - offset
    - peer
    argTypes:
    - ncclWindow_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: ncclGetPeerPointer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 2
    functionsReached:
    - nccl::utility::loadConst
    - nccl::utility::add4G
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGetPeerPointer(ncclWindow_t w, size_t offset,
      int peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:135,1
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:136,1
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:137,1
    - Dst: nccl::utility::add4G
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - w
    - offset
    - tm
    - peer
    argTypes:
    - ncclWindow_t
    - size_t
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: ncclGetPeerPointer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 2
    functionsReached:
    - nccl::utility::loadConst
    - nccl::utility::add4G
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGetPeerPointer(ncclWindow_t w, size_t offset,
      ncclTeam tm, int peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char(*)[4096]>
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:146,1
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - w
    - offset
    - mm
    argTypes:
    - ncclWindow_t
    - size_t
    - ncclMultimemHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: ncclGetMultimemPointer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<char(*)[4096]>
    - nccl::utility::loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGetMultimemPointer(ncclWindow_t w, size_t
      offset, ncclMultimemHandle mm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetMultimemPointer
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - w
    - offset
    - ' comm'
    argTypes:
    - ncclWindow_t
    - size_t
    - ncclDevComm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: ncclGetLsaMultimemPointer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 1
    functionsReached:
    - ncclGetMultimemPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGetLsaMultimemPointer(ncclWindow_t w, size_t
      offset, ncclDevComm const& comm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopCoalesced
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:161,1
    - Dst: auto::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:165,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:168,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:169,1
    - Dst: auto::size
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:176,1
    - Dst: __ballot_sync
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:178,1
    - Dst: ncclCoopGetLaneMask
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:178,1
    - Dst: __popc
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:180,1
    - Dst: __shfl_sync
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:181,1
    - Dst: ncclCoopGetLaneMask
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:181,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:182,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:184,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - coop
    - ' comm'
    - ptr
    argTypes:
    - Coop
    - ncclDevComm
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 186
    functionName: ncclWindow_t::ncclFindWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 0
    functionsReached:
    - __popc
    - ncclCoopGetLaneMask
    - loadConst
    - __shfl_sync
    - reinterpret_cast<uintptr_t>
    - auto::thread_rank
    - auto::size
    - ncclCoopCoalesced
    - __ballot_sync
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclWindow_t ncclFindWindow(Coop coop, ncclDevComm
      const& comm, void const *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - ncclDevResourceHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: ncclGetResourceBufferOffset
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_HOST_DEVICE_INLINE
    signature: NCCL_HOST_DEVICE_INLINE ncclGetResourceBufferOffset(ncclDevResourceHandle_t
      h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::add4G
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:197,1
    - Dst: reinterpret_cast<char(*)[128]>
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' comm'
    - h
    argTypes:
    - ncclDevComm
    - ncclDevResourceHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: ncclGetResourceBufferLocalPointer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 9
    functionsReached:
    - reinterpret_cast<char(*)[128]>
    - nccl::utility::add4G
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGetResourceBufferLocalPointer(ncclDevComm
      const& comm, ncclDevResourceHandle h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::add4G
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:207,1
    - Dst: reinterpret_cast<char(*)[128]>
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' comm'
    - h
    - peer
    argTypes:
    - ncclDevComm
    - ncclDevResourceHandle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: ncclGetResourceBufferLsaPointer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char(*)[128]>
    - nccl::utility::add4G
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGetResourceBufferLsaPointer(ncclDevComm const&
      comm, ncclDevResourceHandle h, int peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::add4G
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:217,1
    - Dst: reinterpret_cast<char(*)[128]>
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' comm'
    - h
    - team
    - peer
    argTypes:
    - ncclDevComm
    - ncclDevResourceHandle
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: ncclGetResourceBufferPeerPointer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 3
    functionsReached:
    - reinterpret_cast<char(*)[128]>
    - nccl::utility::add4G
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGetResourceBufferPeerPointer(ncclDevComm const&
      comm, ncclDevResourceHandle h, ncclTeam team, int peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char(*)[4096]>
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:225,1
    - Dst: reinterpret_cast<char(*)[128]>
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' comm'
    - h
    - mm
    argTypes:
    - ncclDevComm
    - ncclDevResourceHandle
    - ncclMultimemHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: ncclGetResourceBufferMultimemPointer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 2
    functionsReached:
    - reinterpret_cast<char(*)[4096]>
    - reinterpret_cast<char(*)[128]>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGetResourceBufferMultimemPointer(ncclDevComm
      const& comm, ncclDevResourceHandle h, ncclMultimemHandle mm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetResourceBufferMultimemPointer
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' comm'
    - h
    argTypes:
    - ncclDevComm
    - ncclDevResourceHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: ncclGetResourceBufferLsaMultimemPointer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGetResourceBufferMultimemPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGetResourceBufferLsaMultimemPointer(ncclDevComm
      const& comm, ncclDevResourceHandle h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclSymPtr<char>
      Src: /src/nccl/src/include/nccl_device/impl/core__funcs.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' comm'
    - h
    argTypes:
    - ncclDevComm
    - ncclDevResourceHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: ncclSymPtr<char>::ncclGetResourceBuffer
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/core__funcs.h
    functionUses: 0
    functionsReached:
    - ncclSymPtr<char>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclSymPtr<char> ncclGetResourceBuffer(ncclDevComm
      const& comm, ncclDevResourceHandle h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - offset
    argTypes:
    - ncclWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: nccl::gin::internal::windowOffsetToGinOffset
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE windowOffsetToGinOffset(ncclWindow_t window, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - connectionId
    argTypes:
    - ncclWindow_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: nccl::gin::internal::ncclGinWindow_t::getGinWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinWindow_t getGinWindow(ncclWindow_t window,
      int connectionId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamRankToWorld
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:32,1
    - Dst: nccl::utility::idivFast32
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' comm'
    - team
    - teamRank
    argTypes:
    - ncclDevComm
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: nccl::gin::internal::teamRankToGinRank
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivFast32
    - ncclTeamRankToWorld
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE teamRankToGinRank(ncclDevComm const& comm, ncclTeam
      team, int teamRank)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - win
    - offset
    - outSeg
    - outSegOffset
    argTypes:
    - ncclWindow_t
    - size_t
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: nccl::gin::internal::findSegmentFromWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE findSegmentFromWindow(ncclWindow_t win, size_t offset,
      int* outSeg, size_t* outSegOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - srcRemaining
    - dstRemaining
    - remaining
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: nccl::gin::internal::getSegmentChunkSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE getSegmentChunkSize(size_t srcRemaining, size_t
      dstRemaining, size_t remaining)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - seg
    - segOffset
    - chunkSize
    - segmentSize
    argTypes:
    - int*
    - size_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: nccl::gin::internal::advanceSegmentCursor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE advanceSegmentCursor(\n    int* seg, size_t* segOffset,
      size_t chunkSize, size_t segmentSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - offset
    argTypes:
    - ncclWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: nccl::gin::internal::windowOffsetToGinOffset
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE windowOffsetToGinOffset(ncclWindow_t window, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - connectionId
    argTypes:
    - ncclWindow_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: nccl::gin::internal::ncclGinWindow_t::getGinWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinWindow_t getGinWindow(ncclWindow_t window,
      int connectionId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamRankToWorld
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:32,1
    - Dst: nccl::utility::idivFast32
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' comm'
    - team
    - teamRank
    argTypes:
    - ncclDevComm
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: nccl::gin::internal::teamRankToGinRank
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivFast32
    - ncclTeamRankToWorld
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE teamRankToGinRank(ncclDevComm const& comm, ncclTeam
      team, int teamRank)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - win
    - offset
    - outSeg
    - outSegOffset
    argTypes:
    - ncclWindow_t
    - size_t
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: nccl::gin::internal::findSegmentFromWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE findSegmentFromWindow(ncclWindow_t win, size_t offset,
      int* outSeg, size_t* outSegOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - srcRemaining
    - dstRemaining
    - remaining
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: nccl::gin::internal::getSegmentChunkSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE getSegmentChunkSize(size_t srcRemaining, size_t
      dstRemaining, size_t remaining)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - seg
    - segOffset
    - chunkSize
    - segmentSize
    argTypes:
    - int*
    - size_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: nccl::gin::internal::advanceSegmentCursor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE advanceSegmentCursor(\n    int* seg, size_t* segOffset,
      size_t chunkSize, size_t segmentSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - offset
    argTypes:
    - ncclWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: nccl::gin::internal::windowOffsetToGinOffset
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE windowOffsetToGinOffset(ncclWindow_t window, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - connectionId
    argTypes:
    - ncclWindow_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: nccl::gin::internal::ncclGinWindow_t::getGinWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinWindow_t getGinWindow(ncclWindow_t window,
      int connectionId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamRankToWorld
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:32,1
    - Dst: nccl::utility::idivFast32
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' comm'
    - team
    - teamRank
    argTypes:
    - ncclDevComm
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: nccl::gin::internal::teamRankToGinRank
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivFast32
    - ncclTeamRankToWorld
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE teamRankToGinRank(ncclDevComm const& comm, ncclTeam
      team, int teamRank)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - win
    - offset
    - outSeg
    - outSegOffset
    argTypes:
    - ncclWindow_t
    - size_t
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: nccl::gin::internal::findSegmentFromWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE findSegmentFromWindow(ncclWindow_t win, size_t offset,
      int* outSeg, size_t* outSegOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - srcRemaining
    - dstRemaining
    - remaining
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: nccl::gin::internal::getSegmentChunkSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE getSegmentChunkSize(size_t srcRemaining, size_t
      dstRemaining, size_t remaining)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - seg
    - segOffset
    - chunkSize
    - segmentSize
    argTypes:
    - int*
    - size_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: nccl::gin::internal::advanceSegmentCursor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE advanceSegmentCursor(\n    int* seg, size_t* segOffset,
      size_t chunkSize, size_t segmentSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - offset
    argTypes:
    - ncclWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: nccl::gin::internal::windowOffsetToGinOffset
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE windowOffsetToGinOffset(ncclWindow_t window, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - connectionId
    argTypes:
    - ncclWindow_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: nccl::gin::internal::ncclGinWindow_t::getGinWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinWindow_t getGinWindow(ncclWindow_t window,
      int connectionId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamRankToWorld
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:32,1
    - Dst: nccl::utility::idivFast32
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' comm'
    - team
    - teamRank
    argTypes:
    - ncclDevComm
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: nccl::gin::internal::teamRankToGinRank
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivFast32
    - ncclTeamRankToWorld
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE teamRankToGinRank(ncclDevComm const& comm, ncclTeam
      team, int teamRank)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - win
    - offset
    - outSeg
    - outSegOffset
    argTypes:
    - ncclWindow_t
    - size_t
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: nccl::gin::internal::findSegmentFromWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE findSegmentFromWindow(ncclWindow_t win, size_t offset,
      int* outSeg, size_t* outSegOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - srcRemaining
    - dstRemaining
    - remaining
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: nccl::gin::internal::getSegmentChunkSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE getSegmentChunkSize(size_t srcRemaining, size_t
      dstRemaining, size_t remaining)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - seg
    - segOffset
    - chunkSize
    - segmentSize
    argTypes:
    - int*
    - size_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: nccl::gin::internal::advanceSegmentCursor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE advanceSegmentCursor(\n    int* seg, size_t* segOffset,
      size_t chunkSize, size_t segmentSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - offset
    argTypes:
    - ncclWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: nccl::gin::internal::windowOffsetToGinOffset
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE windowOffsetToGinOffset(ncclWindow_t window, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - connectionId
    argTypes:
    - ncclWindow_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: nccl::gin::internal::ncclGinWindow_t::getGinWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinWindow_t getGinWindow(ncclWindow_t window,
      int connectionId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamRankToWorld
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:32,1
    - Dst: nccl::utility::idivFast32
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' comm'
    - team
    - teamRank
    argTypes:
    - ncclDevComm
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: nccl::gin::internal::teamRankToGinRank
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivFast32
    - ncclTeamRankToWorld
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE teamRankToGinRank(ncclDevComm const& comm, ncclTeam
      team, int teamRank)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - win
    - offset
    - outSeg
    - outSegOffset
    argTypes:
    - ncclWindow_t
    - size_t
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: nccl::gin::internal::findSegmentFromWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE findSegmentFromWindow(ncclWindow_t win, size_t offset,
      int* outSeg, size_t* outSegOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - srcRemaining
    - dstRemaining
    - remaining
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: nccl::gin::internal::getSegmentChunkSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE getSegmentChunkSize(size_t srcRemaining, size_t
      dstRemaining, size_t remaining)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - seg
    - segOffset
    - chunkSize
    - segmentSize
    argTypes:
    - int*
    - size_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: nccl::gin::internal::advanceSegmentCursor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE advanceSegmentCursor(\n    int* seg, size_t* segOffset,
      size_t chunkSize, size_t segmentSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - offset
    argTypes:
    - ncclWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: nccl::gin::internal::windowOffsetToGinOffset
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE windowOffsetToGinOffset(ncclWindow_t window, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - connectionId
    argTypes:
    - ncclWindow_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: nccl::gin::internal::ncclGinWindow_t::getGinWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinWindow_t getGinWindow(ncclWindow_t window,
      int connectionId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamRankToWorld
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:32,1
    - Dst: nccl::utility::idivFast32
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' comm'
    - team
    - teamRank
    argTypes:
    - ncclDevComm
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: nccl::gin::internal::teamRankToGinRank
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivFast32
    - ncclTeamRankToWorld
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE teamRankToGinRank(ncclDevComm const& comm, ncclTeam
      team, int teamRank)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - win
    - offset
    - outSeg
    - outSegOffset
    argTypes:
    - ncclWindow_t
    - size_t
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: nccl::gin::internal::findSegmentFromWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE findSegmentFromWindow(ncclWindow_t win, size_t offset,
      int* outSeg, size_t* outSegOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - srcRemaining
    - dstRemaining
    - remaining
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: nccl::gin::internal::getSegmentChunkSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE getSegmentChunkSize(size_t srcRemaining, size_t
      dstRemaining, size_t remaining)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - seg
    - segOffset
    - chunkSize
    - segmentSize
    argTypes:
    - int*
    - size_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: nccl::gin::internal::advanceSegmentCursor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE advanceSegmentCursor(\n    int* seg, size_t* segOffset,
      size_t chunkSize, size_t segmentSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - offset
    argTypes:
    - ncclWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: nccl::gin::internal::windowOffsetToGinOffset
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE windowOffsetToGinOffset(ncclWindow_t window, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - connectionId
    argTypes:
    - ncclWindow_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: nccl::gin::internal::ncclGinWindow_t::getGinWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinWindow_t getGinWindow(ncclWindow_t window,
      int connectionId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamRankToWorld
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:32,1
    - Dst: nccl::utility::idivFast32
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' comm'
    - team
    - teamRank
    argTypes:
    - ncclDevComm
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: nccl::gin::internal::teamRankToGinRank
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivFast32
    - ncclTeamRankToWorld
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE teamRankToGinRank(ncclDevComm const& comm, ncclTeam
      team, int teamRank)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - win
    - offset
    - outSeg
    - outSegOffset
    argTypes:
    - ncclWindow_t
    - size_t
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: nccl::gin::internal::findSegmentFromWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE findSegmentFromWindow(ncclWindow_t win, size_t offset,
      int* outSeg, size_t* outSegOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - srcRemaining
    - dstRemaining
    - remaining
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: nccl::gin::internal::getSegmentChunkSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE getSegmentChunkSize(size_t srcRemaining, size_t
      dstRemaining, size_t remaining)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - seg
    - segOffset
    - chunkSize
    - segmentSize
    argTypes:
    - int*
    - size_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: nccl::gin::internal::advanceSegmentCursor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE advanceSegmentCursor(\n    int* seg, size_t* segOffset,
      size_t chunkSize, size_t segmentSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - offset
    argTypes:
    - ncclWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: nccl::gin::internal::windowOffsetToGinOffset
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE windowOffsetToGinOffset(ncclWindow_t window, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - connectionId
    argTypes:
    - ncclWindow_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: nccl::gin::internal::ncclGinWindow_t::getGinWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinWindow_t getGinWindow(ncclWindow_t window,
      int connectionId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamRankToWorld
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:32,1
    - Dst: nccl::utility::idivFast32
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' comm'
    - team
    - teamRank
    argTypes:
    - ncclDevComm
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: nccl::gin::internal::teamRankToGinRank
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::utility::idivFast32
    - ncclTeamRankToWorld
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE teamRankToGinRank(ncclDevComm const& comm, ncclTeam
      team, int teamRank)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - win
    - offset
    - outSeg
    - outSegOffset
    argTypes:
    - ncclWindow_t
    - size_t
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: nccl::gin::internal::findSegmentFromWindow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE findSegmentFromWindow(ncclWindow_t win, size_t offset,
      int* outSeg, size_t* outSegOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - srcRemaining
    - dstRemaining
    - remaining
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: nccl::gin::internal::getSegmentChunkSize
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE getSegmentChunkSize(size_t srcRemaining, size_t
      dstRemaining, size_t remaining)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - seg
    - segOffset
    - chunkSize
    - segmentSize
    argTypes:
    - int*
    - size_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: nccl::gin::internal::advanceSegmentCursor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE advanceSegmentCursor(\n    int* seg, size_t* segOffset,
      size_t chunkSize, size_t segmentSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - gin
    - ' comm'
    - contextIndex
    argTypes:
    - GinType*
    - ncclDevComm
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: ncclGinInitCommon
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinInitCommon(GinType* gin, ncclDevComm const&
      comm, int contextIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGin_C::ncclGin_C
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - net
    - backendMask
    - ' comm'
    - contextIndex
    argTypes:
    - ncclGin_C*
    - unsigned
    - ncclDevComm
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: ncclGin_C_init
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGin_C::ncclGin_C
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGin_C_init(\n    ncclGin_C* net, unsigned backendMask,
      ncclDevComm const& comm, int contextIndex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGin_C::ncclGin_C
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - net
    - backendMask
    - ' comm'
    - contextIndex
    - resourceSharingMode
    argTypes:
    - ncclGin_C*
    - unsigned
    - ncclDevComm
    - int
    - ncclGinResourceSharingMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: ncclGin_C_initWithResourceSharingMode
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGin_C::ncclGin_C
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGin_C_initWithResourceSharingMode(\n    ncclGin_C*
      net, unsigned backendMask, ncclDevComm const& comm, int contextIndex,\n    ncclGinResourceSharingMode
      resourceSharingMode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamRail
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 144
    functionName: ncclGinCtx_M<beMask> ncclGin_BackendMask<beMask>::_makeCtx() const
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclTeamRail
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinCtx_M<beMask> ncclGin_BackendMask<beMask>::_makeCtx()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamRail
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - net
    argTypes:
    - ncclGin_C*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 162
    functionName: ncclGin_C_makeCtx
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclTeamRail
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_C_makeCtx(ncclGin_C* net)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: ncclGin_isDescriptor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_isDescriptor(Descriptor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: ncclGinDescriptorSmem* ncclGin_getDescriptor(Descriptor)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinDescriptorSmem* ncclGin_getDescriptor(Descriptor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: ncclGin_isDescriptor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_isDescriptor(ncclGin_DescriptorSmem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: ncclGinDescriptorSmem* ncclGin_getDescriptor(ncclGin_DescriptorSmem
      arg)
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinDescriptorSmem* ncclGin_getDescriptor(ncclGin_DescriptorSmem
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: ncclGinSignalOp_t::ncclGin_getSignalOp
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinSignalOp_t ncclGin_getSignalOp(RemoteAction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: ncclGin_getSignalOpArg
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_getSignalOpArg(RemoteAction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: ncclGinSignalDescriptor::ncclGin_getSignalDescriptor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinSignalDescriptor ncclGin_getSignalDescriptor(ncclGin
      const&, RemoteAction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' net'
    - arg
    argTypes:
    - ncclGin
    - ncclGin_SignalInc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: ncclGinSignalDescriptor::ncclGin_getSignalDescriptor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinSignalDescriptor ncclGin_getSignalDescriptor(ncclGin
      const& net, ncclGin_SignalInc arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: ncclGinSignalOp_t::ncclGin_getSignalOp
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinSignalOp_t ncclGin_getSignalOp(ncclGin_SignalInc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: ncclGin_getSignalOpArg
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_getSignalOpArg(ncclGin_SignalInc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' net'
    - arg
    argTypes:
    - ncclGin
    - ncclGin_SignalAdd
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: ncclGinSignalDescriptor::ncclGin_getSignalDescriptor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinSignalDescriptor ncclGin_getSignalDescriptor(ncclGin
      const& net, ncclGin_SignalAdd arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: ncclGinSignalOp_t::ncclGin_getSignalOp
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinSignalOp_t ncclGin_getSignalOp(ncclGin_SignalAdd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - ncclGin_SignalAdd
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: ncclGin_getSignalOpArg
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_getSignalOpArg(ncclGin_SignalAdd arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::internal::ncclGinWindow_t::getGinWindow
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:222,1
    - Dst: nccl::gin::internal::windowOffsetToGinOffset
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' net'
    - arg
    argTypes:
    - ncclGin
    - ncclGin_VASignalInc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 226
    functionName: ncclGinSignalDescriptor::ncclGin_getSignalDescriptor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::gin::internal::ncclGinWindow_t::getGinWindow
    - nccl::gin::internal::windowOffsetToGinOffset
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinSignalDescriptor ncclGin_getSignalDescriptor(ncclGin
      const& net, ncclGin_VASignalInc arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - ncclGin_VASignalInc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: ncclGinSignalOp_t::ncclGin_getSignalOp
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinSignalOp_t ncclGin_getSignalOp(ncclGin_VASignalInc
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - ncclGin_VASignalInc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: ncclGin_getSignalOpArg
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_getSignalOpArg(ncclGin_VASignalInc arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::internal::ncclGinWindow_t::getGinWindow
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:237,1
    - Dst: nccl::gin::internal::windowOffsetToGinOffset
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' net'
    - arg
    argTypes:
    - ncclGin
    - ncclGin_VASignalAdd
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: ncclGinSignalDescriptor::ncclGin_getSignalDescriptor
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::gin::internal::ncclGinWindow_t::getGinWindow
    - nccl::gin::internal::windowOffsetToGinOffset
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinSignalDescriptor ncclGin_getSignalDescriptor(ncclGin
      const& net, ncclGin_VASignalAdd arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - ncclGin_VASignalAdd
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: ncclGinSignalOp_t::ncclGin_getSignalOp
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinSignalOp_t ncclGin_getSignalOp(ncclGin_VASignalAdd
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - ncclGin_VASignalAdd
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: ncclGin_getSignalOpArg
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_getSignalOpArg(ncclGin_VASignalAdd arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: ncclGin_isCounter
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_isCounter(LocalAction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: ncclGinCounter_t::ncclGin_getCounterId
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinCounter_t ncclGin_getCounterId(ncclGin const&,
      LocalAction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: ncclGin_isCounter
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_isCounter(ncclGin_CounterInc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' net'
    - arg
    argTypes:
    - ncclGin
    - ncclGin_CounterInc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 261
    functionName: ncclGinCounter_t::ncclGin_getCounterId
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGinCounter_t ncclGin_getCounterId(ncclGin const&
      net, ncclGin_CounterInc arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: ncclGin_isDeviceOnly
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_isDeviceOnly(ncclGin_SegmentDevice)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    functionName: ncclGin_isDeviceOnly
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_isDeviceOnly(ncclGin_SegmentMixed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: ncclGin_isDeviceOnly
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_isDeviceOnly(ncclGin_SegmentHostNuma)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclGin_C_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:291,1
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:292,1
    - Dst: ncclCoopAny::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:299,1
    - Dst: ncclGinCall<ncclGinApi_Put>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:300,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:301,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:301,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:302,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:303,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:304,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:305,1
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 20
    argNames:
    - net
    - team
    - peer
    - dstWin
    - dstOffset
    - srcWin
    - srcOffset
    - bytes
    - isSignal
    - signalId
    - signalOp
    - signalOpArg
    - isCounter
    - counterId
    - coop
    - isDescriptor
    - descriptor
    - givenRelease
    - requiredRelease
    - optFlags
    argTypes:
    - ncclGin_C*
    - ncclTeam
    - int
    - ncclWindow_t
    - size_t
    - ncclWindow_t
    - size_t
    - size_t
    - bool
    - ncclGinSignal_t
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - ncclCoopAny
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 319
    functionName: ncclGinPut_v2
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    - ncclGinCall<ncclGinApi_Put>
    - ncclCoopAny::sync
    - teamRankToGinRank
    - ncclGin_C_makeCtx
    - ncclCoopAny::thread_rank
    - ncclCoopThread
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinPut_v2(\n    ncclGin_C* net,\n    ncclTeam
      team, int peer,\n    ncclWindow_t dstWin, size_t dstOffset,\n    ncclWindow_t
      srcWin, size_t srcOffset, size_t bytes,\n    bool isSignal, ncclGinSignal_t
      signalId, ncclGinSignalOp_t signalOp, uint64_t signalOpArg,\n    bool isCounter,
      ncclGinCounter_t counterId,\n    ncclCoopAny coop,\n    bool isDescriptor, ncclGinDescriptorSmem*
      descriptor,\n    cuda::thread_scope givenRelease, cuda::thread_scope requiredRelease,\n
      \   uint32_t optFlags\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinPut_v2
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 19
    argNames:
    - net
    - team
    - peer
    - dstWin
    - dstOffset
    - srcWin
    - srcOffset
    - bytes
    - isSignal
    - signalId
    - signalOp
    - signalOpArg
    - isCounter
    - counterId
    - coop
    - isDescriptor
    - descriptor
    - givenRelease
    - requiredRelease
    argTypes:
    - ncclGin_C*
    - ncclTeam
    - int
    - ncclWindow_t
    - size_t
    - ncclWindow_t
    - size_t
    - size_t
    - bool
    - ncclGinSignal_t
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - ncclCoopAny
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: ncclGinPut
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinPut_v2
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinPut(\n    ncclGin_C* net,\n    ncclTeam
      team, int peer,\n    ncclWindow_t dstWin, size_t dstOffset,\n    ncclWindow_t
      srcWin, size_t srcOffset, size_t bytes,\n    bool isSignal, ncclGinSignal_t
      signalId, ncclGinSignalOp_t signalOp, uint64_t signalOpArg,\n    bool isCounter,
      ncclGinCounter_t counterId,\n    ncclCoopAny coop,\n    bool isDescriptor, ncclGinDescriptorSmem*
      descriptor,\n    cuda::thread_scope givenRelease, cuda::thread_scope requiredRelease\n
      \ )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:357,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:358,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:359,1
    - Dst: ncclGin_isDeviceOnly
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:360,1
    - Dst: ncclGinCall<ncclGinApi_Put>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:361,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:362,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:362,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:363,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:364,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:365,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:366,1
    - Dst: ncclGin_getSignalDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:367,1
    - Dst: ncclGin_getSignalOp
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:368,1
    - Dst: ncclGin_getSignalOpArg
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:369,1
    - Dst: ncclGin_isCounter
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:370,1
    - Dst: ncclGin_getCounterId
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:371,1
    - Dst: ncclGin_isDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:372,1
    - Dst: ncclGin_getDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:373,1
    - Dst: ncclGinCall<ncclGinApi_Put>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:380,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:381,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:381,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:382,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:383,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:384,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:385,1
    - Dst: ncclGin_getSignalDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:386,1
    - Dst: ncclGin_getSignalOp
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:387,1
    - Dst: ncclGin_getSignalOpArg
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:388,1
    - Dst: ncclGin_isCounter
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:389,1
    - Dst: ncclGin_getCounterId
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:390,1
    - Dst: ncclGin_isDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:391,1
    - Dst: ncclGin_getDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:392,1
    - Dst: nccl::gin::internal::findSegmentFromWindow
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:401,1
    - Dst: nccl::gin::internal::findSegmentFromWindow
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:404,1
    - Dst: nccl::gin::internal::getSegmentChunkSize
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:418,1
    - Dst: ncclGinCall<ncclGinApi_Put>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:420,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:421,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:421,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:422,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:424,1
    - Dst: ncclGin_getSignalDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:426,1
    - Dst: ncclGin_getSignalDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:426,1
    - Dst: ncclGin_getSignalOp
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:427,1
    - Dst: ncclGin_getSignalOpArg
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:428,1
    - Dst: ncclGin_isCounter
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:429,1
    - Dst: ncclGin_getCounterId
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:430,1
    - Dst: ncclGin_isDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:431,1
    - Dst: ncclGin_getDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:432,1
    - Dst: nccl::gin::internal::advanceSegmentCursor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:438,1
    - Dst: nccl::gin::internal::advanceSegmentCursor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:439,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 15
    argNames:
    - team
    - peer
    - dstWin
    - dstOffset
    - srcWin
    - srcOffset
    - bytes
    - remoteAction
    - localAction
    - coop
    - descriptor
    - givenRelease
    - requiredRelease
    - optFlags
    - bufType
    argTypes:
    - ncclTeam
    - int
    - ncclWindow_t
    - size_t
    - ncclWindow_t
    - size_t
    - size_t
    - RemoteAction
    - LocalAction
    - Coop
    - DescriptorSmem
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    - SegmentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 446
    functionName: ncclGin_BackendMask<beMask>::put
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::gin::internal::advanceSegmentCursor
    - Coop::thread_rank
    - ncclGin_getSignalOp
    - ncclGin_isDescriptor
    - loadConst
    - ncclGinCall<ncclGinApi_Put>
    - Coop::sync
    - ncclGin_getSignalOpArg
    - ncclGin_getDescriptor
    - ncclGin_isCounter
    - ncclGin_getSignalDescriptor
    - ncclGin_getCounterId
    - nccl::gin::internal::findSegmentFromWindow
    - ncclGin_isDeviceOnly
    - teamRankToGinRank
    - nccl::gin::internal::getSegmentChunkSize
    - ncclCoopThread
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::put(\n    ncclTeam
      team, int peer,\n    ncclWindow_t dstWin, size_t dstOffset,\n    ncclWindow_t
      srcWin, size_t srcOffset, size_t bytes,\n    RemoteAction remoteAction, LocalAction
      localAction,\n    Coop coop,\n    DescriptorSmem descriptor,\n    cuda::thread_scope
      givenRelease, cuda::thread_scope requiredRelease,\n    uint32_t optFlags, SegmentType
      bufType\n  ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGin_BackendMask<beMask>::put
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 13
    argNames:
    - team
    - peer
    - dstElts
    - srcElts
    - nElts
    - remoteAction
    - localAction
    - coop
    - descriptor
    - givenRelease
    - requiredRelease
    - optFlags
    - bufType
    argTypes:
    - ncclTeam
    - int
    - ncclSymPtr<T>
    - ncclSymPtr<T>
    - size_t
    - RemoteAction
    - LocalAction
    - Coop
    - DescriptorSmem
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    - SegmentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 473
    functionName: ncclGin_BackendMask<beMask>::put
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 1
    functionsReached:
    - ncclGin_BackendMask<beMask>::put
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::put(\n    ncclTeam
      team, int peer,\n    ncclSymPtr<T> dstElts, ncclSymPtr<T> srcElts, size_t nElts,\n
      \   RemoteAction remoteAction, LocalAction localAction,\n    Coop coop,\n    DescriptorSmem
      descriptor,\n    cuda::thread_scope givenRelease,\n    cuda::thread_scope requiredRelease,\n
      \   uint32_t optFlags, SegmentType bufType\n  ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:497,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:498,1
    - Dst: ncclGinCall<ncclGinApi_PutValue>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:499,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:499,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:500,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:500,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:501,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:502,1
    - Dst: ncclGin_getSignalDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:504,1
    - Dst: ncclGin_getSignalOp
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:505,1
    - Dst: ncclGin_getSignalOpArg
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:506,1
    - Dst: ncclGin_isDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:507,1
    - Dst: ncclGin_getDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:508,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 11
    argNames:
    - team
    - peer
    - dstWin
    - dstOffset
    - value
    - remoteAction
    - coop
    - descriptor
    - givenRelease
    - requiredRelease
    - optFlags
    argTypes:
    - ncclTeam
    - int
    - ncclWindow_t
    - size_t
    - T
    - RemoteAction
    - Coop
    - DescriptorSmem
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 513
    functionName: ncclGin_BackendMask<beMask>::putValue
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - ncclGin_getSignalOp
    - ncclGin_isDescriptor
    - loadConst
    - Coop::sync
    - ncclGinCall<ncclGinApi_PutValue>
    - ncclGin_getSignalOpArg
    - ncclGin_getDescriptor
    - ncclGin_getSignalDescriptor
    - teamRankToGinRank
    - ncclCoopThread
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::putValue(\n    ncclTeam
      team, int peer,\n    ncclWindow_t dstWin, size_t dstOffset, T value,\n    RemoteAction
      remoteAction,\n    Coop coop,\n    DescriptorSmem descriptor,\n    cuda::thread_scope
      givenRelease,\n    cuda::thread_scope requiredRelease,\n    uint32_t optFlags\n
      \ ) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:528,1
    - Dst: ncclCoopAny::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:529,1
    - Dst: ncclGin_C_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:536,1
    - Dst: ncclGinCall<ncclGinApi_PutValue>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:539,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:540,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:540,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:541,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:542,1
    - Dst: ncclGinCall<ncclGinApi_PutValue>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:547,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:548,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:548,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:549,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:550,1
    - Dst: ncclGinCall<ncclGinApi_PutValue>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:555,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:556,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:556,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:557,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:558,1
    - Dst: ncclGinCall<ncclGinApi_PutValue>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:563,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:564,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:564,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:565,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:566,1
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:572,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 17
    argNames:
    - net
    - team
    - peer
    - dstWin
    - dstOffset
    - value
    - size
    - isSignal
    - signalId
    - signalOp
    - signalOpArg
    - coop
    - isDescriptor
    - descriptor
    - givenRelease
    - requiredRelease
    - optFlags
    argTypes:
    - ncclGin_C*
    - ncclTeam
    - int
    - ncclWindow_t
    - size_t
    - uint64_t
    - size_t
    - bool
    - ncclGinSignal_t
    - ncclGinSignalOp_t
    - uint64_t
    - ncclCoopAny
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 573
    functionName: ncclGinPutValue_v2
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - loadConst
    - ncclCoopAny::sync
    - ncclGinCall<ncclGinApi_PutValue>
    - teamRankToGinRank
    - ncclGin_C_makeCtx
    - ncclCoopAny::thread_rank
    - ncclCoopThread
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinPutValue_v2(\n    ncclGin_C* net,\n    ncclTeam
      team, int peer,\n    ncclWindow_t dstWin, size_t dstOffset,\n    uint64_t value,
      size_t size,\n    bool isSignal, ncclGinSignal_t signalId, ncclGinSignalOp_t
      signalOp, uint64_t signalOpArg,\n    ncclCoopAny coop,\n    bool isDescriptor,
      ncclGinDescriptorSmem* descriptor,\n    cuda::thread_scope givenRelease, cuda::thread_scope
      requiredRelease,\n    uint32_t optFlags\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinPutValue_v2
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 16
    argNames:
    - net
    - team
    - peer
    - dstWin
    - dstOffset
    - value
    - size
    - isSignal
    - signalId
    - signalOp
    - signalOpArg
    - coop
    - isDescriptor
    - descriptor
    - givenRelease
    - requiredRelease
    argTypes:
    - ncclGin_C*
    - ncclTeam
    - int
    - ncclWindow_t
    - size_t
    - uint64_t
    - size_t
    - bool
    - ncclGinSignal_t
    - ncclGinSignalOp_t
    - uint64_t
    - ncclCoopAny
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 588
    functionName: ncclGinPutValue
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinPutValue_v2
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinPutValue(\n    ncclGin_C* net,\n    ncclTeam
      team, int peer,\n    ncclWindow_t dstWin, size_t dstOffset,\n    uint64_t value,
      size_t size,\n    bool isSignal, ncclGinSignal_t signalId, ncclGinSignalOp_t
      signalOp, uint64_t signalOpArg,\n    ncclCoopAny coop,\n    bool isDescriptor,
      ncclGinDescriptorSmem* descriptor,\n    cuda::thread_scope givenRelease, cuda::thread_scope
      requiredRelease\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGin_BackendMask<beMask>::putValue
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - team
    - peer
    - dst
    - value
    - remoteAction
    - coop
    - descriptor
    - givenRelease
    - requiredRelease
    - optFlags
    argTypes:
    - ncclTeam
    - int
    - ncclSymPtr<T>
    - T
    - RemoteAction
    - Coop
    - DescriptorSmem
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 613
    functionName: ncclGin_BackendMask<beMask>::putValue
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 1
    functionsReached:
    - ncclGin_BackendMask<beMask>::putValue
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::putValue(\n    ncclTeam
      team, int peer,\n    ncclSymPtr<T> dst, T value,\n    RemoteAction remoteAction,\n
      \   Coop coop,\n    DescriptorSmem descriptor,\n    cuda::thread_scope givenRelease,\n
      \   cuda::thread_scope requiredRelease,\n    uint32_t optFlags\n  ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:626,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:627,1
    - Dst: ncclGinCall<ncclGinApi_Put>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:628,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:628,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:629,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:629,1
    - Dst: ncclGin_getSignalDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:631,1
    - Dst: ncclGin_getSignalOp
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:632,1
    - Dst: ncclGin_getSignalOpArg
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:633,1
    - Dst: ncclGin_isDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:635,1
    - Dst: ncclGin_getDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:636,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 8
    argNames:
    - team
    - peer
    - action
    - coop
    - descriptor
    - givenRelease
    - requiredRelease
    - optFlags
    argTypes:
    - ncclTeam
    - int
    - RemoteAction
    - Coop
    - DescriptorSmem
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 641
    functionName: ncclGin_BackendMask<beMask>::signal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - ncclGin_getSignalOp
    - ncclGin_isDescriptor
    - ncclGinCall<ncclGinApi_Put>
    - Coop::sync
    - ncclGin_getSignalOpArg
    - ncclGin_getDescriptor
    - ncclGin_getSignalDescriptor
    - teamRankToGinRank
    - ncclCoopThread
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::signal(\n    ncclTeam
      team, int peer, RemoteAction action, Coop coop, DescriptorSmem descriptor,\n
      \   cuda::thread_scope givenRelease,\n    cuda::thread_scope requiredRelease,\n
      \   uint32_t optFlags\n  ) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:653,1
    - Dst: ncclCoopAny::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:660,1
    - Dst: ncclGin_C_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:661,1
    - Dst: ncclGinCall<ncclGinApi_Put>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:662,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:663,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:663,1
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 13
    argNames:
    - net
    - team
    - peer
    - isSignal
    - signalId
    - signalOp
    - signalOpArg
    - coop
    - isDescriptor
    - descriptor
    - givenRelease
    - requiredRelease
    - optFlags
    argTypes:
    - ncclGin_C*
    - ncclTeam
    - int
    - bool
    - ncclGinSignal_t
    - ncclGinSignalOp_t
    - uint64_t
    - ncclCoopAny
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 676
    functionName: ncclGinSignal_v2
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinCall<ncclGinApi_Put>
    - ncclCoopAny::sync
    - teamRankToGinRank
    - ncclGin_C_makeCtx
    - ncclCoopAny::thread_rank
    - ncclCoopThread
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinSignal_v2(\n    ncclGin_C* net,\n    ncclTeam
      team, int peer,\n    bool isSignal, ncclGinSignal_t signalId, ncclGinSignalOp_t
      signalOp, uint64_t signalOpArg,\n    ncclCoopAny coop,\n    bool isDescriptor,
      ncclGinDescriptorSmem* descriptor,\n    cuda::thread_scope givenRelease, cuda::thread_scope
      requiredRelease,\n    uint32_t optFlags\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinSignal_v2
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 12
    argNames:
    - net
    - team
    - peer
    - isSignal
    - signalId
    - signalOp
    - signalOpArg
    - coop
    - isDescriptor
    - descriptor
    - givenRelease
    - requiredRelease
    argTypes:
    - ncclGin_C*
    - ncclTeam
    - int
    - bool
    - ncclGinSignal_t
    - ncclGinSignalOp_t
    - uint64_t
    - ncclCoopAny
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 688
    functionName: ncclGinSignal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinSignal_v2
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinSignal(\n    ncclGin_C* net,\n    ncclTeam
      team, int peer,\n    bool isSignal, ncclGinSignal_t signalId, ncclGinSignalOp_t
      signalOp, uint64_t signalOpArg,\n    ncclCoopAny coop,\n    bool isDescriptor,
      ncclGinDescriptorSmem* descriptor,\n    cuda::thread_scope givenRelease, cuda::thread_scope
      requiredRelease\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:695,1
    - Dst: ncclGinCall<ncclGinApi_Flush>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:696,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:696,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - coop
    - ord
    argTypes:
    - Coop
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 698
    functionName: ncclGin_BackendMask<beMask>::flush
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - Coop::sync
    - ncclGin_BackendMask<beMask>::_makeCtx
    - ncclGinCall<ncclGinApi_Flush>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::flush(Coop coop, cuda::memory_order
      ord) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:705,1
    - Dst: ncclGin_C_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:706,1
    - Dst: ncclGinCall<ncclGinApi_Flush>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:707,1
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - net
    - coop
    - ord
    argTypes:
    - ncclGin_C*
    - ncclCoopAny
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 709
    functionName: ncclGinFlush
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGin_C_makeCtx
    - ncclCoopAny::sync
    - ncclGinCall<ncclGinApi_Flush>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinFlush(\n    ncclGin_C* net,\n    ncclCoopAny
      coop,\n    cuda::memory_order ord\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:720,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:721,1
    - Dst: ncclGinCall<ncclGinApi_GetCounterPtr>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:722,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:722,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:725,1
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:726,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:726,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:728,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - coop
    - counter
    - least
    - bits
    - ord
    argTypes:
    - Coop
    - ncclGinCounter_t
    - uint64_t
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 729
    functionName: ncclGin_BackendMask<beMask>::waitCounter
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - ncclGinCall<ncclGinApi_GetCounterPtr>
    - nccl::utility::rollingLessEq
    - Coop::sync
    - testAbort
    - load
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::waitCounter(\n    Coop
      coop, ncclGinCounter_t counter, uint64_t least, int bits, cuda::memory_order
      ord\n  ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:741,1
    - Dst: ncclCoopAny::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:742,1
    - Dst: ncclGin_C_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:743,1
    - Dst: ncclGinCall<ncclGinApi_GetCounterPtr>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:744,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:747,1
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:748,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:748,1
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 6
    argNames:
    - net
    - coop
    - counter
    - least
    - bits
    - ord
    argTypes:
    - ncclGin_C*
    - ncclCoopAny
    - ncclGinCounter_t
    - uint64_t
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 751
    functionName: ncclGinWaitCounter
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinCall<ncclGinApi_GetCounterPtr>
    - nccl::utility::rollingLessEq
    - ncclCoopAny::sync
    - load
    - testAbort
    - ncclGin_C_makeCtx
    - ncclCoopAny::thread_rank
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinWaitCounter(\n    ncclGin_C* net,\n    ncclCoopAny
      coop,\n    ncclGinCounter_t counter,\n    uint64_t least,\n    int bits,\n    cuda::memory_order
      ord\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinCall<ncclGinApi_GetCounterPtr>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:757,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:757,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - counter
    - bits
    - ord
    argTypes:
    - ncclGinCounter_t
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 760
    functionName: ncclGin_BackendMask<beMask>::readCounter
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - ncclGinCall<ncclGinApi_GetCounterPtr>
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::readCounter(ncclGinCounter_t
      counter, int bits, cuda::memory_order ord) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGin_C_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:768,1
    - Dst: ncclGinCall<ncclGinApi_GetCounterPtr>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:769,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - net
    - counter
    - bits
    - ord
    argTypes:
    - ncclGin_C*
    - ncclGinCounter_t
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 772
    functionName: ncclGinReadCounter
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGin_C_makeCtx
    - ncclGinCall<ncclGinApi_GetCounterPtr>
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinReadCounter(\n    ncclGin_C* net,\n    ncclGinCounter_t
      counter,\n    int bits,\n    cuda::memory_order ord\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signal
    argTypes:
    - ncclGinSignal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 779
    functionName: ncclGin_BackendMask<beMask>::getSignalShadowPtr
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * ncclGin_BackendMask<beMask>::getSignalShadowPtr(ncclGinSignal_t
      signal) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - net
    - signal
    argTypes:
    - ncclGin_C*
    - ncclGinSignal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 786
    functionName: ncclGinGetSignalShadowPtr
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE * ncclGinGetSignalShadowPtr(\n    ncclGin_C* net,\n
      \   ncclGinSignal_t signal\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - signal
    - delta
    argTypes:
    - ncclGinSignal_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 793
    functionName: ncclGin_BackendMask<beMask>::increaseSignalShadow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::increaseSignalShadow(ncclGinSignal_t
      signal, uint64_t delta) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinCall<ncclGinApi_GetSignalPtr>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:799,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:799,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - signal
    - bits
    - ord
    argTypes:
    - ncclGinSignal_t
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 802
    functionName: ncclGin_BackendMask<beMask>::readSignal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinCall<ncclGinApi_GetSignalPtr>
    - ncclGin_BackendMask<beMask>::_makeCtx
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::readSignal(ncclGinSignal_t
      signal, int bits, cuda::memory_order ord) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetLocalPointer
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:806,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - signalWindow
    - signalOffset
    - bits
    - ord
    argTypes:
    - ncclWindow_t
    - size_t
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 809
    functionName: ncclGin_BackendMask<beMask>::readSignal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - load
    - ncclGetLocalPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::readSignal(ncclWindow_t
      signalWindow, size_t signalOffset, int bits, cuda::memory_order ord) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGin_C_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:817,1
    - Dst: ncclGinCall<ncclGinApi_GetSignalPtr>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:818,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - net
    - signal
    - bits
    - ord
    argTypes:
    - ncclGin_C*
    - ncclGinSignal_t
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 821
    functionName: ncclGinReadSignal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGin_C_makeCtx
    - ncclGinCall<ncclGinApi_GetSignalPtr>
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinReadSignal(\n    ncclGin_C* net,\n    ncclGinSignal_t
      signal,\n    int bits,\n    cuda::memory_order ord\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:830,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:831,1
    - Dst: ncclGinCall<ncclGinApi_Wait>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:832,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:832,1
    - Dst: ncclGin_isDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:833,1
    - Dst: ncclGin_getDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:833,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' request'
    - coop
    - descriptor
    - ord
    argTypes:
    - ncclGinRequest_t
    - Coop
    - DescriptorSmem
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 836
    functionName: ncclGin_BackendMask<beMask>::wait
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - ncclGin_isDescriptor
    - Coop::sync
    - ncclGinCall<ncclGinApi_Wait>
    - ncclGin_getDescriptor
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::wait(ncclGinRequest_t&
      request, Coop coop,\n                                                          DescriptorSmem
      descriptor, cuda::memory_order ord) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:843,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:844,1
    - Dst: ncclGinCall<ncclGinApi_FlushAsync>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:845,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:845,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:845,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - team
    - peer
    - outRequest
    - coop
    - optFlags
    argTypes:
    - ncclTeam
    - uint32_t
    - ncclGinRequest_t*
    - Coop
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 849
    functionName: ncclGin_BackendMask<beMask>::flushAsync
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - Coop::sync
    - ncclGinCall<ncclGinApi_FlushAsync>
    - teamRankToGinRank
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::flushAsync(ncclTeam
      team, uint32_t peer, ncclGinRequest_t* outRequest,\n                                                                Coop
      coop, uint32_t optFlags) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:862,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:863,1
    - Dst: ncclGin_isDeviceOnly
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:864,1
    - Dst: ncclGinCall<ncclGinApi_Get>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:865,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:866,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:867,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:868,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:869,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:870,1
    - Dst: ncclGin_isDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:871,1
    - Dst: ncclGin_getDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:872,1
    - Dst: ncclGinCall<ncclGinApi_Get>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:876,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:877,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:878,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:879,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:880,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:881,1
    - Dst: ncclGin_isDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:882,1
    - Dst: ncclGin_getDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:883,1
    - Dst: nccl::gin::internal::findSegmentFromWindow
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:889,1
    - Dst: nccl::gin::internal::findSegmentFromWindow
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:890,1
    - Dst: nccl::gin::internal::getSegmentChunkSize
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:897,1
    - Dst: ncclGinCall<ncclGinApi_Get>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:898,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:899,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:900,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:902,1
    - Dst: ncclGin_isDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:904,1
    - Dst: ncclGin_getDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:905,1
    - Dst: nccl::gin::internal::advanceSegmentCursor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:908,1
    - Dst: nccl::gin::internal::advanceSegmentCursor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:909,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:913,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 11
    argNames:
    - team
    - peer
    - remoteWnd
    - remoteOffset
    - localWnd
    - localOffset
    - bytes
    - coop
    - descriptor
    - optFlags
    - bufType
    argTypes:
    - ncclTeam
    - int
    - ncclWindow_t
    - size_t
    - ncclWindow_t
    - size_t
    - size_t
    - Coop
    - DescriptorSmem
    - uint32_t
    - SegmentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 914
    functionName: ncclGin_BackendMask<beMask>::get
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - nccl::gin::internal::advanceSegmentCursor
    - ncclGin_isDescriptor
    - loadConst
    - Coop::sync
    - ncclGin_getDescriptor
    - nccl::gin::internal::findSegmentFromWindow
    - ncclGin_isDeviceOnly
    - teamRankToGinRank
    - nccl::gin::internal::getSegmentChunkSize
    - ncclGinCall<ncclGinApi_Get>
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::get(\n    ncclTeam
      team, int peer,\n    ncclWindow_t remoteWnd, size_t remoteOffset,\n    ncclWindow_t
      localWnd, size_t localOffset,\n    size_t bytes, Coop coop,\n    DescriptorSmem
      descriptor,\n    uint32_t optFlags, SegmentType bufType) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:928,1
    - Dst: ncclGin_C_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:929,1
    - Dst: ncclGinCall<ncclGinApi_Get>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:930,1
    - Dst: teamRankToGinRank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:931,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:932,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:933,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:934,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:935,1
    - Dst: ncclGin_isDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:936,1
    - Dst: ncclGin_getDescriptor
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:937,1
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 12
    argNames:
    - net
    - team
    - peer
    - remoteWnd
    - remoteOffset
    - localWnd
    - localOffset
    - bytes
    - coop
    - isDescriptor
    - descriptor
    - optFlags
    argTypes:
    - ncclGin_C*
    - ncclTeam
    - int
    - ncclWindow_t
    - size_t
    - ncclWindow_t
    - size_t
    - size_t
    - ncclCoopAny
    - bool
    - ncclGinDescriptorSmem*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 940
    functionName: ncclGinGet
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGin_isDescriptor
    - loadConst
    - ncclCoopAny::sync
    - ncclGin_getDescriptor
    - teamRankToGinRank
    - ncclGin_C_makeCtx
    - ncclGinCall<ncclGinApi_Get>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinGet(\n  ncclGin_C* net,\n  ncclTeam team,
      int peer,\n  ncclWindow_t remoteWnd, size_t remoteOffset,\n  ncclWindow_t localWnd,
      size_t localOffset, size_t bytes,\n  ncclCoopAny coop,\n  bool isDescriptor,\n
      \ ncclGinDescriptorSmem* descriptor,\n  uint32_t optFlags\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:949,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:950,1
    - Dst: ncclGinCall<ncclGinApi_GetSignalPtr>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:951,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:951,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:954,1
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:955,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:955,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:957,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - coop
    - signal
    - least
    - bits
    - ord
    argTypes:
    - Coop
    - ncclGinSignal_t
    - uint64_t
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 958
    functionName: ncclGin_BackendMask<beMask>::waitSignal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - nccl::utility::rollingLessEq
    - Coop::sync
    - load
    - testAbort
    - ncclGinCall<ncclGinApi_GetSignalPtr>
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::waitSignal(Coop coop,
      ncclGinSignal_t signal, uint64_t least, int bits, cuda::memory_order ord) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:966,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:967,1
    - Dst: ncclGetLocalPointer
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:968,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:972,1
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:973,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:973,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:975,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - coop
    - signalWindow
    - signalOffset
    - least
    - bits
    - ord
    argTypes:
    - Coop
    - ncclWindow_t
    - size_t
    - uint64_t
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 962
    functionDepth: 2
    functionLinenumber: 962
    functionLinenumberEnd: 976
    functionName: ncclGin_BackendMask<beMask>::waitSignal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - nccl::utility::rollingLessEq
    - Coop::sync
    - ncclGetLocalPointer
    - testAbort
    - load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::waitSignal(Coop coop,
      ncclWindow_t signalWindow, size_t signalOffset, uint64_t least, int bits, cuda::memory_order
      ord) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:988,1
    - Dst: ncclCoopAny::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:989,1
    - Dst: ncclGin_C_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:990,1
    - Dst: ncclGinCall<ncclGinApi_GetSignalPtr>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:991,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:994,1
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:995,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:995,1
    - Dst: ncclCoopAny::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 6
    argNames:
    - net
    - coop
    - signal
    - least
    - bits
    - ord
    argTypes:
    - ncclGin_C*
    - ncclCoopAny
    - ncclGinSignal_t
    - uint64_t
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 998
    functionName: ncclGinWaitSignal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinCall<ncclGinApi_GetSignalPtr>
    - nccl::utility::rollingLessEq
    - ncclCoopAny::sync
    - load
    - testAbort
    - ncclGin_C_makeCtx
    - ncclCoopAny::thread_rank
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinWaitSignal(\n    ncclGin_C* net,\n    ncclCoopAny
      coop,\n    ncclGinSignal_t signal,\n    uint64_t least,\n    int bits,\n    cuda::memory_order
      ord\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1007,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1008,1
    - Dst: ncclGinCall<ncclGinApi_GetSignalPtr>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1009,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1009,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1013,1
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1014,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1014,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1016,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - coop
    - signal
    - bits
    - ord
    argTypes:
    - Coop
    - ncclGinSignal_t
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1017
    functionName: ncclGin_BackendMask<beMask>::waitSignalMeetShadow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - nccl::utility::rollingLessEq
    - Coop::sync
    - load
    - testAbort
    - ncclGinCall<ncclGinApi_GetSignalPtr>
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::waitSignalMeetShadow(Coop
      coop, ncclGinSignal_t signal, int bits, cuda::memory_order ord) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1026,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1029,1
    - Dst: ncclGinCall<ncclGinApi_GetSignalPtr>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1030,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1030,1
    - Dst: load
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1032,1
    - Dst: nccl::utility::rollingLessEq
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1033,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1033,1
    - Dst: ncclCoopWithinWarp
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1036,1
    - Dst: ncclCoopBcast
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1038,1
    - Dst: ncclCoopBcast
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1043,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 7
    argNames:
    - coop
    - signal
    - leastDelta
    - before
    - delta
    - bits
    - ord
    argTypes:
    - Coop
    - ncclGinSignal_t
    - Uint
    - Uint*
    - Uint*
    - int
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1047
    functionName: ncclGin_BackendMask<beMask>::waitSignalFollowShadow
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - nccl::utility::rollingLessEq
    - ncclCoopWithinWarp
    - Coop::sync
    - load
    - ncclCoopBcast
    - testAbort
    - ncclGinCall<ncclGinApi_GetSignalPtr>
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::waitSignalFollowShadow(Coop
      coop, ncclGinSignal_t signal, Uint leastDelta, Uint* before, Uint* delta, int
      bits, cuda::memory_order ord) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinCall<ncclGinApi_ResetCounter>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1053,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - counter
    argTypes:
    - ncclGinCounter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1054
    functionName: ncclGin_BackendMask<beMask>::resetCounter
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGin_BackendMask<beMask>::_makeCtx
    - ncclGinCall<ncclGinApi_ResetCounter>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::resetCounter(ncclGinCounter_t
      counter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGin_C_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1060,1
    - Dst: ncclGinCall<ncclGinApi_ResetCounter>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - net
    - counter
    argTypes:
    - ncclGin_C*
    - ncclGinCounter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1062
    functionName: ncclGinResetCounter
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGin_C_makeCtx
    - ncclGinCall<ncclGinApi_ResetCounter>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinResetCounter(\n    ncclGin_C* net,\n    ncclGinCounter_t
      counter\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinCall<ncclGinApi_ResetSignal>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1071,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - signal
    argTypes:
    - ncclGinSignal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1073
    functionName: ncclGin_BackendMask<beMask>::resetSignal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinCall<ncclGinApi_ResetSignal>
    - ncclGin_BackendMask<beMask>::_makeCtx
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::resetSignal(ncclGinSignal_t
      signal) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::internal::ncclGinWindow_t::getGinWindow
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1079,1
    - Dst: nccl::gin::internal::windowOffsetToGinOffset
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1080,1
    - Dst: ncclGinCall<ncclGinApi_ResetSignal>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1082,1
    - Dst: ncclGin_BackendMask<beMask>::_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - signalWindow
    - signalOffset
    argTypes:
    - ncclWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1083
    functionName: ncclGin_BackendMask<beMask>::resetSignal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGinCall<ncclGinApi_ResetSignal>
    - nccl::gin::internal::ncclGinWindow_t::getGinWindow
    - ncclGin_BackendMask<beMask>::_makeCtx
    - nccl::gin::internal::windowOffsetToGinOffset
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ncclGin_BackendMask<beMask>::resetSignal(ncclWindow_t
      signalWindow, size_t signalOffset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGin_C_makeCtx
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1089,1
    - Dst: ncclGinCall<ncclGinApi_ResetSignal>
      Src: /src/nccl/src/include/nccl_device/impl/gin__funcs.h:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - net
    - signal
    argTypes:
    - ncclGin_C*
    - ncclGinSignal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1095
    functionName: ncclGinResetSignal
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
    functionUses: 0
    functionsReached:
    - ncclGin_C_makeCtx
    - ncclGinCall<ncclGinApi_ResetSignal>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE ncclGinResetSignal(\n    ncclGin_C* net,\n    ncclGinSignal_t
      signal\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:43,1
    - Dst: Coop::size
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:44,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:45,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:64,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:69,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:76,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:80,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:86,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:98,1
    - Dst: reducePack
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:99,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:107,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:119,1
    - Dst: reducePack
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 8
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - ' redOp'
    - totalPacks
    - basePackIdx
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - RedOp
    - IntCount
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 125
    functionName: nccl::utility::reduceCopyLoopCoreImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - reducePack
    - castPack<AccEltType, PackEltType, Pack::Count>
    - Coop::size
    - min
    - srcLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE reduceCopyLoopCoreImpl(\n    Coop coop,\n    SrcLambda
      srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    RedOp const& redOp,\n
      \   IntCount totalPacks,\n    IntCount basePackIdx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:64,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: nccl::utility::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - srcLambda
    - castPack<AccEltType, PackEltType, Pack::Count>
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (SINGLE_SRC)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: nccl::utility::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:43,1
    - Dst: Coop::size
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:44,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:45,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:64,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:69,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:76,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:80,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:86,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:98,1
    - Dst: reducePack
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:99,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:107,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:119,1
    - Dst: reducePack
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 8
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - ' redOp'
    - totalPacks
    - basePackIdx
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - RedOp
    - IntCount
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 125
    functionName: nccl::utility::reduceCopyLoopCoreImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - reducePack
    - castPack<AccEltType, PackEltType, Pack::Count>
    - Coop::size
    - min
    - srcLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE reduceCopyLoopCoreImpl(\n    Coop coop,\n    SrcLambda
      srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    RedOp const& redOp,\n
      \   IntCount totalPacks,\n    IntCount basePackIdx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:64,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: nccl::utility::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - srcLambda
    - castPack<AccEltType, PackEltType, Pack::Count>
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (SINGLE_SRC)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: nccl::utility::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: nccl::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: nccl::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: nccl::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: nccl::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: nccl::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:43,1
    - Dst: Coop::size
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:44,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:45,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:64,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:69,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:76,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:80,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:86,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:98,1
    - Dst: reducePack
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:99,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:107,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:119,1
    - Dst: reducePack
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 8
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - ' redOp'
    - totalPacks
    - basePackIdx
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - RedOp
    - IntCount
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 125
    functionName: nccl::utility::reduceCopyLoopCoreImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - reducePack
    - castPack<AccEltType, PackEltType, Pack::Count>
    - Coop::size
    - min
    - srcLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE reduceCopyLoopCoreImpl(\n    Coop coop,\n    SrcLambda
      srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    RedOp const& redOp,\n
      \   IntCount totalPacks,\n    IntCount basePackIdx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:64,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: nccl::utility::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - srcLambda
    - castPack<AccEltType, PackEltType, Pack::Count>
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (SINGLE_SRC)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: nccl::utility::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:43,1
    - Dst: Coop::size
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:44,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:45,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:64,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:69,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:76,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:80,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:86,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:98,1
    - Dst: reducePack
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:99,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:107,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:119,1
    - Dst: reducePack
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 8
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - ' redOp'
    - totalPacks
    - basePackIdx
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - RedOp
    - IntCount
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 125
    functionName: nccl::utility::reduceCopyLoopCoreImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - Coop::thread_rank
    - reducePack
    - castPack<AccEltType, PackEltType, Pack::Count>
    - Coop::size
    - min
    - srcLambda
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE reduceCopyLoopCoreImpl(\n    Coop coop,\n    SrcLambda
      srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    RedOp const& redOp,\n
      \   IntCount totalPacks,\n    IntCount basePackIdx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:64,1
    - Dst: castPack<AccEltType, PackEltType, Pack::Count>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: nccl::utility::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - srcLambda
    - castPack<AccEltType, PackEltType, Pack::Count>
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (SINGLE_SRC)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: nccl::utility::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: nccl::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: nccl::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: nccl::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: nccl::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: nccl::NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: NCCL_IF_CONSTEXPR
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_IF_CONSTEXPR (CHECK_BOUNDS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: "reduceCopyLoopCoreImpl<UNROLL_PACKS, /*nSrc=*/1, T, Pack, RedOp, IntCount,
        Coop, srcMultimem, dstMultimem,\n                           SrcLambda, DstLambda,
        CHECK_BOUNDS, /*singleSrc=*/true>"
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:266,1
    - Dst: "reduceCopyLoopCoreImpl<UNROLL_DIV4_SAFE, /*nSrc=*/4, T, Pack, RedOp, IntCount,
        Coop, srcMultimem, dstMultimem,\n                               SrcLambda,
        DstLambda, CHECK_BOUNDS, /*singleSrc=*/false>"
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:274,1
    - Dst: "reduceCopyLoopCoreImpl<UNROLL_PACKS, /*nSrc=*/1, T, Pack, RedOp, IntCount,
        Coop, srcMultimem, dstMultimem,\n                           SrcLambda, DstLambda,
        CHECK_BOUNDS, /*singleSrc=*/false>"
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 8
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - ' redOp'
    - totalPacks
    - basePackIdx
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - RedOp
    - IntCount
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 304
    functionName: reduceCopyLoopCore
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - "reduceCopyLoopCoreImpl<UNROLL_PACKS, /*nSrc=*/1, T, Pack, RedOp, IntCount,
      Coop, srcMultimem, dstMultimem,\n                           SrcLambda, DstLambda,
      CHECK_BOUNDS, /*singleSrc=*/false>"
    - "reduceCopyLoopCoreImpl<UNROLL_PACKS, /*nSrc=*/1, T, Pack, RedOp, IntCount,
      Coop, srcMultimem, dstMultimem,\n                           SrcLambda, DstLambda,
      CHECK_BOUNDS, /*singleSrc=*/true>"
    - "reduceCopyLoopCoreImpl<UNROLL_DIV4_SAFE, /*nSrc=*/4, T, Pack, RedOp, IntCount,
      Coop, srcMultimem, dstMultimem,\n                               SrcLambda, DstLambda,
      CHECK_BOUNDS, /*singleSrc=*/false>"
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE reduceCopyLoopCore(\n    Coop coop,\n    SrcLambda
      srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    RedOp const& redOp,\n
      \   IntCount totalPacks,\n    IntCount basePackIdx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: safeDiv<IntCount>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - count
    - coopSize
    - stride
    - nSrc
    argTypes:
    - IntCount
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 354
    functionName: ReduceCopyLoopParams
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - safeDiv<IntCount>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE ReduceCopyLoopParams(IntCount count, int coopSize,
      int stride, int nSrc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Coop::size
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:366,1
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:369,1
    - Dst: reduceCopyLoopCore
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:380,1
    - Dst: reduceCopyLoopCore
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - ' redOp'
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - RedOp
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 394
    functionName: reduceCopyLoop
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - Coop::size
    - min
    - reduceCopyLoopCore
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE reduceCopyLoop(\n    Coop coop,\n    SrcLambda
      srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    RedOp const& redOp,\n
      \   IntCount count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:412,1
    - Dst: reinterpret_cast<Pack*>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:413,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:416,1
    - Dst: reinterpret_cast<Pack*>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:417,1
    - Dst: reduceCopyLoop
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - ' redOp'
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - RedOp
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 427
    functionName: reduceCopyScalarLoop
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 0
    functionsReached:
    - srcLambda
    - reduceCopyLoop
    - dstLambda
    - reinterpret_cast<Pack*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE reduceCopyScalarLoop(\n    Coop coop,\n    SrcLambda
      srcLambda, int nSrc,\n    DstLambda dstLambda, int nDst,\n    RedOp const& redOp,\n
      \   IntCount count)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: reduceCopyScalarLoop
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:448,1
    - Dst: srcLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:461,1
    - Dst: dstLambda
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:464,1
    - Dst: srcRemaining
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:470,1
    - Dst: dstRemaining
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:471,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:472,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:473,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:476,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:476,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:486,1
    - Dst: safeDiv
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:487,1
    - Dst: safeDiv<IntCount>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:490,1
    - Dst: reduceCopyLoop
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:492,1
    - Dst: srcRemaining
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:505,1
    - Dst: dstRemaining
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:506,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:507,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:508,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:509,1
    - Dst: static_cast<intptr_t>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:509,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:515,1
    - Dst: nccl::utility::getAlignment
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:516,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:522,1
    - Dst: safeDiv
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:523,1
    - Dst: safeDiv<IntCount>
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:526,1
    - Dst: srcRemaining
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:529,1
    - Dst: dstRemaining
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:532,1
    - Dst: reduceCopyLoop
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:534,1
    - Dst: srcRemaining
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:548,1
    - Dst: dstRemaining
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:551,1
    - Dst: reduceCopyScalarLoop
      Src: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h:555,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 7
    argNames:
    - coop
    - srcLambda
    - nSrc
    - dstLambda
    - nDst
    - ' redOp'
    - count
    argTypes:
    - Coop
    - SrcLambda
    - int
    - DstLambda
    - int
    - RedOp
    - IntCount
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 558
    functionName: reduceCopy
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    functionUses: 15
    functionsReached:
    - static_cast<int>
    - safeDiv
    - dstRemaining
    - reinterpret_cast<uintptr_t>
    - safeDiv<IntCount>
    - srcLambda
    - static_cast<intptr_t>
    - nccl::utility::getAlignment
    - reduceCopyScalarLoop
    - dstLambda
    - srcRemaining
    - reduceCopyLoop
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE reduceCopy(\n    Coop coop,\n    SrcLambda srcLambda,
      int nSrc,\n    DstLambda dstLambda, int nDst,\n    RedOp const& redOp,\n    IntCount
      count,\n    IntCount alignOffset = 0,\n    int maxPackBytes = 16)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__types.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__types.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: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const T*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__types.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__types.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: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const T*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__types.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__types.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: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const T*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__types.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T*>
      Src: /src/nccl/src/include/nccl_device/impl/vector__types.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: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const T*>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nccl::utility::elts
    functionSourceFile: /src/nccl/src/include/nccl_device/impl/vector__types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * elts() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __popc
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:168,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:171,1
    - Dst: call
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:172,1
    - Dst: static_cast<Arg&&>
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:172,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:176,1
    - Dst: call
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:177,1
    - Dst: static_cast<Arg&&>
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:177,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - beMask
    - ctx
    argTypes:
    - unsigned
    - ncclGinCtx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 182
    functionName: decltype(auto)::ncclGinCallImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    functionUses: 0
    functionsReached:
    - __popc
    - __builtin_unreachable
    - call
    - static_cast<Arg&&>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE decltype(auto) ncclGinCallImpl(unsigned beMask,
      ncclGinCtx ctx, Arg&&... arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decltype(auto)::ncclGinCallImpl
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:186,1
    - Dst: static_cast<Arg&&>
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ncclGinCtx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: decltype(auto)::ncclGinCall
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    functionUses: 0
    functionsReached:
    - decltype(auto)::ncclGinCallImpl
    - static_cast<Arg&&>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE decltype(auto) ncclGinCall(ncclGinCtx ctx, Arg&&...
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decltype(auto)::ncclGinCallImpl
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:191,1
    - Dst: static_cast<Arg&&>
      Src: /src/nccl/src/include/nccl_device/gin/gin_device_common.h:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ncclGinCtx_M<beMask>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: decltype(auto)::ncclGinCall
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    functionUses: 0
    functionsReached:
    - decltype(auto)::ncclGinCallImpl
    - static_cast<Arg&&>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE decltype(auto) ncclGinCall(ncclGinCtx_M<beMask>
      ctx, Arg&&... arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ginOptFlags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE docaOptFlagsFromGinOptFlags(uint32_t ginOptFlags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:60,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:63,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:67,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:73,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:82,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:87,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:88,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:91,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:97,1
    - Dst: doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD,
        resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:102,1
    - Dst: doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:106,1
    - Dst: doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:109,1
    - Dst: doca_gpu_dev_verbs_put<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:112,1
    - Dst: doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:116,1
    - Dst: doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:119,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:125,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:126,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:129,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 130
    functionName: nccl::gin::gdaki::putImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_put<resource_sharing_mode>
    - doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    - doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImplMode(ncclGinCtx ctx, Coop coop, int peer,
      bool hasWins,\n                                              ncclGinWindow_t
      dstWin, size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:144,1
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 158
    functionName: nccl::gin::gdaki::putImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImpl(ncclGinCtx ctx, Coop coop, int peer, bool
      hasWins,\n                                              ncclGinWindow_t dstWin,
      size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:170,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:171,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:173,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:175,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:187,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:193,1
    - Dst: doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:197,1
    - Dst: doca_gpu_dev_verbs_p<T, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:200,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:204,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: nccl::gin::gdaki::putValueImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - doca_gpu_dev_verbs_p<T, resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImplMode(ncclGinCtx ctx, Coop coop, int
      peer, ncclGinWindow_t dstWin,\n                                      size_t
      dstOff, T srcData, bool hasSignal,\n                                      size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:220,1
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: nccl::gin::gdaki::putValueImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putValueImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImpl(ncclGinCtx ctx, Coop coop, int peer,
      ncclGinWindow_t dstWin,\n                                      size_t dstOff,
      T srcData, bool hasSignal,\n                                      size_t signalOffset,
      __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ginOptFlags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE docaOptFlagsFromGinOptFlags(uint32_t ginOptFlags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:60,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:63,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:67,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:73,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:82,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:87,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:88,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:91,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:97,1
    - Dst: doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD,
        resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:102,1
    - Dst: doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:106,1
    - Dst: doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:109,1
    - Dst: doca_gpu_dev_verbs_put<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:112,1
    - Dst: doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:116,1
    - Dst: doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:119,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:125,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:126,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:129,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 130
    functionName: nccl::gin::gdaki::putImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_put<resource_sharing_mode>
    - doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    - doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImplMode(ncclGinCtx ctx, Coop coop, int peer,
      bool hasWins,\n                                              ncclGinWindow_t
      dstWin, size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:144,1
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 158
    functionName: nccl::gin::gdaki::putImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImpl(ncclGinCtx ctx, Coop coop, int peer, bool
      hasWins,\n                                              ncclGinWindow_t dstWin,
      size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:170,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:171,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:173,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:175,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:187,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:193,1
    - Dst: doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:197,1
    - Dst: doca_gpu_dev_verbs_p<T, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:200,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:204,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: nccl::gin::gdaki::putValueImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - doca_gpu_dev_verbs_p<T, resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImplMode(ncclGinCtx ctx, Coop coop, int
      peer, ncclGinWindow_t dstWin,\n                                      size_t
      dstOff, T srcData, bool hasSignal,\n                                      size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:220,1
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: nccl::gin::gdaki::putValueImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putValueImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImpl(ncclGinCtx ctx, Coop coop, int peer,
      ncclGinWindow_t dstWin,\n                                      size_t dstOff,
      T srcData, bool hasSignal,\n                                      size_t signalOffset,
      __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ginOptFlags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE docaOptFlagsFromGinOptFlags(uint32_t ginOptFlags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:60,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:63,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:67,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:73,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:82,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:87,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:88,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:91,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:97,1
    - Dst: doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD,
        resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:102,1
    - Dst: doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:106,1
    - Dst: doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:109,1
    - Dst: doca_gpu_dev_verbs_put<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:112,1
    - Dst: doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:116,1
    - Dst: doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:119,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:125,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:126,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:129,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 130
    functionName: nccl::gin::gdaki::putImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 2
    functionsReached:
    - doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_put<resource_sharing_mode>
    - doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    - doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImplMode(ncclGinCtx ctx, Coop coop, int peer,
      bool hasWins,\n                                              ncclGinWindow_t
      dstWin, size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:144,1
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 158
    functionName: nccl::gin::gdaki::putImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImpl(ncclGinCtx ctx, Coop coop, int peer, bool
      hasWins,\n                                              ncclGinWindow_t dstWin,
      size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:170,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:171,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:173,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:175,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:187,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:193,1
    - Dst: doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:197,1
    - Dst: doca_gpu_dev_verbs_p<T, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:200,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:204,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: nccl::gin::gdaki::putValueImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 2
    functionsReached:
    - doca_gpu_dev_verbs_p<T, resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImplMode(ncclGinCtx ctx, Coop coop, int
      peer, ncclGinWindow_t dstWin,\n                                      size_t
      dstOff, T srcData, bool hasSignal,\n                                      size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:220,1
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: nccl::gin::gdaki::putValueImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putValueImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImpl(ncclGinCtx ctx, Coop coop, int peer,
      ncclGinWindow_t dstWin,\n                                      size_t dstOff,
      T srcData, bool hasSignal,\n                                      size_t signalOffset,
      __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ginOptFlags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE docaOptFlagsFromGinOptFlags(uint32_t ginOptFlags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:60,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:63,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:67,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:73,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:82,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:87,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:88,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:91,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:97,1
    - Dst: doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD,
        resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:102,1
    - Dst: doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:106,1
    - Dst: doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:109,1
    - Dst: doca_gpu_dev_verbs_put<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:112,1
    - Dst: doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:116,1
    - Dst: doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:119,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:125,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:126,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:129,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 130
    functionName: nccl::gin::gdaki::putImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 3
    functionsReached:
    - doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_put<resource_sharing_mode>
    - doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    - doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImplMode(ncclGinCtx ctx, Coop coop, int peer,
      bool hasWins,\n                                              ncclGinWindow_t
      dstWin, size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:144,1
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 158
    functionName: nccl::gin::gdaki::putImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImpl(ncclGinCtx ctx, Coop coop, int peer, bool
      hasWins,\n                                              ncclGinWindow_t dstWin,
      size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:170,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:171,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:173,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:175,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:187,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:193,1
    - Dst: doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:197,1
    - Dst: doca_gpu_dev_verbs_p<T, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:200,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:204,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: nccl::gin::gdaki::putValueImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 3
    functionsReached:
    - doca_gpu_dev_verbs_p<T, resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImplMode(ncclGinCtx ctx, Coop coop, int
      peer, ncclGinWindow_t dstWin,\n                                      size_t
      dstOff, T srcData, bool hasSignal,\n                                      size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:220,1
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: nccl::gin::gdaki::putValueImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putValueImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImpl(ncclGinCtx ctx, Coop coop, int peer,
      ncclGinWindow_t dstWin,\n                                      size_t dstOff,
      T srcData, bool hasSignal,\n                                      size_t signalOffset,
      __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ginOptFlags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE docaOptFlagsFromGinOptFlags(uint32_t ginOptFlags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:60,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:63,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:67,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:73,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:82,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:87,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:88,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:91,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:97,1
    - Dst: doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD,
        resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:102,1
    - Dst: doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:106,1
    - Dst: doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:109,1
    - Dst: doca_gpu_dev_verbs_put<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:112,1
    - Dst: doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:116,1
    - Dst: doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:119,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:125,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:126,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:129,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 130
    functionName: nccl::gin::gdaki::putImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 4
    functionsReached:
    - doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_put<resource_sharing_mode>
    - doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    - doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImplMode(ncclGinCtx ctx, Coop coop, int peer,
      bool hasWins,\n                                              ncclGinWindow_t
      dstWin, size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:144,1
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 158
    functionName: nccl::gin::gdaki::putImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImpl(ncclGinCtx ctx, Coop coop, int peer, bool
      hasWins,\n                                              ncclGinWindow_t dstWin,
      size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:170,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:171,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:173,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:175,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:187,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:193,1
    - Dst: doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:197,1
    - Dst: doca_gpu_dev_verbs_p<T, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:200,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:204,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: nccl::gin::gdaki::putValueImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 4
    functionsReached:
    - doca_gpu_dev_verbs_p<T, resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImplMode(ncclGinCtx ctx, Coop coop, int
      peer, ncclGinWindow_t dstWin,\n                                      size_t
      dstOff, T srcData, bool hasSignal,\n                                      size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:220,1
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: nccl::gin::gdaki::putValueImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putValueImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImpl(ncclGinCtx ctx, Coop coop, int peer,
      ncclGinWindow_t dstWin,\n                                      size_t dstOff,
      T srcData, bool hasSignal,\n                                      size_t signalOffset,
      __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ginOptFlags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE docaOptFlagsFromGinOptFlags(uint32_t ginOptFlags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:60,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:63,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:67,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:73,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:82,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:87,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:88,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:91,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:97,1
    - Dst: doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD,
        resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:102,1
    - Dst: doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:106,1
    - Dst: doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:109,1
    - Dst: doca_gpu_dev_verbs_put<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:112,1
    - Dst: doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:116,1
    - Dst: doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:119,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:125,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:126,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:129,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 130
    functionName: nccl::gin::gdaki::putImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 5
    functionsReached:
    - doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_put<resource_sharing_mode>
    - doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    - doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImplMode(ncclGinCtx ctx, Coop coop, int peer,
      bool hasWins,\n                                              ncclGinWindow_t
      dstWin, size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:144,1
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 158
    functionName: nccl::gin::gdaki::putImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImpl(ncclGinCtx ctx, Coop coop, int peer, bool
      hasWins,\n                                              ncclGinWindow_t dstWin,
      size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:170,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:171,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:173,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:175,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:187,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:193,1
    - Dst: doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:197,1
    - Dst: doca_gpu_dev_verbs_p<T, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:200,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:204,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: nccl::gin::gdaki::putValueImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 5
    functionsReached:
    - doca_gpu_dev_verbs_p<T, resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImplMode(ncclGinCtx ctx, Coop coop, int
      peer, ncclGinWindow_t dstWin,\n                                      size_t
      dstOff, T srcData, bool hasSignal,\n                                      size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:220,1
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: nccl::gin::gdaki::putValueImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putValueImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImpl(ncclGinCtx ctx, Coop coop, int peer,
      ncclGinWindow_t dstWin,\n                                      size_t dstOff,
      T srcData, bool hasSignal,\n                                      size_t signalOffset,
      __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ginOptFlags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE docaOptFlagsFromGinOptFlags(uint32_t ginOptFlags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:60,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:63,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:67,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:73,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:82,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:87,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:88,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:91,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:97,1
    - Dst: doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD,
        resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:102,1
    - Dst: doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:106,1
    - Dst: doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:109,1
    - Dst: doca_gpu_dev_verbs_put<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:112,1
    - Dst: doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:116,1
    - Dst: doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:119,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:125,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:126,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:129,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 130
    functionName: nccl::gin::gdaki::putImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 6
    functionsReached:
    - doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_put<resource_sharing_mode>
    - doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    - doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImplMode(ncclGinCtx ctx, Coop coop, int peer,
      bool hasWins,\n                                              ncclGinWindow_t
      dstWin, size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:144,1
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 158
    functionName: nccl::gin::gdaki::putImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImpl(ncclGinCtx ctx, Coop coop, int peer, bool
      hasWins,\n                                              ncclGinWindow_t dstWin,
      size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:170,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:171,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:173,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:175,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:187,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:193,1
    - Dst: doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:197,1
    - Dst: doca_gpu_dev_verbs_p<T, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:200,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:204,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: nccl::gin::gdaki::putValueImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 6
    functionsReached:
    - doca_gpu_dev_verbs_p<T, resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImplMode(ncclGinCtx ctx, Coop coop, int
      peer, ncclGinWindow_t dstWin,\n                                      size_t
      dstOff, T srcData, bool hasSignal,\n                                      size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:220,1
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: nccl::gin::gdaki::putValueImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putValueImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImpl(ncclGinCtx ctx, Coop coop, int peer,
      ncclGinWindow_t dstWin,\n                                      size_t dstOff,
      T srcData, bool hasSignal,\n                                      size_t signalOffset,
      __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ginOptFlags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE docaOptFlagsFromGinOptFlags(uint32_t ginOptFlags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:60,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:63,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:67,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:72,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:73,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:82,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:87,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:88,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:89,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:91,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:97,1
    - Dst: doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD,
        resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:102,1
    - Dst: doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:106,1
    - Dst: doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:109,1
    - Dst: doca_gpu_dev_verbs_put<resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:112,1
    - Dst: doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:116,1
    - Dst: doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:119,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:125,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:126,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:129,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 130
    functionName: nccl::gin::gdaki::putImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 7
    functionsReached:
    - doca_gpu_dev_verbs_put_counter<resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_put<resource_sharing_mode>
    - doca_gpu_dev_verbs_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    - doca_gpu_dev_verbs_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - doca_gpu_dev_verbs_put_signal_counter<DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImplMode(ncclGinCtx ctx, Coop coop, int peer,
      bool hasWins,\n                                              ncclGinWindow_t
      dstWin, size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:144,1
    - Dst: nccl::gin::gdaki::putImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 21
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 158
    functionName: nccl::gin::gdaki::putImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putImpl(ncclGinCtx ctx, Coop coop, int peer, bool
      hasWins,\n                                              ncclGinWindow_t dstWin,
      size_t dstOff, ncclGinWindow_t srcWin,\n                                              size_t
      srcOff, size_t bytes, bool hasSignal,\n                                              size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                              uint64_t
      signalOpArg, bool hasCounter,\n                                              ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                              ncclGinDescriptorSmem*
      descriptor,\n                                              cuda::thread_scope
      required, cuda::thread_scope given,\n                                              uint32_t
      optFlags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:170,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:171,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:173,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:175,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:179,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:187,1
    - Dst: doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:193,1
    - Dst: doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:197,1
    - Dst: doca_gpu_dev_verbs_p<T, resource_sharing_mode>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:200,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:204,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: nccl::gin::gdaki::putValueImplMode
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 7
    functionsReached:
    - doca_gpu_dev_verbs_p<T, resource_sharing_mode>
    - doca_gpu_dev_verbs_fence_release<DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS>
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_p_signal<T, DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD, resource_sharing_mode>
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    - doca_gpu_dev_verbs_wait
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImplMode(ncclGinCtx ctx, Coop coop, int
      peer, ncclGinWindow_t dstWin,\n                                      size_t
      dstOff, T srcData, bool hasSignal,\n                                      size_t
      signalOffset, __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:220,1
    - Dst: nccl::gin::gdaki::putValueImplMode
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 16
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcData
    - hasSignal
    - signalOffset
    - signalKey
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - size_t
    - __be32
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: nccl::gin::gdaki::putValueImpl
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 0
    functionsReached:
    - nccl::gin::gdaki::putValueImplMode
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE putValueImpl(ncclGinCtx ctx, Coop coop, int peer,
      ncclGinWindow_t dstWin,\n                                      size_t dstOff,
      T srcData, bool hasSignal,\n                                      size_t signalOffset,
      __be32 signalKey, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:246,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:247,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:249,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:254,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:254,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:256,1
    - Dst: nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:259,1
    - Dst: doca_gpu_dev_verbs_get
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:260,1
    - Dst: Coop::sync
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 10
    argNames:
    - ctx
    - coop
    - peer
    - remoteWin
    - remoteOff
    - localWin
    - localOff
    - bytes
    - hasDescriptor
    - descriptor
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - ncclGinDescriptorSmem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 264
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - Coop::thread_rank
    - loadConst
    - Coop::sync
    - doca_gpu_dev_verbs_get
    - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE call(ncclGinCtx ctx, Coop coop, int peer, ncclGinWindow_t
      remoteWin, size_t remoteOff,\n                                      ncclGinWindow_t
      localWin, size_t localOff, size_t bytes,\n                                      bool
      hasDescriptor, ncclGinDescriptorSmem* descriptor,\n                                      uint32_t
      optFlags = ncclGinOptFlagsDefault)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ncclGinGdakiRequest*>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:271,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:274,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:277,1
    - Dst: "doca_gpu_dev_verbs_mcst<\n        DOCA_GPUNETIO_VERBS_RESOURCE_SHARING_MODE_GPU,\n
        \       DOCA_GPUNETIO_VERBS_NIC_HANDLER_AUTO>"
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - peer
    - outRequest
    - optFlags
    argTypes:
    - ncclGinCtx
    - int
    - ncclGinRequest_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - loadConst
    - reinterpret_cast<ncclGinGdakiRequest*>
    - "doca_gpu_dev_verbs_mcst<\n        DOCA_GPUNETIO_VERBS_RESOURCE_SHARING_MODE_GPU,\n
      \       DOCA_GPUNETIO_VERBS_NIC_HANDLER_AUTO>"
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE call(ncclGinCtx ctx, int peer, ncclGinRequest_t*
      outRequest, uint32_t optFlags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ncclGinGdakiRequest&>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:292,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:294,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:298,1
    - Dst: doca_gpu_dev_verbs_poll_one_cq_at
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:299,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - ctx
    - ' request'
    - hasDescriptor
    - descriptor
    - ord
    - abortFlag
    argTypes:
    - ncclGinCtx
    - ncclGinRequest_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 304
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - loadConst
    - reinterpret_cast<ncclGinGdakiRequest&>
    - doca_gpu_dev_verbs_wait
    - testAbort
    - doca_gpu_dev_verbs_poll_one_cq_at
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE call(ncclGinCtx ctx, ncclGinRequest_t& request,
      bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor, cuda::memory_order ord, uint32_t* abortFlag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:325,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:326,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:326,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:329,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:329,1
    - Dst: nccl::gin::gdaki::putImpl
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 18
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - signal
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 338
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - loadConst
    - nccl::gin::gdaki::putImpl
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE call(ncclGinCtx ctx, Coop coop, int peer, bool
      hasWins,\n                                      ncclGinWindow_t dstWin, size_t
      dstOff, ncclGinWindow_t srcWin,\n                                      size_t
      srcOff, size_t bytes,\n                                      ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasCounter,\n                                      ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags
      = ncclGinOptFlagsDefault)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:357,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:357,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:361,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:362,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:362,1
    - Dst: nccl::gin::gdaki::putValueImpl
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 13
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcVal
    - signal
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 369
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - loadConst
    - nccl::gin::gdaki::putValueImpl
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE call(ncclGinCtx ctx, Coop coop, int peer, ncclGinWindow_t
      dstWin,\n                                      size_t dstOff, T srcVal,\n                                      ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags
      = ncclGinOptFlagsDefault)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - counterId
    argTypes:
    - ncclGinCtx
    - ncclGinCounter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 378
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE call(ncclGinCtx ctx, ncclGinCounter_t counterId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetLocalPointer
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:386,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - signal
    argTypes:
    - ncclGinCtx
    - ncclGinSignalDescriptor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 392
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - loadConst
    - ncclGetLocalPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE call(ncclGinCtx ctx, ncclGinSignalDescriptor signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - counterId
    argTypes:
    - ncclGinCtx
    - ncclGinCounter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * call(ncclGinCtx ctx, ncclGinCounter_t counterId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - signalId
    argTypes:
    - ncclGinCtx
    - ncclGinSignal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * call(ncclGinCtx ctx, ncclGinSignal_t signalId)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:422,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:427,1
    - Dst: Coop::size
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:427,1
    - Dst: doca_gpu_dev_verbs_atomic_read<uint64_t, DOCA_GPUNETIO_VERBS_RESOURCE_SHARING_MODE_GPU>
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:429,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:433,1
    - Dst: doca_gpu_dev_verbs_poll_one_cq_at
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:434,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:439,1
    - Dst: Coop::size
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:439,1
    - Dst: doca_gpu_dev_verbs_wait
      Src: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h:440,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - coop
    - ord
    - abortFlag
    argTypes:
    - ncclGinCtx
    - Coop
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 443
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    functionUses: 1
    functionsReached:
    - Coop::thread_rank
    - loadConst
    - doca_gpu_dev_verbs_atomic_read<uint64_t, DOCA_GPUNETIO_VERBS_RESOURCE_SHARING_MODE_GPU>
    - Coop::size
    - doca_gpu_dev_verbs_wait
    - testAbort
    - doca_gpu_dev_verbs_poll_one_cq_at
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE call(ncclGinCtx ctx, Coop coop, cuda::memory_order
      ord, uint32_t* abortFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:40,1
    - Dst: rollingLessEq<uint32_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 5
    argNames:
    - proxyCtx
    - pe
    - nextGfdIdx
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: nccl::gin::proxy::waitForGfdComplete
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - rollingLessEq<uint32_t>
    - loadConst
    - testAbort
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE waitForGfdComplete(ncclGinProxyGpuCtx_t* proxyCtx,
      uint32_t pe, uint32_t nextGfdIdx, cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:50,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:51,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:52,1
    - Dst: nccl::gin::proxy::waitForGfdComplete
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - proxyCtx
    - pe
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nccl::gin::proxy::flush
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::waitForGfdComplete
    - loadConst
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE flush(ncclGinProxyGpuCtx_t* proxyCtx, uint32_t pe,
      cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:60,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:62,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:63,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:64,1
    - Dst: cuda::atomic_ref::fetch_add
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:66,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:71,1
    - Dst: __stwt
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - coop
    - proxyCtx
    - gfd
    - pe
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - ncclGinProxyGfd_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: nccl::gin::proxy::postGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - cuda::atomic_ref::fetch_add
    - Coop::thread_rank
    - cuda::atomic_ref::load
    - loadConst
    - __stwt
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE postGfd(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,
      ncclGinProxyGfd_t* gfd,\n                                uint32_t pe, uint32_t*
      gfdIdx = nullptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 14
    argNames:
    - gfd
    - op
    - srcVal
    - hasInline
    - srcOff
    - srcHandle
    - dstOff
    - dstHandle
    - size
    - counterId
    - signalId
    - signalVal
    - signalWindow
    - signalOff
    argTypes:
    - ncclGinProxyGfd_t*
    - ncclGinProxyOp_t
    - T
    - bool
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinCounter_t
    - ncclGinSignal_t
    - uint64_t
    - ncclGinWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: nccl::gin::proxy::buildGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: __device__
    signature: "__device__ buildGfd(ncclGinProxyGfd_t* gfd, ncclGinProxyOp_t op, T
      srcVal,\n                                         bool hasInline, size_t srcOff,
      ncclGinWindow_t srcHandle,\n                                         size_t
      dstOff, ncclGinWindow_t dstHandle, size_t size,\n                                         ncclGinCounter_t
      counterId, ncclGinSignal_t signalId,\n                                         uint64_t
      signalVal, ncclGinWindow_t signalWindow,\n                                         size_t
      signalOff)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:155,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:165,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 7
    argNames:
    - ' op'
    - isGet
    - isFlush
    - hasInline
    - signalType
    - signalOp
    - hasCounter
    argTypes:
    - ncclGinProxyOp_t
    - bool
    - bool
    - bool
    - ncclGinSignalType
    - ncclGinSignalOp_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: nccl::gin::proxy::constructProxyOp
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - static_cast<ncclGinProxyOp_t>
    - static_cast<uint16_t>
    linkageType: ''
    returnType: __device__
    signature: "__device__ constructProxyOp(ncclGinProxyOp_t& op, bool isGet, bool
      isFlush, bool hasInline,\n                                                 ncclGinSignalType
      signalType, ncclGinSignalOp_t signalOp,\n                                                 bool
      hasCounter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:178,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:180,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:181,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 9
    argNames:
    - coop
    - proxyCtx
    - peer
    - remoteWnd
    - remoteOff
    - localWnd
    - localOff
    - bytes
    - desc
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinProxyGfd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: nccl::gin::proxy::get
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - min
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE get(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,\n
      \                           int peer, ncclGinWindow_t remoteWnd, size_t remoteOff,\n
      \                           ncclGinWindow_t localWnd, size_t localOff, size_t
      bytes,\n                            ncclGinProxyGfd_t* desc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cuda::atomic_thread_fence
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:199,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:205,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:206,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:209,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:231,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:235,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:236,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:238,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:244,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:245,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 18
    argNames:
    - coop
    - gfd
    - proxyCtx
    - peer
    - dstWnd
    - dstOff
    - srcVal
    - hasInline
    - srcWnd
    - srcOff
    - bytes
    - signal
    - signalOp
    - signalVal
    - hasCounter
    - counterId
    - required
    - given
    argTypes:
    - Coop
    - ncclGinProxyGfd_t*
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 249
    functionName: nccl::gin::proxy::put
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - cuda::atomic_thread_fence
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE put(Coop coop, ncclGinProxyGfd_t* gfd, ncclGinProxyGpuCtx_t*
      proxyCtx,\n                            int peer, ncclGinWindow_t dstWnd, size_t
      dstOff, T srcVal,\n                            bool hasInline, ncclGinWindow_t
      srcWnd, size_t srcOff, size_t bytes,\n                            ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                            uint64_t signalVal,
      bool hasCounter, ncclGinCounter_t counterId,\n                            cuda::thread_scope
      required, cuda::thread_scope given)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:40,1
    - Dst: rollingLessEq<uint32_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 5
    argNames:
    - proxyCtx
    - pe
    - nextGfdIdx
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: nccl::gin::proxy::waitForGfdComplete
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 1
    functionsReached:
    - rollingLessEq<uint32_t>
    - loadConst
    - testAbort
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE waitForGfdComplete(ncclGinProxyGpuCtx_t* proxyCtx,
      uint32_t pe, uint32_t nextGfdIdx, cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:50,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:51,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:52,1
    - Dst: nccl::gin::proxy::waitForGfdComplete
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - proxyCtx
    - pe
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nccl::gin::proxy::flush
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::waitForGfdComplete
    - loadConst
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE flush(ncclGinProxyGpuCtx_t* proxyCtx, uint32_t pe,
      cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:60,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:62,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:63,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:64,1
    - Dst: cuda::atomic_ref::fetch_add
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:66,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:71,1
    - Dst: __stwt
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - coop
    - proxyCtx
    - gfd
    - pe
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - ncclGinProxyGfd_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: nccl::gin::proxy::postGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - cuda::atomic_ref::fetch_add
    - Coop::thread_rank
    - cuda::atomic_ref::load
    - loadConst
    - __stwt
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE postGfd(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,
      ncclGinProxyGfd_t* gfd,\n                                uint32_t pe, uint32_t*
      gfdIdx = nullptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 14
    argNames:
    - gfd
    - op
    - srcVal
    - hasInline
    - srcOff
    - srcHandle
    - dstOff
    - dstHandle
    - size
    - counterId
    - signalId
    - signalVal
    - signalWindow
    - signalOff
    argTypes:
    - ncclGinProxyGfd_t*
    - ncclGinProxyOp_t
    - T
    - bool
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinCounter_t
    - ncclGinSignal_t
    - uint64_t
    - ncclGinWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: nccl::gin::proxy::buildGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: __device__
    signature: "__device__ buildGfd(ncclGinProxyGfd_t* gfd, ncclGinProxyOp_t op, T
      srcVal,\n                                         bool hasInline, size_t srcOff,
      ncclGinWindow_t srcHandle,\n                                         size_t
      dstOff, ncclGinWindow_t dstHandle, size_t size,\n                                         ncclGinCounter_t
      counterId, ncclGinSignal_t signalId,\n                                         uint64_t
      signalVal, ncclGinWindow_t signalWindow,\n                                         size_t
      signalOff)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:155,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:165,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 7
    argNames:
    - ' op'
    - isGet
    - isFlush
    - hasInline
    - signalType
    - signalOp
    - hasCounter
    argTypes:
    - ncclGinProxyOp_t
    - bool
    - bool
    - bool
    - ncclGinSignalType
    - ncclGinSignalOp_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: nccl::gin::proxy::constructProxyOp
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 2
    functionsReached:
    - __builtin_unreachable
    - static_cast<ncclGinProxyOp_t>
    - static_cast<uint16_t>
    linkageType: ''
    returnType: __device__
    signature: "__device__ constructProxyOp(ncclGinProxyOp_t& op, bool isGet, bool
      isFlush, bool hasInline,\n                                                 ncclGinSignalType
      signalType, ncclGinSignalOp_t signalOp,\n                                                 bool
      hasCounter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:178,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:180,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:181,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 9
    argNames:
    - coop
    - proxyCtx
    - peer
    - remoteWnd
    - remoteOff
    - localWnd
    - localOff
    - bytes
    - desc
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinProxyGfd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: nccl::gin::proxy::get
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - min
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE get(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,\n
      \                           int peer, ncclGinWindow_t remoteWnd, size_t remoteOff,\n
      \                           ncclGinWindow_t localWnd, size_t localOff, size_t
      bytes,\n                            ncclGinProxyGfd_t* desc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cuda::atomic_thread_fence
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:199,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:205,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:206,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:209,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:231,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:235,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:236,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:238,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:244,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:245,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 18
    argNames:
    - coop
    - gfd
    - proxyCtx
    - peer
    - dstWnd
    - dstOff
    - srcVal
    - hasInline
    - srcWnd
    - srcOff
    - bytes
    - signal
    - signalOp
    - signalVal
    - hasCounter
    - counterId
    - required
    - given
    argTypes:
    - Coop
    - ncclGinProxyGfd_t*
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 249
    functionName: nccl::gin::proxy::put
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - cuda::atomic_thread_fence
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE put(Coop coop, ncclGinProxyGfd_t* gfd, ncclGinProxyGpuCtx_t*
      proxyCtx,\n                            int peer, ncclGinWindow_t dstWnd, size_t
      dstOff, T srcVal,\n                            bool hasInline, ncclGinWindow_t
      srcWnd, size_t srcOff, size_t bytes,\n                            ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                            uint64_t signalVal,
      bool hasCounter, ncclGinCounter_t counterId,\n                            cuda::thread_scope
      required, cuda::thread_scope given)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:40,1
    - Dst: rollingLessEq<uint32_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 5
    argNames:
    - proxyCtx
    - pe
    - nextGfdIdx
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: nccl::gin::proxy::waitForGfdComplete
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 2
    functionsReached:
    - rollingLessEq<uint32_t>
    - loadConst
    - testAbort
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE waitForGfdComplete(ncclGinProxyGpuCtx_t* proxyCtx,
      uint32_t pe, uint32_t nextGfdIdx, cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:50,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:51,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:52,1
    - Dst: nccl::gin::proxy::waitForGfdComplete
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - proxyCtx
    - pe
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nccl::gin::proxy::flush
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::waitForGfdComplete
    - loadConst
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE flush(ncclGinProxyGpuCtx_t* proxyCtx, uint32_t pe,
      cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:60,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:62,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:63,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:64,1
    - Dst: cuda::atomic_ref::fetch_add
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:66,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:71,1
    - Dst: __stwt
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - coop
    - proxyCtx
    - gfd
    - pe
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - ncclGinProxyGfd_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: nccl::gin::proxy::postGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - cuda::atomic_ref::fetch_add
    - Coop::thread_rank
    - cuda::atomic_ref::load
    - loadConst
    - __stwt
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE postGfd(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,
      ncclGinProxyGfd_t* gfd,\n                                uint32_t pe, uint32_t*
      gfdIdx = nullptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 14
    argNames:
    - gfd
    - op
    - srcVal
    - hasInline
    - srcOff
    - srcHandle
    - dstOff
    - dstHandle
    - size
    - counterId
    - signalId
    - signalVal
    - signalWindow
    - signalOff
    argTypes:
    - ncclGinProxyGfd_t*
    - ncclGinProxyOp_t
    - T
    - bool
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinCounter_t
    - ncclGinSignal_t
    - uint64_t
    - ncclGinWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: nccl::gin::proxy::buildGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: __device__
    signature: "__device__ buildGfd(ncclGinProxyGfd_t* gfd, ncclGinProxyOp_t op, T
      srcVal,\n                                         bool hasInline, size_t srcOff,
      ncclGinWindow_t srcHandle,\n                                         size_t
      dstOff, ncclGinWindow_t dstHandle, size_t size,\n                                         ncclGinCounter_t
      counterId, ncclGinSignal_t signalId,\n                                         uint64_t
      signalVal, ncclGinWindow_t signalWindow,\n                                         size_t
      signalOff)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:155,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:165,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 7
    argNames:
    - ' op'
    - isGet
    - isFlush
    - hasInline
    - signalType
    - signalOp
    - hasCounter
    argTypes:
    - ncclGinProxyOp_t
    - bool
    - bool
    - bool
    - ncclGinSignalType
    - ncclGinSignalOp_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: nccl::gin::proxy::constructProxyOp
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 4
    functionsReached:
    - __builtin_unreachable
    - static_cast<ncclGinProxyOp_t>
    - static_cast<uint16_t>
    linkageType: ''
    returnType: __device__
    signature: "__device__ constructProxyOp(ncclGinProxyOp_t& op, bool isGet, bool
      isFlush, bool hasInline,\n                                                 ncclGinSignalType
      signalType, ncclGinSignalOp_t signalOp,\n                                                 bool
      hasCounter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:178,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:180,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:181,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 9
    argNames:
    - coop
    - proxyCtx
    - peer
    - remoteWnd
    - remoteOff
    - localWnd
    - localOff
    - bytes
    - desc
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinProxyGfd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: nccl::gin::proxy::get
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - min
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE get(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,\n
      \                           int peer, ncclGinWindow_t remoteWnd, size_t remoteOff,\n
      \                           ncclGinWindow_t localWnd, size_t localOff, size_t
      bytes,\n                            ncclGinProxyGfd_t* desc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cuda::atomic_thread_fence
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:199,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:205,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:206,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:209,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:231,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:235,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:236,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:238,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:244,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:245,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 18
    argNames:
    - coop
    - gfd
    - proxyCtx
    - peer
    - dstWnd
    - dstOff
    - srcVal
    - hasInline
    - srcWnd
    - srcOff
    - bytes
    - signal
    - signalOp
    - signalVal
    - hasCounter
    - counterId
    - required
    - given
    argTypes:
    - Coop
    - ncclGinProxyGfd_t*
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 249
    functionName: nccl::gin::proxy::put
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - cuda::atomic_thread_fence
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE put(Coop coop, ncclGinProxyGfd_t* gfd, ncclGinProxyGpuCtx_t*
      proxyCtx,\n                            int peer, ncclGinWindow_t dstWnd, size_t
      dstOff, T srcVal,\n                            bool hasInline, ncclGinWindow_t
      srcWnd, size_t srcOff, size_t bytes,\n                            ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                            uint64_t signalVal,
      bool hasCounter, ncclGinCounter_t counterId,\n                            cuda::thread_scope
      required, cuda::thread_scope given)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:40,1
    - Dst: rollingLessEq<uint32_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 5
    argNames:
    - proxyCtx
    - pe
    - nextGfdIdx
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: nccl::gin::proxy::waitForGfdComplete
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 3
    functionsReached:
    - rollingLessEq<uint32_t>
    - loadConst
    - testAbort
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE waitForGfdComplete(ncclGinProxyGpuCtx_t* proxyCtx,
      uint32_t pe, uint32_t nextGfdIdx, cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:50,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:51,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:52,1
    - Dst: nccl::gin::proxy::waitForGfdComplete
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - proxyCtx
    - pe
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nccl::gin::proxy::flush
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::waitForGfdComplete
    - loadConst
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE flush(ncclGinProxyGpuCtx_t* proxyCtx, uint32_t pe,
      cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:60,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:62,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:63,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:64,1
    - Dst: cuda::atomic_ref::fetch_add
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:66,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:71,1
    - Dst: __stwt
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - coop
    - proxyCtx
    - gfd
    - pe
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - ncclGinProxyGfd_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: nccl::gin::proxy::postGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - cuda::atomic_ref::fetch_add
    - Coop::thread_rank
    - cuda::atomic_ref::load
    - loadConst
    - __stwt
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE postGfd(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,
      ncclGinProxyGfd_t* gfd,\n                                uint32_t pe, uint32_t*
      gfdIdx = nullptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 14
    argNames:
    - gfd
    - op
    - srcVal
    - hasInline
    - srcOff
    - srcHandle
    - dstOff
    - dstHandle
    - size
    - counterId
    - signalId
    - signalVal
    - signalWindow
    - signalOff
    argTypes:
    - ncclGinProxyGfd_t*
    - ncclGinProxyOp_t
    - T
    - bool
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinCounter_t
    - ncclGinSignal_t
    - uint64_t
    - ncclGinWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: nccl::gin::proxy::buildGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 6
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: __device__
    signature: "__device__ buildGfd(ncclGinProxyGfd_t* gfd, ncclGinProxyOp_t op, T
      srcVal,\n                                         bool hasInline, size_t srcOff,
      ncclGinWindow_t srcHandle,\n                                         size_t
      dstOff, ncclGinWindow_t dstHandle, size_t size,\n                                         ncclGinCounter_t
      counterId, ncclGinSignal_t signalId,\n                                         uint64_t
      signalVal, ncclGinWindow_t signalWindow,\n                                         size_t
      signalOff)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:155,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:165,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 7
    argNames:
    - ' op'
    - isGet
    - isFlush
    - hasInline
    - signalType
    - signalOp
    - hasCounter
    argTypes:
    - ncclGinProxyOp_t
    - bool
    - bool
    - bool
    - ncclGinSignalType
    - ncclGinSignalOp_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: nccl::gin::proxy::constructProxyOp
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 6
    functionsReached:
    - __builtin_unreachable
    - static_cast<ncclGinProxyOp_t>
    - static_cast<uint16_t>
    linkageType: ''
    returnType: __device__
    signature: "__device__ constructProxyOp(ncclGinProxyOp_t& op, bool isGet, bool
      isFlush, bool hasInline,\n                                                 ncclGinSignalType
      signalType, ncclGinSignalOp_t signalOp,\n                                                 bool
      hasCounter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:178,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:180,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:181,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 9
    argNames:
    - coop
    - proxyCtx
    - peer
    - remoteWnd
    - remoteOff
    - localWnd
    - localOff
    - bytes
    - desc
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinProxyGfd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: nccl::gin::proxy::get
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - min
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE get(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,\n
      \                           int peer, ncclGinWindow_t remoteWnd, size_t remoteOff,\n
      \                           ncclGinWindow_t localWnd, size_t localOff, size_t
      bytes,\n                            ncclGinProxyGfd_t* desc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cuda::atomic_thread_fence
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:199,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:205,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:206,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:209,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:231,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:235,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:236,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:238,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:244,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:245,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 18
    argNames:
    - coop
    - gfd
    - proxyCtx
    - peer
    - dstWnd
    - dstOff
    - srcVal
    - hasInline
    - srcWnd
    - srcOff
    - bytes
    - signal
    - signalOp
    - signalVal
    - hasCounter
    - counterId
    - required
    - given
    argTypes:
    - Coop
    - ncclGinProxyGfd_t*
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 249
    functionName: nccl::gin::proxy::put
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - cuda::atomic_thread_fence
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE put(Coop coop, ncclGinProxyGfd_t* gfd, ncclGinProxyGpuCtx_t*
      proxyCtx,\n                            int peer, ncclGinWindow_t dstWnd, size_t
      dstOff, T srcVal,\n                            bool hasInline, ncclGinWindow_t
      srcWnd, size_t srcOff, size_t bytes,\n                            ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                            uint64_t signalVal,
      bool hasCounter, ncclGinCounter_t counterId,\n                            cuda::thread_scope
      required, cuda::thread_scope given)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:40,1
    - Dst: rollingLessEq<uint32_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 5
    argNames:
    - proxyCtx
    - pe
    - nextGfdIdx
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: nccl::gin::proxy::waitForGfdComplete
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 4
    functionsReached:
    - rollingLessEq<uint32_t>
    - loadConst
    - testAbort
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE waitForGfdComplete(ncclGinProxyGpuCtx_t* proxyCtx,
      uint32_t pe, uint32_t nextGfdIdx, cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:50,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:51,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:52,1
    - Dst: nccl::gin::proxy::waitForGfdComplete
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - proxyCtx
    - pe
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nccl::gin::proxy::flush
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::waitForGfdComplete
    - loadConst
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE flush(ncclGinProxyGpuCtx_t* proxyCtx, uint32_t pe,
      cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:60,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:62,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:63,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:64,1
    - Dst: cuda::atomic_ref::fetch_add
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:66,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:71,1
    - Dst: __stwt
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - coop
    - proxyCtx
    - gfd
    - pe
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - ncclGinProxyGfd_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: nccl::gin::proxy::postGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - cuda::atomic_ref::fetch_add
    - Coop::thread_rank
    - cuda::atomic_ref::load
    - loadConst
    - __stwt
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE postGfd(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,
      ncclGinProxyGfd_t* gfd,\n                                uint32_t pe, uint32_t*
      gfdIdx = nullptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 14
    argNames:
    - gfd
    - op
    - srcVal
    - hasInline
    - srcOff
    - srcHandle
    - dstOff
    - dstHandle
    - size
    - counterId
    - signalId
    - signalVal
    - signalWindow
    - signalOff
    argTypes:
    - ncclGinProxyGfd_t*
    - ncclGinProxyOp_t
    - T
    - bool
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinCounter_t
    - ncclGinSignal_t
    - uint64_t
    - ncclGinWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: nccl::gin::proxy::buildGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 8
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: __device__
    signature: "__device__ buildGfd(ncclGinProxyGfd_t* gfd, ncclGinProxyOp_t op, T
      srcVal,\n                                         bool hasInline, size_t srcOff,
      ncclGinWindow_t srcHandle,\n                                         size_t
      dstOff, ncclGinWindow_t dstHandle, size_t size,\n                                         ncclGinCounter_t
      counterId, ncclGinSignal_t signalId,\n                                         uint64_t
      signalVal, ncclGinWindow_t signalWindow,\n                                         size_t
      signalOff)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:155,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:165,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 7
    argNames:
    - ' op'
    - isGet
    - isFlush
    - hasInline
    - signalType
    - signalOp
    - hasCounter
    argTypes:
    - ncclGinProxyOp_t
    - bool
    - bool
    - bool
    - ncclGinSignalType
    - ncclGinSignalOp_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: nccl::gin::proxy::constructProxyOp
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 8
    functionsReached:
    - __builtin_unreachable
    - static_cast<ncclGinProxyOp_t>
    - static_cast<uint16_t>
    linkageType: ''
    returnType: __device__
    signature: "__device__ constructProxyOp(ncclGinProxyOp_t& op, bool isGet, bool
      isFlush, bool hasInline,\n                                                 ncclGinSignalType
      signalType, ncclGinSignalOp_t signalOp,\n                                                 bool
      hasCounter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:178,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:180,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:181,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 9
    argNames:
    - coop
    - proxyCtx
    - peer
    - remoteWnd
    - remoteOff
    - localWnd
    - localOff
    - bytes
    - desc
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinProxyGfd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: nccl::gin::proxy::get
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - min
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE get(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,\n
      \                           int peer, ncclGinWindow_t remoteWnd, size_t remoteOff,\n
      \                           ncclGinWindow_t localWnd, size_t localOff, size_t
      bytes,\n                            ncclGinProxyGfd_t* desc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cuda::atomic_thread_fence
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:199,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:205,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:206,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:209,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:231,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:235,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:236,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:238,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:244,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:245,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 18
    argNames:
    - coop
    - gfd
    - proxyCtx
    - peer
    - dstWnd
    - dstOff
    - srcVal
    - hasInline
    - srcWnd
    - srcOff
    - bytes
    - signal
    - signalOp
    - signalVal
    - hasCounter
    - counterId
    - required
    - given
    argTypes:
    - Coop
    - ncclGinProxyGfd_t*
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 249
    functionName: nccl::gin::proxy::put
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - cuda::atomic_thread_fence
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE put(Coop coop, ncclGinProxyGfd_t* gfd, ncclGinProxyGpuCtx_t*
      proxyCtx,\n                            int peer, ncclGinWindow_t dstWnd, size_t
      dstOff, T srcVal,\n                            bool hasInline, ncclGinWindow_t
      srcWnd, size_t srcOff, size_t bytes,\n                            ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                            uint64_t signalVal,
      bool hasCounter, ncclGinCounter_t counterId,\n                            cuda::thread_scope
      required, cuda::thread_scope given)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:40,1
    - Dst: rollingLessEq<uint32_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 5
    argNames:
    - proxyCtx
    - pe
    - nextGfdIdx
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: nccl::gin::proxy::waitForGfdComplete
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 5
    functionsReached:
    - rollingLessEq<uint32_t>
    - loadConst
    - testAbort
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE waitForGfdComplete(ncclGinProxyGpuCtx_t* proxyCtx,
      uint32_t pe, uint32_t nextGfdIdx, cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:50,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:51,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:52,1
    - Dst: nccl::gin::proxy::waitForGfdComplete
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - proxyCtx
    - pe
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nccl::gin::proxy::flush
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::waitForGfdComplete
    - loadConst
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE flush(ncclGinProxyGpuCtx_t* proxyCtx, uint32_t pe,
      cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:60,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:62,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:63,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:64,1
    - Dst: cuda::atomic_ref::fetch_add
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:66,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:71,1
    - Dst: __stwt
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - coop
    - proxyCtx
    - gfd
    - pe
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - ncclGinProxyGfd_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: nccl::gin::proxy::postGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - cuda::atomic_ref::fetch_add
    - Coop::thread_rank
    - cuda::atomic_ref::load
    - loadConst
    - __stwt
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE postGfd(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,
      ncclGinProxyGfd_t* gfd,\n                                uint32_t pe, uint32_t*
      gfdIdx = nullptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 14
    argNames:
    - gfd
    - op
    - srcVal
    - hasInline
    - srcOff
    - srcHandle
    - dstOff
    - dstHandle
    - size
    - counterId
    - signalId
    - signalVal
    - signalWindow
    - signalOff
    argTypes:
    - ncclGinProxyGfd_t*
    - ncclGinProxyOp_t
    - T
    - bool
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinCounter_t
    - ncclGinSignal_t
    - uint64_t
    - ncclGinWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: nccl::gin::proxy::buildGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 10
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: __device__
    signature: "__device__ buildGfd(ncclGinProxyGfd_t* gfd, ncclGinProxyOp_t op, T
      srcVal,\n                                         bool hasInline, size_t srcOff,
      ncclGinWindow_t srcHandle,\n                                         size_t
      dstOff, ncclGinWindow_t dstHandle, size_t size,\n                                         ncclGinCounter_t
      counterId, ncclGinSignal_t signalId,\n                                         uint64_t
      signalVal, ncclGinWindow_t signalWindow,\n                                         size_t
      signalOff)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:155,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:165,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 7
    argNames:
    - ' op'
    - isGet
    - isFlush
    - hasInline
    - signalType
    - signalOp
    - hasCounter
    argTypes:
    - ncclGinProxyOp_t
    - bool
    - bool
    - bool
    - ncclGinSignalType
    - ncclGinSignalOp_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: nccl::gin::proxy::constructProxyOp
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 10
    functionsReached:
    - __builtin_unreachable
    - static_cast<ncclGinProxyOp_t>
    - static_cast<uint16_t>
    linkageType: ''
    returnType: __device__
    signature: "__device__ constructProxyOp(ncclGinProxyOp_t& op, bool isGet, bool
      isFlush, bool hasInline,\n                                                 ncclGinSignalType
      signalType, ncclGinSignalOp_t signalOp,\n                                                 bool
      hasCounter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:178,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:180,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:181,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 9
    argNames:
    - coop
    - proxyCtx
    - peer
    - remoteWnd
    - remoteOff
    - localWnd
    - localOff
    - bytes
    - desc
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinProxyGfd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: nccl::gin::proxy::get
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - min
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE get(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,\n
      \                           int peer, ncclGinWindow_t remoteWnd, size_t remoteOff,\n
      \                           ncclGinWindow_t localWnd, size_t localOff, size_t
      bytes,\n                            ncclGinProxyGfd_t* desc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cuda::atomic_thread_fence
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:199,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:205,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:206,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:209,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:231,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:235,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:236,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:238,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:244,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:245,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 18
    argNames:
    - coop
    - gfd
    - proxyCtx
    - peer
    - dstWnd
    - dstOff
    - srcVal
    - hasInline
    - srcWnd
    - srcOff
    - bytes
    - signal
    - signalOp
    - signalVal
    - hasCounter
    - counterId
    - required
    - given
    argTypes:
    - Coop
    - ncclGinProxyGfd_t*
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 249
    functionName: nccl::gin::proxy::put
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - cuda::atomic_thread_fence
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE put(Coop coop, ncclGinProxyGfd_t* gfd, ncclGinProxyGpuCtx_t*
      proxyCtx,\n                            int peer, ncclGinWindow_t dstWnd, size_t
      dstOff, T srcVal,\n                            bool hasInline, ncclGinWindow_t
      srcWnd, size_t srcOff, size_t bytes,\n                            ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                            uint64_t signalVal,
      bool hasCounter, ncclGinCounter_t counterId,\n                            cuda::thread_scope
      required, cuda::thread_scope given)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:40,1
    - Dst: rollingLessEq<uint32_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 5
    argNames:
    - proxyCtx
    - pe
    - nextGfdIdx
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: nccl::gin::proxy::waitForGfdComplete
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 6
    functionsReached:
    - rollingLessEq<uint32_t>
    - loadConst
    - testAbort
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE waitForGfdComplete(ncclGinProxyGpuCtx_t* proxyCtx,
      uint32_t pe, uint32_t nextGfdIdx, cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:50,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:51,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:52,1
    - Dst: nccl::gin::proxy::waitForGfdComplete
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - proxyCtx
    - pe
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nccl::gin::proxy::flush
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::waitForGfdComplete
    - loadConst
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE flush(ncclGinProxyGpuCtx_t* proxyCtx, uint32_t pe,
      cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:60,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:62,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:63,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:64,1
    - Dst: cuda::atomic_ref::fetch_add
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:66,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:71,1
    - Dst: __stwt
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - coop
    - proxyCtx
    - gfd
    - pe
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - ncclGinProxyGfd_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: nccl::gin::proxy::postGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - cuda::atomic_ref::fetch_add
    - Coop::thread_rank
    - cuda::atomic_ref::load
    - loadConst
    - __stwt
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE postGfd(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,
      ncclGinProxyGfd_t* gfd,\n                                uint32_t pe, uint32_t*
      gfdIdx = nullptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 14
    argNames:
    - gfd
    - op
    - srcVal
    - hasInline
    - srcOff
    - srcHandle
    - dstOff
    - dstHandle
    - size
    - counterId
    - signalId
    - signalVal
    - signalWindow
    - signalOff
    argTypes:
    - ncclGinProxyGfd_t*
    - ncclGinProxyOp_t
    - T
    - bool
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinCounter_t
    - ncclGinSignal_t
    - uint64_t
    - ncclGinWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: nccl::gin::proxy::buildGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 12
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: __device__
    signature: "__device__ buildGfd(ncclGinProxyGfd_t* gfd, ncclGinProxyOp_t op, T
      srcVal,\n                                         bool hasInline, size_t srcOff,
      ncclGinWindow_t srcHandle,\n                                         size_t
      dstOff, ncclGinWindow_t dstHandle, size_t size,\n                                         ncclGinCounter_t
      counterId, ncclGinSignal_t signalId,\n                                         uint64_t
      signalVal, ncclGinWindow_t signalWindow,\n                                         size_t
      signalOff)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:155,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:165,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 7
    argNames:
    - ' op'
    - isGet
    - isFlush
    - hasInline
    - signalType
    - signalOp
    - hasCounter
    argTypes:
    - ncclGinProxyOp_t
    - bool
    - bool
    - bool
    - ncclGinSignalType
    - ncclGinSignalOp_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: nccl::gin::proxy::constructProxyOp
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 12
    functionsReached:
    - __builtin_unreachable
    - static_cast<ncclGinProxyOp_t>
    - static_cast<uint16_t>
    linkageType: ''
    returnType: __device__
    signature: "__device__ constructProxyOp(ncclGinProxyOp_t& op, bool isGet, bool
      isFlush, bool hasInline,\n                                                 ncclGinSignalType
      signalType, ncclGinSignalOp_t signalOp,\n                                                 bool
      hasCounter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:178,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:180,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:181,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 9
    argNames:
    - coop
    - proxyCtx
    - peer
    - remoteWnd
    - remoteOff
    - localWnd
    - localOff
    - bytes
    - desc
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinProxyGfd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: nccl::gin::proxy::get
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - min
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE get(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,\n
      \                           int peer, ncclGinWindow_t remoteWnd, size_t remoteOff,\n
      \                           ncclGinWindow_t localWnd, size_t localOff, size_t
      bytes,\n                            ncclGinProxyGfd_t* desc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cuda::atomic_thread_fence
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:199,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:205,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:206,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:209,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:231,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:235,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:236,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:238,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:244,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:245,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 18
    argNames:
    - coop
    - gfd
    - proxyCtx
    - peer
    - dstWnd
    - dstOff
    - srcVal
    - hasInline
    - srcWnd
    - srcOff
    - bytes
    - signal
    - signalOp
    - signalVal
    - hasCounter
    - counterId
    - required
    - given
    argTypes:
    - Coop
    - ncclGinProxyGfd_t*
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 249
    functionName: nccl::gin::proxy::put
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - cuda::atomic_thread_fence
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE put(Coop coop, ncclGinProxyGfd_t* gfd, ncclGinProxyGpuCtx_t*
      proxyCtx,\n                            int peer, ncclGinWindow_t dstWnd, size_t
      dstOff, T srcVal,\n                            bool hasInline, ncclGinWindow_t
      srcWnd, size_t srcOff, size_t bytes,\n                            ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                            uint64_t signalVal,
      bool hasCounter, ncclGinCounter_t counterId,\n                            cuda::thread_scope
      required, cuda::thread_scope given)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:40,1
    - Dst: rollingLessEq<uint32_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    - Dst: testAbort
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 5
    argNames:
    - proxyCtx
    - pe
    - nextGfdIdx
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: nccl::gin::proxy::waitForGfdComplete
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 7
    functionsReached:
    - rollingLessEq<uint32_t>
    - loadConst
    - testAbort
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE waitForGfdComplete(ncclGinProxyGpuCtx_t* proxyCtx,
      uint32_t pe, uint32_t nextGfdIdx, cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:50,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:51,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:52,1
    - Dst: nccl::gin::proxy::waitForGfdComplete
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - proxyCtx
    - pe
    - ord
    - abortFlag
    argTypes:
    - ncclGinProxyGpuCtx_t*
    - uint32_t
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nccl::gin::proxy::flush
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::waitForGfdComplete
    - loadConst
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE flush(ncclGinProxyGpuCtx_t* proxyCtx, uint32_t pe,
      cuda::memory_order ord, uint32_t* abortFlag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:60,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:61,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:62,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:63,1
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:64,1
    - Dst: cuda::atomic_ref::fetch_add
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:66,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:71,1
    - Dst: __stwt
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - coop
    - proxyCtx
    - gfd
    - pe
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - ncclGinProxyGfd_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: nccl::gin::proxy::postGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - cuda::atomic_ref::fetch_add
    - Coop::thread_rank
    - cuda::atomic_ref::load
    - loadConst
    - __stwt
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE postGfd(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,
      ncclGinProxyGfd_t* gfd,\n                                uint32_t pe, uint32_t*
      gfdIdx = nullptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 14
    argNames:
    - gfd
    - op
    - srcVal
    - hasInline
    - srcOff
    - srcHandle
    - dstOff
    - dstHandle
    - size
    - counterId
    - signalId
    - signalVal
    - signalWindow
    - signalOff
    argTypes:
    - ncclGinProxyGfd_t*
    - ncclGinProxyOp_t
    - T
    - bool
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - ncclGinCounter_t
    - ncclGinSignal_t
    - uint64_t
    - ncclGinWindow_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: nccl::gin::proxy::buildGfd
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 14
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: __device__
    signature: "__device__ buildGfd(ncclGinProxyGfd_t* gfd, ncclGinProxyOp_t op, T
      srcVal,\n                                         bool hasInline, size_t srcOff,
      ncclGinWindow_t srcHandle,\n                                         size_t
      dstOff, ncclGinWindow_t dstHandle, size_t size,\n                                         ncclGinCounter_t
      counterId, ncclGinSignal_t signalId,\n                                         uint64_t
      signalVal, ncclGinWindow_t signalWindow,\n                                         size_t
      signalOff)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:137,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:142,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:149,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:152,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:155,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:159,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:162,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:164,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:165,1
    - Dst: static_cast<ncclGinProxyOp_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:167,1
    - Dst: static_cast<uint16_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 7
    argNames:
    - ' op'
    - isGet
    - isFlush
    - hasInline
    - signalType
    - signalOp
    - hasCounter
    argTypes:
    - ncclGinProxyOp_t
    - bool
    - bool
    - bool
    - ncclGinSignalType
    - ncclGinSignalOp_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: nccl::gin::proxy::constructProxyOp
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 14
    functionsReached:
    - __builtin_unreachable
    - static_cast<ncclGinProxyOp_t>
    - static_cast<uint16_t>
    linkageType: ''
    returnType: __device__
    signature: "__device__ constructProxyOp(ncclGinProxyOp_t& op, bool isGet, bool
      isFlush, bool hasInline,\n                                                 ncclGinSignalType
      signalType, ncclGinSignalOp_t signalOp,\n                                                 bool
      hasCounter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:178,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:180,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:181,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 9
    argNames:
    - coop
    - proxyCtx
    - peer
    - remoteWnd
    - remoteOff
    - localWnd
    - localOff
    - bytes
    - desc
    argTypes:
    - Coop
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinProxyGfd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: nccl::gin::proxy::get
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - min
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE get(Coop coop, ncclGinProxyGpuCtx_t* proxyCtx,\n
      \                           int peer, ncclGinWindow_t remoteWnd, size_t remoteOff,\n
      \                           ncclGinWindow_t localWnd, size_t localOff, size_t
      bytes,\n                            ncclGinProxyGfd_t* desc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cuda::atomic_thread_fence
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:199,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:205,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:206,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:209,1
    - Dst: __builtin_unreachable
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:231,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:235,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:236,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:238,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:244,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:245,1
    - Dst: nccl::gin::proxy::postGfd<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 18
    argNames:
    - coop
    - gfd
    - proxyCtx
    - peer
    - dstWnd
    - dstOff
    - srcVal
    - hasInline
    - srcWnd
    - srcOff
    - bytes
    - signal
    - signalOp
    - signalVal
    - hasCounter
    - counterId
    - required
    - given
    argTypes:
    - Coop
    - ncclGinProxyGfd_t*
    - ncclGinProxyGpuCtx_t*
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - bool
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 249
    functionName: nccl::gin::proxy::put
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - nccl::gin::proxy::postGfd<Coop>
    - nccl::gin::proxy::constructProxyOp
    - cuda::atomic_thread_fence
    - nccl::gin::proxy::buildGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE put(Coop coop, ncclGinProxyGfd_t* gfd, ncclGinProxyGpuCtx_t*
      proxyCtx,\n                            int peer, ncclGinWindow_t dstWnd, size_t
      dstOff, T srcVal,\n                            bool hasInline, ncclGinWindow_t
      srcWnd, size_t srcOff, size_t bytes,\n                            ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                            uint64_t signalVal,
      bool hasCounter, ncclGinCounter_t counterId,\n                            cuda::thread_scope
      required, cuda::thread_scope given)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::proxy::get<Coop>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - ctx
    - coop
    - peer
    - remoteWin
    - remoteOff
    - localWin
    - localOff
    - bytes
    - hasDescriptor
    - descriptor
    - optFlags
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - bool
    - ncclGinDescriptorSmem*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 1
    functionsReached:
    - nccl::gin::proxy::get<Coop>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE call(ncclGinCtx ctx, Coop coop, int peer, ncclGinWindow_t
      remoteWin, size_t remoteOff,\n                                      ncclGinWindow_t
      localWin, size_t localOff, size_t bytes,\n                                      bool
      hasDescriptor, ncclGinDescriptorSmem* descriptor,\n                                      uint32_t
      optFlags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ncclGinCpuProxyRequest*>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:272,1
    - Dst: loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:275,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - peer
    - outRequest
    - optFlags
    argTypes:
    - ncclGinCtx
    - int
    - ncclGinRequest_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<ncclGinCpuProxyRequest*>
    - loadConst
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE call(ncclGinCtx ctx, int peer, ncclGinRequest_t*
      outRequest, uint32_t optFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ncclGinCpuProxyRequest&>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:283,1
    - Dst: nccl::gin::proxy::waitForGfdComplete
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:285,1
    - Dst: nccl::gin::proxy::constructProxyOp
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:292,1
    - Dst: nccl::gin::proxy::buildGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:293,1
    - Dst: nccl::gin::proxy::postGfd
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:295,1
    - Dst: ncclCoopThread
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:295,1
    - Dst: nccl::gin::proxy::waitForGfdComplete
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - ' request'
    - hasDescriptor
    - descriptor
    - ord
    - abortFlag
    argTypes:
    - ncclGinCtx
    - ncclGinRequest_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 297
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 1
    functionsReached:
    - nccl::gin::proxy::constructProxyOp
    - reinterpret_cast<ncclGinCpuProxyRequest&>
    - ncclCoopThread
    - nccl::gin::proxy::buildGfd
    - nccl::gin::proxy::waitForGfdComplete
    - nccl::gin::proxy::postGfd
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE call(ncclGinCtx ctx, ncclGinRequest_t& request,
      bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor, cuda::memory_order ord, uint32_t* abortFlag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - counterId
    argTypes:
    - ncclGinCtx
    - ncclGinCounter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 1
    functionsReached:
    - nccl::utility::loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * call(ncclGinCtx ctx, ncclGinCounter_t counterId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - counterId
    argTypes:
    - ncclGinCtx
    - ncclGinCounter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 1
    functionsReached:
    - nccl::utility::loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE call(ncclGinCtx ctx, ncclGinCounter_t counterId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - signalId
    argTypes:
    - ncclGinCtx
    - ncclGinSignal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 1
    functionsReached:
    - nccl::utility::loadConst
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE * call(ncclGinCtx ctx, ncclGinSignal_t signalId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetLocalPointer
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:332,1
    - Dst: nccl::utility::loadConst
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - signal
    argTypes:
    - ncclGinCtx
    - ncclGinSignalDescriptor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 337
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 1
    functionsReached:
    - nccl::utility::loadConst
    - ncclGetLocalPointer
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE call(ncclGinCtx ctx, ncclGinSignalDescriptor signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Coop::thread_rank
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:347,1
    - Dst: Coop::size
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:347,1
    - Dst: nccl::gin::proxy::flush
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - coop
    - ord
    - abortFlag
    argTypes:
    - ncclGinCtx
    - Coop
    - cuda::memory_order
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 1
    functionsReached:
    - Coop::size
    - Coop::thread_rank
    - nccl::gin::proxy::flush
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: NCCL_DEVICE_INLINE call(ncclGinCtx ctx, Coop coop, cuda::memory_order
      ord, uint32_t* abortFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::proxy::put<Coop, uint64_t>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 18
    argNames:
    - ctx
    - coop
    - peer
    - hasWins
    - dstWin
    - dstOff
    - srcWin
    - srcOff
    - bytes
    - signal
    - signalOp
    - signalOpArg
    - hasCounter
    - counterId
    - hasDescriptor
    - descriptor
    - required
    - given
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - bool
    - ncclGinWindow_t
    - size_t
    - ncclGinWindow_t
    - size_t
    - size_t
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinCounter_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 371
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 1
    functionsReached:
    - nccl::gin::proxy::put<Coop, uint64_t>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE call(ncclGinCtx ctx, Coop coop, int peer, bool
      hasWins,\n                                      ncclGinWindow_t dstWin, size_t
      dstOff, ncclGinWindow_t srcWin,\n                                      size_t
      srcOff, size_t bytes,\n                                      ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasCounter,\n                                      ncclGinCounter_t
      counterId, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags
      = ncclGinOptFlagsDefault)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl::gin::proxy::put<Coop, T>
      Src: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 13
    argNames:
    - ctx
    - coop
    - peer
    - dstWin
    - dstOff
    - srcVal
    - signal
    - signalOp
    - signalOpArg
    - hasDescriptor
    - descriptor
    - required
    - given
    argTypes:
    - ncclGinCtx
    - Coop
    - int
    - ncclGinWindow_t
    - size_t
    - T
    - ncclGinSignalDescriptor
    - ncclGinSignalOp_t
    - uint64_t
    - bool
    - ncclGinDescriptorSmem*
    - cuda::thread_scope
    - cuda::thread_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 390
    functionName: call
    functionSourceFile: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    functionUses: 1
    functionsReached:
    - nccl::gin::proxy::put<Coop, T>
    linkageType: ''
    returnType: NCCL_DEVICE_INLINE
    signature: "NCCL_DEVICE_INLINE call(ncclGinCtx ctx, Coop coop, int peer, ncclGinWindow_t
      dstWin,\n                                      size_t dstOff, T srcVal,\n                                      ncclGinSignalDescriptor
      signal, ncclGinSignalOp_t signalOp,\n                                      uint64_t
      signalOpArg, bool hasDescriptor,\n                                      ncclGinDescriptorSmem*
      descriptor,\n                                      cuda::thread_scope required,
      cuda::thread_scope given,\n                                      uint32_t optFlags
      = ncclGinOptFlagsDefault)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/sendrecv_reg.cc:16,1
    - Dst: ncclNetGraphRegisterBuffer
      Src: /src/nccl/src/register/sendrecv_reg.cc:17,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/sendrecv_reg.cc:19,1
    - Dst: ncclNetLocalRegisterBuffer
      Src: /src/nccl/src/register/sendrecv_reg.cc:20,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: 24
      start: 11
    functionDepth: 6
    functionLinenumber: 11
    functionLinenumberEnd: 24
    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:32,1
    - Dst: ncclIpcGraphRegisterBuffer
      Src: /src/nccl/src/register/sendrecv_reg.cc:33,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/register/sendrecv_reg.cc:33,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/sendrecv_reg.cc:35,1
    - Dst: ncclIpcLocalRegisterBuffer
      Src: /src/nccl/src/register/sendrecv_reg.cc:36,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: 42
      start: 26
    functionDepth: 6
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: ncclRegisterP2pIpcBuffer
    functionSourceFile: /src/nccl/src/register/sendrecv_reg.cc
    functionUses: 1
    functionsReached:
    - ncclIpcLocalRegisterBuffer
    - ncclParamLocalRegister
    - reinterpret_cast<void*>
    - ncclIpcGraphRegisterBuffer
    - ncclParamGraphRegister
    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:25,1
    - Dst: canConnect
      Src: /src/nccl/src/register/coll_reg.cc:25,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: 33
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 33
    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:46,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:46,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/register/coll_reg.cc:57,1
    - Dst: ncclFuncSendCount
      Src: /src/nccl/src/register/coll_reg.cc:58,1
    - Dst: ncclFuncRecvCount
      Src: /src/nccl/src/register/coll_reg.cc:59,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:62,1
    - Dst: ncclNvlsGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:63,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:66,1
    - Dst: ncclNvlsLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:67,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:71,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:73,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:75,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:77,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:78,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:82,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:84,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:86,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:88,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:89,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:98,1
    - Dst: ncclNvlsRegResourcesQuery
      Src: /src/nccl/src/register/coll_reg.cc:98,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: 112
      start: 35
    functionDepth: 9
    functionLinenumber: 35
    functionLinenumberEnd: 112
    functionName: ncclRegisterCollNvlsBuffers
    functionSourceFile: /src/nccl/src/register/coll_reg.cc
    functionUses: 1
    functionsReached:
    - ncclFuncSendCount
    - ncclNvlsRegResourcesQuery
    - ncclCollnetLocalRegisterBuffer
    - NCCLCHECK
    - ncclTypeSize
    - ncclParamLocalRegister
    - ncclNvlsGraphRegisterBuffer
    - ncclParamGraphRegister
    - ncclFuncRecvCount
    - ncclCollnetGraphRegisterBuffer
    - ncclNvlsLocalRegisterBuffer
    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: 91
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:125,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:125,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/register/coll_reg.cc:137,1
    - Dst: ncclFuncSendCount
      Src: /src/nccl/src/register/coll_reg.cc:138,1
    - Dst: ncclFuncRecvCount
      Src: /src/nccl/src/register/coll_reg.cc:139,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:142,1
    - Dst: ncclNvlsLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:143,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:146,1
    - Dst: ncclNvlsGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:147,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:151,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:152,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:153,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:156,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:157,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:158,1
    - Dst: std::max
      Src: /src/nccl/src/register/coll_reg.cc:168,1
    - Dst: min
      Src: /src/nccl/src/register/coll_reg.cc:168,1
    - Dst: std::max
      Src: /src/nccl/src/register/coll_reg.cc:170,1
    - Dst: min
      Src: /src/nccl/src/register/coll_reg.cc:170,1
    - Dst: std::max
      Src: /src/nccl/src/register/coll_reg.cc:172,1
    - Dst: min
      Src: /src/nccl/src/register/coll_reg.cc:172,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/register/coll_reg.cc:193,1
    - Dst: ncclFuncSendCount
      Src: /src/nccl/src/register/coll_reg.cc:194,1
    - Dst: ncclFuncRecvCount
      Src: /src/nccl/src/register/coll_reg.cc:195,1
    - Dst: memset
      Src: /src/nccl/src/register/coll_reg.cc:197,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:211,1
    - Dst: registerCheckP2PConnection
      Src: /src/nccl/src/register/coll_reg.cc:211,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:227,1
    - Dst: ncclIpcGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:228,1
    - Dst: ncclIpcGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:229,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:231,1
    - Dst: ncclIpcLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:232,1
    - Dst: ncclIpcLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:233,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:246,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:247,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:248,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:253,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:255,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:259,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:291,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/register/coll_reg.cc:291,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:292,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:293,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/register/coll_reg.cc:293,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:294,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:295,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/coll_reg.cc:295,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:296,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/coll_reg.cc:296,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:297,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/coll_reg.cc:297,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:298,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/coll_reg.cc:298,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:299,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/coll_reg.cc:299,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:334,1
    - Dst: ncclIpcGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:335,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:337,1
    - Dst: ncclIpcLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:338,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:349,1
    - Dst: ncclNetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:351,1
    - Dst: ncclNetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:353,1
    - Dst: ncclNetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:356,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:358,1
    - Dst: ncclNetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:360,1
    - Dst: ncclNetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:362,1
    - Dst: ncclNetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:365,1
    - Dst: free
      Src: /src/nccl/src/register/coll_reg.cc:378,1
    - Dst: free
      Src: /src/nccl/src/register/coll_reg.cc:379,1
    - Dst: free
      Src: /src/nccl/src/register/coll_reg.cc:380,1
    - Dst: free
      Src: /src/nccl/src/register/coll_reg.cc:383,1
    - Dst: free
      Src: /src/nccl/src/register/coll_reg.cc:384,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:389,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/register/coll_reg.cc:389,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:390,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:410,1
    - Dst: registerCheckP2PConnection
      Src: /src/nccl/src/register/coll_reg.cc:410,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:425,1
    - Dst: ncclIpcGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:426,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:428,1
    - Dst: ncclIpcLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:429,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:439,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:440,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:443,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:448,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:450,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:454,1
    CyclomaticComplexity: 182
    EdgeCount: 182
    ICount: 303
    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: 473
      start: 114
    functionDepth: 9
    functionLinenumber: 114
    functionLinenumberEnd: 473
    functionName: ncclRegisterCollBuffers
    functionSourceFile: /src/nccl/src/register/coll_reg.cc
    functionUses: 1
    functionsReached:
    - ncclFuncSendCount
    - registerCheckP2PConnection
    - ncclIpcLocalRegisterBuffer
    - ncclTypeSize
    - ncclParamLocalRegister
    - ncclNetGraphRegisterBuffer
    - ncclNetLocalRegisterBuffer
    - ncclNvlsLocalRegisterBuffer
    - ncclCollnetLocalRegisterBuffer
    - ncclCalloc
    - free
    - ncclIpcGraphRegisterBuffer
    - ncclParamGraphRegister
    - std::max
    - min
    - memset
    - ncclFuncRecvCount
    - ncclCollnetGraphRegisterBuffer
    - NCCLCHECK
    - ncclRegFind
    - ncclNvlsGraphRegisterBuffer
    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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - reg
    - isValid
    argTypes:
    - struct ncclReg*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 26
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:29,1
    - Dst: CommCheck
      Src: /src/nccl/src/register/register.cc:29,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:36,1
    - Dst: CudaPtrCheck
      Src: /src/nccl/src/register/register.cc:36,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/register/register.cc:39,1
    - Dst: CUCHECK
      Src: /src/nccl/src/register/register.cc:44,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/register/register.cc:44,1
    - Dst: CUCHECK
      Src: /src/nccl/src/register/register.cc:46,1
    - Dst: cuPointerGetAttribute
      Src: /src/nccl/src/register/register.cc:46,1
    - Dst: CUCHECK
      Src: /src/nccl/src/register/register.cc:52,1
    - Dst: cuPointerGetAttribute
      Src: /src/nccl/src/register/register.cc:52,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:54,1
    - Dst: ncclCuMemGetAddressRange
      Src: /src/nccl/src/register/register.cc:54,1
    - Dst: INFO
      Src: /src/nccl/src/register/register.cc:59,1
    - Dst: INFO
      Src: /src/nccl/src/register/register.cc:63,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:70,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/register/register.cc:70,1
    - Dst: memmove
      Src: /src/nccl/src/register/register.cc:72,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:73,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/register.cc:73,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 5
    argNames:
    - comm
    - data
    - size
    - isGraph
    - handle
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - bool
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 93
    functionName: ncclRegister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclCalloc
    - ncclCuMemEnable
    - memmove
    - cuMemGetAddressRange
    - cuPointerGetAttribute
    - ncclRealloc
    - CudaPtrCheck
    - CommCheck
    - CUCHECK
    - ncclCuMemGetAddressRange
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRegister(struct ncclComm* comm, void* data, size_t
      size, bool isGraph, void** handle)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ncclNetDeregBuffer
      Src: /src/nccl/src/register/register.cc:100,1
    - Dst: WARN
      Src: /src/nccl/src/register/register.cc:101,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:105,1
    - Dst: ncclNvlsDeregBuffer
      Src: /src/nccl/src/register/register.cc:109,1
    - Dst: WARN
      Src: /src/nccl/src/register/register.cc:110,1
    - Dst: ncclCollnetDeregBuffer
      Src: /src/nccl/src/register/register.cc:115,1
    - Dst: WARN
      Src: /src/nccl/src/register/register.cc:116,1
    - Dst: ncclIpcDeregBuffer
      Src: /src/nccl/src/register/register.cc:123,1
    - Dst: WARN
      Src: /src/nccl/src/register/register.cc:124,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:126,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:128,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:130,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:131,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/register/register.cc:131,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - comm
    - reg
    argTypes:
    - struct ncclComm*
    - struct ncclReg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 95
    functionDepth: 5
    functionLinenumber: 95
    functionLinenumberEnd: 134
    functionName: regCleanup
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 0
    functionsReached:
    - ncclNetDeregBuffer
    - ncclIpcDeregBuffer
    - ncclCudaFree
    - free
    - ncclNvlsDeregBuffer
    - WARN
    - ncclCollnetDeregBuffer
    - 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:140,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:141,1
    - Dst: regCleanup
      Src: /src/nccl/src/register/register.cc:141,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:142,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 6
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: ncclRegCleanup
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 1
    functionsReached:
    - free
    - INFO
    - regCleanup
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRegCleanup(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/register.cc:150,1
    - Dst: ncclP2pUsesMemcpy
      Src: /src/nccl/src/register/register.cc:150,1
    - Dst: INFO
      Src: /src/nccl/src/register/register.cc:152,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/register.cc:153,1
    - Dst: ncclP2pUsesMemcpy
      Src: /src/nccl/src/register/register.cc:153,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:155,1
    - Dst: ncclRegister
      Src: /src/nccl/src/register/register.cc:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - comm
    - buff
    - size
    - handle
    argTypes:
    - ncclComm_t
    - void*
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: ncclCommRegister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclP2pUsesMemcpy
    - ncclParamLocalRegister
    - ncclRegister
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommRegister(const ncclComm_t comm, void* buff, size_t
      size, void** handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclP2pUsesMemcpy
      Src: /src/nccl/src/register/register.cc:161,1
    - Dst: INFO
      Src: /src/nccl/src/register/register.cc:163,1
    - Dst: ncclP2pUsesMemcpy
      Src: /src/nccl/src/register/register.cc:164,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:166,1
    - Dst: ncclRegister
      Src: /src/nccl/src/register/register.cc:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - comm
    - buff
    - size
    - handle
    argTypes:
    - ncclComm_t
    - void*
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 169
    functionName: ncclCommGraphRegister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 4
    functionsReached:
    - INFO
    - ncclRegister
    - NCCLCHECK
    - ncclP2pUsesMemcpy
    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:172,1
    - Dst: CommCheck
      Src: /src/nccl/src/register/register.cc:172,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/register/register.cc:177,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/register/register.cc:177,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/register/register.cc:178,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/register/register.cc:178,1
    - Dst: WARN
      Src: /src/nccl/src/register/register.cc:181,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:187,1
    - Dst: regCleanup
      Src: /src/nccl/src/register/register.cc:187,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:188,1
    - Dst: memmove
      Src: /src/nccl/src/register/register.cc:189,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/register/register.cc:191,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/register/register.cc:191,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - comm
    - isGraph
    - reg
    argTypes:
    - struct ncclComm*
    - bool
    - struct ncclReg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 171
    functionDepth: 6
    functionLinenumber: 171
    functionLinenumberEnd: 194
    functionName: commDeregister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 0
    functionsReached:
    - regCleanup
    - cudaGetDevice
    - memmove
    - free
    - cudaSetDevice
    - CUDACHECK
    - CommCheck
    - WARN
    - 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:198,1
    - Dst: commDeregister
      Src: /src/nccl/src/register/register.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - handle
    argTypes:
    - ncclComm_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 7
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: ncclCommDeregister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 2
    functionsReached:
    - commDeregister
    - NCCLCHECK
    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:203,1
    - Dst: commDeregister
      Src: /src/nccl/src/register/register.cc:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - handle
    argTypes:
    - ncclComm_t
    - struct ncclReg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 7
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: ncclCommGraphDeregister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 8
    functionsReached:
    - commDeregister
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommGraphDeregister(const ncclComm_t comm, struct
      ncclReg *handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:25,1
    - Dst: ncclOsSocketProgressOpt
      Src: /src/nccl/src/misc/socket.cc:25,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:32,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:33,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: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: socketProgress
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclOsSocketProgressOpt
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketProgress(int op, struct ncclSocket* sock, void*
      ptr, int size, int* offset, int* pclosed = NULL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:42,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:42,1
    - Dst: ncclParamPollTimeOut
      Src: /src/nccl/src/misc/socket.cc:45,1
    - Dst: ncclOsPollSocket
      Src: /src/nccl/src/misc/socket.cc:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - op
    - sock
    - ptr
    - size
    - offset
    argTypes:
    - int
    - struct ncclSocket*
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: socketWait
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - ncclParamPollTimeOut
    - ncclOsPollSocket
    - socketProgress
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketWait(int op, struct ncclSocket* sock, void* ptr,
      int size, int* offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/nccl/src/misc/socket.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: ncclSocketToPort
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ncclSocketToPort(union ncclSocketAddress *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsSocketIsValid
      Src: /src/nccl/src/misc/socket.cc:58,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:59,1
    - Dst: shutdown
      Src: /src/nccl/src/misc/socket.cc:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sock
    - how
    argTypes:
    - struct ncclSocket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: ncclSocketShutdown
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - SYSCHECK
    - ncclOsSocketIsValid
    - shutdown
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketShutdown(struct ncclSocket* sock, int how)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sock
    - socketDescriptor
    argTypes:
    - struct ncclSocket*
    - ncclSocketDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: ncclSocketGetFd
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 2
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketGetFd(struct ncclSocket* sock, ncclSocketDescriptor*
      socketDescriptor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - socketDescriptor
    - sock
    argTypes:
    - ncclSocketDescriptor
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: ncclSocketSetFd
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 1
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketSetFd(ncclSocketDescriptor socketDescriptor,
      struct ncclSocket* sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:87,1
    - Dst: ncclOsSocketIsValid
      Src: /src/nccl/src/misc/socket.cc:90,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:91,1
    - Dst: ncclSocketToPort
      Src: /src/nccl/src/misc/socket.cc:95,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:99,1
    - Dst: setsockopt
      Src: /src/nccl/src/misc/socket.cc:99,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:101,1
    - Dst: setsockopt
      Src: /src/nccl/src/misc/socket.cc:101,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:104,1
    - Dst: setsockopt
      Src: /src/nccl/src/misc/socket.cc:104,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:106,1
    - Dst: setsockopt
      Src: /src/nccl/src/misc/socket.cc:106,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:112,1
    - Dst: bind
      Src: /src/nccl/src/misc/socket.cc:112,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:116,1
    - Dst: getsockname
      Src: /src/nccl/src/misc/socket.cc:116,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/socket.cc:120,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:120,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:123,1
    - Dst: listen
      Src: /src/nccl/src/misc/socket.cc:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 129
    functionName: ncclSocketListen
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 4
    functionsReached:
    - TRACE
    - ncclOsSocketIsValid
    - getsockname
    - setsockopt
    - listen
    - bind
    - ncclSocketToString
    - SYSCHECK
    - WARN
    - ncclSocketToPort
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketListen(struct ncclSocket* sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getnameinfo
      Src: /src/nccl/src/misc/socket.cc:144,1
    - Dst: sprintf
      Src: /src/nccl/src/misc/socket.cc:145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - addr
    - buf
    - numericHostForm
    argTypes:
    - union ncclSocketAddress*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: ncclSocketToString
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 10
    functionsReached:
    - getnameinfo
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *ncclSocketToString(const union ncclSocketAddress *addr, char
      *buf, const int numericHostForm /*= 1*/)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/socket.cc:156,1
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:160,1
    - Dst: strcmp
      Src: /src/nccl/src/misc/socket.cc:162,1
    - Dst: strcmp
      Src: /src/nccl/src/misc/socket.cc:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: ncclEnvSocketFamily
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - INFO
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ncclEnvSocketFamily(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclEnvSocketFamily
      Src: /src/nccl/src/misc/socket.cc:173,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/socket.cc:175,1
    - Dst: strlen
      Src: /src/nccl/src/misc/socket.cc:177,1
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:178,1
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:180,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:181,1
    - Dst: ncclOsFindInterfaces
      Src: /src/nccl/src/misc/socket.cc:181,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:185,1
    - Dst: ncclOsFindInterfaces
      Src: /src/nccl/src/misc/socket.cc:185,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/socket.cc:188,1
    - Dst: strlen
      Src: /src/nccl/src/misc/socket.cc:189,1
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:190,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:193,1
    - Dst: ncclSocketGetAddrFromString
      Src: /src/nccl/src/misc/socket.cc:193,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:194,1
    - Dst: ncclFindInterfaceMatchSubnet
      Src: /src/nccl/src/misc/socket.cc:194,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:198,1
    - Dst: ncclOsFindInterfaces
      Src: /src/nccl/src/misc/socket.cc:198,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:200,1
    - Dst: ncclOsFindInterfaces
      Src: /src/nccl/src/misc/socket.cc:200,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:201,1
    - Dst: ncclOsFindInterfaces
      Src: /src/nccl/src/misc/socket.cc:201,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:202,1
    - Dst: ncclOsFindInterfaces
      Src: /src/nccl/src/misc/socket.cc:202,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - ifNames
    - ifAddrs
    - ifNameMaxSize
    - maxIfs
    - nIfs
    argTypes:
    - char*
    - union ncclSocketAddress*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 205
    functionName: ncclFindInterfaces
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 3
    functionsReached:
    - ncclGetEnv
    - ncclOsFindInterfaces
    - INFO
    - strlen
    - ncclEnvSocketFamily
    - ncclFindInterfaceMatchSubnet
    - ncclSocketGetAddrFromString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclFindInterfaces(char* ifNames, union ncclSocketAddress
      *ifAddrs, int ifNameMaxSize, int maxIfs,\n  int* nIfs)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/misc/socket.cc:208,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:209,1
    - Dst: parseStringList
      Src: /src/nccl/src/misc/socket.cc:218,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:219,1
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:225,1
    - Dst: getaddrinfo
      Src: /src/nccl/src/misc/socket.cc:229,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:230,1
    - Dst: gai_strerror
      Src: /src/nccl/src/misc/socket.cc:230,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:237,1
    - Dst: htons
      Src: /src/nccl/src/misc/socket.cc:240,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:243,1
    - Dst: htons
      Src: /src/nccl/src/misc/socket.cc:245,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:249,1
    - Dst: freeaddrinfo
      Src: /src/nccl/src/misc/socket.cc:250,1
    - Dst: freeaddrinfo
      Src: /src/nccl/src/misc/socket.cc:254,1
    - Dst: strlen
      Src: /src/nccl/src/misc/socket.cc:257,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:263,1
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:269,1
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:270,1
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:271,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/socket.cc:272,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/socket.cc:273,1
    - Dst: atoi
      Src: /src/nccl/src/misc/socket.cc:274,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/socket.cc:275,1
    - Dst: inet_pton
      Src: /src/nccl/src/misc/socket.cc:279,1
    - Dst: htons
      Src: /src/nccl/src/misc/socket.cc:280,1
    - Dst: if_nametoindex
      Src: /src/nccl/src/misc/socket.cc:282,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 2
    argNames:
    - ua
    - ip_port_pair
    argTypes:
    - union ncclSocketAddress*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 285
    functionName: ncclSocketGetAddrFromString
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 3
    functionsReached:
    - htons
    - freeaddrinfo
    - memcpy
    - getaddrinfo
    - strlen
    - strncpy
    - memset
    - inet_pton
    - gai_strerror
    - atoi
    - if_nametoindex
    - WARN
    - parseStringList
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketGetAddrFromString(union ncclSocketAddress* ua,
      const char* ip_port_pair)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:289,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sock
    - addr
    argTypes:
    - struct ncclSocket*
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: ncclSocketGetAddr
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 9
    functionsReached:
    - memcpy
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketGetAddr(struct ncclSocket* sock, union ncclSocketAddress*
      addr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:303,1
    - Dst: ncclOsSocketSetFlags
      Src: /src/nccl/src/misc/socket.cc:303,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:308,1
    - Dst: ncclOsSocketResetAccept
      Src: /src/nccl/src/misc/socket.cc:309,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:315,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:315,1
    - Dst: ncclOsSocketResetAccept
      Src: /src/nccl/src/misc/socket.cc:319,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:323,1
    - Dst: ncclOsSocketResetAccept
      Src: /src/nccl/src/misc/socket.cc:326,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:332,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:332,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:335,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:335,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:338,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:341,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:341,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/misc/socket.cc:342,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 349
    functionName: socketFinalizeAccept
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - ncclOsSocketSetFlags
    - ncclSocketClose
    - socketWait
    - memcpy
    - ncclOsSocketResetAccept
    - socketProgress
    - WARN
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketFinalizeAccept(struct ncclSocket* sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:353,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:356,1
    - Dst: ncclOsSocketPollConnect
      Src: /src/nccl/src/misc/socket.cc:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 358
    functionName: ncclSocketPollConnect
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclOsSocketPollConnect
    - 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:364,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:364,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:366,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:366,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:370,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:370,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:375,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 381
    functionName: socketFinalizeConnect
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - socketWait
    - socketProgress
    - 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:385,1
    - Dst: ncclOsSocketTryAccept
      Src: /src/nccl/src/misc/socket.cc:385,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:388,1
    - Dst: socketFinalizeAccept
      Src: /src/nccl/src/misc/socket.cc:388,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:391,1
    - Dst: ncclOsSocketStartConnect
      Src: /src/nccl/src/misc/socket.cc:391,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:394,1
    - Dst: ncclOsSocketPollConnect
      Src: /src/nccl/src/misc/socket.cc:394,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:397,1
    - Dst: socketFinalizeConnect
      Src: /src/nccl/src/misc/socket.cc:397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: socketProgressState
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - socketFinalizeAccept
    - ncclOsSocketTryAccept
    - ncclOsSocketPollConnect
    - ncclOsSocketStartConnect
    - socketFinalizeConnect
    - 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:408,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:413,1
    - Dst: socketProgressState
      Src: /src/nccl/src/misc/socket.cc:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sock
    - running
    argTypes:
    - struct ncclSocket*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 402
    functionDepth: 5
    functionLinenumber: 402
    functionLinenumberEnd: 417
    functionName: ncclSocketReady
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 7
    functionsReached:
    - socketProgressState
    - WARN
    - 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:425,1
    - Dst: ncclOsSocketIsValid
      Src: /src/nccl/src/misc/socket.cc:428,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:429,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:434,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/socket.cc:438,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:438,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:443,1
    - Dst: socketProgressState
      Src: /src/nccl/src/misc/socket.cc:443,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/misc/socket.cc:445,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/misc/socket.cc:450,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:461,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 419
    functionDepth: 5
    functionLinenumber: 419
    functionLinenumberEnd: 464
    functionName: ncclSocketConnect
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 8
    functionsReached:
    - TRACE
    - ncclOsSocketIsValid
    - COMPILER_ATOMIC_LOAD
    - socketProgressState
    - WARN
    - ncclSocketToString
    - 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:470,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:475,1
    - Dst: ncclOsSocketDescriptorIsValid
      Src: /src/nccl/src/misc/socket.cc:483,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:484,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/socket.cc:491,1
    - Dst: socketProgressState
      Src: /src/nccl/src/misc/socket.cc:491,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/misc/socket.cc:493,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/misc/socket.cc:497,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:509,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 2
    argNames:
    - sock
    - listenSock
    argTypes:
    - struct ncclSocket*
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 466
    functionDepth: 5
    functionLinenumber: 466
    functionLinenumberEnd: 516
    functionName: ncclSocketAccept
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 7
    functionsReached:
    - ncclOsSocketDescriptorIsValid
    - memcpy
    - NCCLCHECKGOTO
    - COMPILER_ATOMIC_LOAD
    - WARN
    - socketProgressState
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketAccept(struct ncclSocket* sock, struct ncclSocket*
      listenSock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:538,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:542,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:543,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/socket.cc:549,1
    - Dst: ncclOsSocketResetFd
      Src: /src/nccl/src/misc/socket.cc:549,1
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:551,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/misc/socket.cc:556,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    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: 558
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 558
    functionName: ncclSocketInit
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 18
    functionsReached:
    - ncclSocketClose
    - memcpy
    - ncclOsSocketResetFd
    - NCCLCHECKGOTO
    - memset
    - WARN
    - ncclSocketToString
    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:562,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:565,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:565,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: 567
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 567
    functionName: ncclSocketProgress
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 7
    functionsReached:
    - socketProgress
    - WARN
    - 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:571,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:574,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:574,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: 576
      start: 569
    functionDepth: 3
    functionLinenumber: 569
    functionLinenumberEnd: 576
    functionName: ncclSocketWait
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - socketWait
    - WARN
    - 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:581,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:585,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:588,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - sock
    - ptr
    - size
    argTypes:
    - struct ncclSocket*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 578
    functionDepth: 3
    functionLinenumber: 578
    functionLinenumberEnd: 590
    functionName: ncclSocketSend
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 4
    functionsReached:
    - socketWait
    - WARN
    - 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:595,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:599,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:602,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - sock
    - ptr
    - size
    argTypes:
    - struct ncclSocket*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 604
    functionName: ncclSocketRecv
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 3
    functionsReached:
    - socketWait
    - WARN
    - 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:609,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:614,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:618,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:618,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:619,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:619,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: 622
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 622
    functionName: ncclSocketSendRecv
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 2
    functionsReached:
    - socketProgress
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketSendRecv(struct ncclSocket* sendSock, void*
      sendPtr, int sendSize, struct ncclSocket* recvSock, void* recvPtr, int recvSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:627,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:633,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:641,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:641,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ops
    - numOps
    argTypes:
    - struct ncclSocketOp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 647
    functionName: ncclSocketMultiOp
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 1
    functionsReached:
    - socketProgress
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketMultiOp(struct ncclSocketOp* ops, int numOps)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:652,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:659,1
    - Dst: ncclOsSocketProgressOpt
      Src: /src/nccl/src/misc/socket.cc:659,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:663,1
    - Dst: ncclOsSocketProgressOpt
      Src: /src/nccl/src/misc/socket.cc:663,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:669,1
    - Dst: ncclOsSocketProgressOpt
      Src: /src/nccl/src/misc/socket.cc:669,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: 678
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 678
    functionName: ncclSocketTryRecv
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 1
    functionsReached:
    - ncclOsSocketProgressOpt
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketTryRecv(struct ncclSocket* sock, void* ptr,
      int size, int* closed, bool blocking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsShmOpen
      Src: /src/nccl/src/misc/shmutils.cc:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    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: 23
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: ncclShmOpen
    functionSourceFile: /src/nccl/src/misc/shmutils.cc
    functionUses: 5
    functionsReached:
    - ncclOsShmOpen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclShmOpen(char* shmPath, size_t shmPathSize, size_t
      shmSize,\n  void** shmPtr, void** devShmPtr, int refcount,\n  ncclShmHandle_t*
      handle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsShmClose
      Src: /src/nccl/src/misc/shmutils.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclShmHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: ncclShmClose
    functionSourceFile: /src/nccl/src/misc/shmutils.cc
    functionUses: 4
    functionsReached:
    - ncclOsShmClose
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShmClose(ncclShmHandle_t handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsShmUnlink
      Src: /src/nccl/src/misc/shmutils.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclShmHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: ncclShmUnlink
    functionSourceFile: /src/nccl/src/misc/shmutils.cc
    functionUses: 1
    functionsReached:
    - ncclOsShmUnlink
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShmUnlink(ncclShmHandle_t handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/misc/shmutils.cc:46,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/misc/shmutils.cc:48,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/misc/shmutils.cc:53,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/shmutils.cc:62,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 5
    argNames:
    - comm
    - shmem
    - sendbuff
    - recvbuff
    - typeSize
    argTypes:
    - struct ncclComm*
    - struct ncclShmemCollBuff*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 68
    functionName: ncclShmemAllgather
    functionSourceFile: /src/nccl/src/misc/shmutils.cc
    functionUses: 2
    functionsReached:
    - COMPILER_ATOMIC_STORE
    - memcpy
    - COMPILER_ATOMIC_LOAD
    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: getenv
      Src: /src/nccl/src/misc/param.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: userHomeDir
    functionSourceFile: /src/nccl/src/misc/param.cc
    functionUses: 0
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: char * userHomeDir()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/src/misc/param.cc:28,1
    - Dst: fgets
      Src: /src/nccl/src/misc/param.cc:34,1
    - Dst: strlen
      Src: /src/nccl/src/misc/param.cc:35,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/param.cc:42,1
    - Dst: min
      Src: /src/nccl/src/misc/param.cc:42,1
    - Dst: min
      Src: /src/nccl/src/misc/param.cc:43,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/param.cc:45,1
    - Dst: ncclOsSetEnv
      Src: /src/nccl/src/misc/param.cc:47,1
    - Dst: fclose
      Src: /src/nccl/src/misc/param.cc:49,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 50
    functionName: setEnvFile
    functionSourceFile: /src/nccl/src/misc/param.cc
    functionUses: 0
    functionsReached:
    - fgets
    - min
    - ncclOsSetEnv
    - strlen
    - fopen
    - strncpy
    - fclose
    linkageType: ''
    returnType: void
    signature: void setEnvFile(const char* fileName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::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
    - std::getenv
    - snprintf
    linkageType: ''
    returnType: void
    signature: void initEnvFunc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_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:
    - std::call_once
    linkageType: ''
    returnType: void
    signature: void initEnv()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIsCacheDisabled
      Src: /src/nccl/src/misc/param.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - noCache
    argTypes:
    - char*
    - int8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: ncclGetCachePolicy
    functionSourceFile: /src/nccl/src/misc/param.cc
    functionUses: 0
    functionsReached:
    - ncclParamIsCacheDisabled
    linkageType: ''
    returnType: void
    signature: void ncclGetCachePolicy(char const* env, int8_t* noCache)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetCachePolicy
      Src: /src/nccl/src/misc/param.cc:83,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/misc/param.cc:85,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/misc/param.cc:85,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/param.cc:88,1
    - Dst: strlen
      Src: /src/nccl/src/misc/param.cc:91,1
    - Dst: strtoll
      Src: /src/nccl/src/misc/param.cc:93,1
    - Dst: INFO
      Src: /src/nccl/src/misc/param.cc:96,1
    - Dst: INFO
      Src: /src/nccl/src/misc/param.cc:98,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/misc/param.cc:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - env
    - deftVal
    - uninitialized
    - cache
    - noCache
    argTypes:
    - char*
    - int64_t
    - int64_t
    - int64_t*
    - int8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 104
    functionName: ncclLoadParam
    functionSourceFile: /src/nccl/src/misc/param.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - INFO
    - ncclGetCachePolicy
    - COMPILER_ATOMIC_STORE
    - strlen
    - COMPILER_ATOMIC_LOAD
    - strtoll
    linkageType: ''
    returnType: int64_t
    signature: int64_t ncclLoadParam(char const* env, int64_t deftVal, int64_t uninitialized,
      int64_t* cache, int8_t* noCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclInitEnv
      Src: /src/nccl/src/misc/param.cc:107,1
    - Dst: ncclEnvPluginGetEnv
      Src: /src/nccl/src/misc/param.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: ncclGetEnv
    functionSourceFile: /src/nccl/src/misc/param.cc
    functionUses: 22
    functionsReached:
    - ncclInitEnv
    - ncclEnvPluginGetEnv
    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: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    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:24,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: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    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:32,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: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    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: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:41,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:44,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:49,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:50,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:52,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:53,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
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:56,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:57,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:58,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:59,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:61,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - ibvSymbols
    argTypes:
    - struct ncclIbvSymbols*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 68
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/ibvsymbols.cc:84,1
    - Dst: INFO
      Src: /src/nccl/src/misc/ibvsymbols.cc:86,1
    - Dst: dlopen
      Src: /src/nccl/src/misc/ibvsymbols.cc:90,1
    - Dst: INFO
      Src: /src/nccl/src/misc/ibvsymbols.cc:92,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
      Src: /src/nccl/src/misc/ibvsymbols.cc:116,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:117,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:118,1
    - Dst: LOAD_SYM
      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_VERSION
      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
      Src: /src/nccl/src/misc/ibvsymbols.cc:130,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:131,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:132,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:133,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:134,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:135,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:136,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:137,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/ibvsymbols.cc:139,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/ibvsymbols.cc:140,1
    - Dst: dlclose
      Src: /src/nccl/src/misc/ibvsymbols.cc:172,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 72
    argCount: 1
    argNames:
    - ibvSymbols
    argTypes:
    - struct ncclIbvSymbols*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 174
    functionName: buildIbvSymbols
    functionSourceFile: /src/nccl/src/misc/ibvsymbols.cc
    functionUses: 0
    functionsReached:
    - LOAD_SYM_VERSION
    - ncclGetEnv
    - dlopen
    - INFO
    - dlclose
    - LOAD_SYM
    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: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/ibvsymbols.cc
    functionUses: 2
    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: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    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:33,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/misc/cudawrap.cc:33,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:35,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:35,1
    - Dst: CUPFN
      Src: /src/nccl/src/misc/cudawrap.cc:36,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:37,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/misc/cudawrap.cc:37,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:39,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/misc/cudawrap.cc:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: ncclIsCuMemSupported
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 0
    functionsReached:
    - cudaDriverGetVersion
    - CUPFN
    - cudaGetDevice
    - CUCHECKGOTO
    - cuDeviceGetAttribute
    - cuDeviceGet
    - CUDACHECKGOTO
    linkageType: ''
    returnType: int
    signature: int ncclIsCuMemSupported()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamCuMemEnable
      Src: /src/nccl/src/misc/cudawrap.cc:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: ncclCuMemEnable
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 36
    functionsReached:
    - ncclParamCuMemEnable
    linkageType: ''
    returnType: int
    signature: int ncclCuMemEnable()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:63,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/misc/cudawrap.cc:63,1
    - Dst: ncclParamCuMemHostEnable
      Src: /src/nccl/src/misc/cudawrap.cc:68,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/cudawrap.cc:83,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:83,1
    - Dst: CUCHECK
      Src: /src/nccl/src/misc/cudawrap.cc:84,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/misc/cudawrap.cc:84,1
    - Dst: CUCHECK
      Src: /src/nccl/src/misc/cudawrap.cc:85,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/misc/cudawrap.cc:85,1
    - Dst: CUCHECK
      Src: /src/nccl/src/misc/cudawrap.cc:91,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/misc/cudawrap.cc:91,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/misc/cudawrap.cc:93,1
    - Dst: CUPFN
      Src: /src/nccl/src/misc/cudawrap.cc:94,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/misc/cudawrap.cc:94,1
    - Dst: INFO
      Src: /src/nccl/src/misc/cudawrap.cc:95,1
    - Dst: CUCHECK
      Src: /src/nccl/src/misc/cudawrap.cc:100,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/misc/cudawrap.cc:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 108
    functionName: ncclCuMemHostEnable
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 4
    functionsReached:
    - cudaDriverGetVersion
    - CUPFN
    - INFO
    - cudaGetDevice
    - cuMemGetAllocationGranularity
    - cuMemCreate
    - cuDeviceGetAttribute
    - ncclParamCuMemHostEnable
    - cuDeviceGet
    - ALIGN_SIZE
    - cuMemRelease
    - CUDACHECK
    - CUDACHECKGOTO
    - CUCHECK
    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: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    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: 182
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 2
    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: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 2
    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: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SYM(symbol, version, ignore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - 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:211,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:212,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:213,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:214,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:220,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:227,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:228,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:229,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:230,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:231,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:232,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:233,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:234,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:236,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:238,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:242,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:243,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:244,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:245,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:246,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:247,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:250,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:251,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:252,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:253,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 256
    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:264,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:271,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:271,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:273,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/misc/cudawrap.cc:273,1
    - Dst: INFO
      Src: /src/nccl/src/misc/cudawrap.cc:274,1
    - Dst: cudaPfnFuncLoader
      Src: /src/nccl/src/misc/cudawrap.cc:283,1
    - Dst: WARN
      Src: /src/nccl/src/misc/cudawrap.cc:284,1
    - Dst: ncclIsCuMemSupported
      Src: /src/nccl/src/misc/cudawrap.cc:290,1
    - Dst: ncclCuMemHostEnable
      Src: /src/nccl/src/misc/cudawrap.cc:294,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:296,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/src/misc/cudawrap.cc:297,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:299,1
    - Dst: cudaFree
      Src: /src/nccl/src/misc/cudawrap.cc:300,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:302,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 309
    functionName: initOnceFunc
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 0
    functionsReached:
    - cudaGetDeviceCount
    - ncclGetEnv
    - cudaDriverGetVersion
    - INFO
    - cudaGetDevice
    - cudaPfnFuncLoader
    - cudaSetDevice
    - CUDACHECKGOTO
    - ncclIsCuMemSupported
    - WARN
    - cudaFree
    - ncclCuMemHostEnable
    linkageType: ''
    returnType: void
    signature: void initOnceFunc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/misc/cudawrap.cc:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: ncclCudaLibraryInit
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 8
    functionsReached:
    - std::call_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaLibraryInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:323,1
    - Dst: cuStreamBatchMemOp
      Src: /src/nccl/src/misc/cudawrap.cc:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - stream
    - numOps
    - batchParams
    argTypes:
    - cudaStream_t
    - unsigned int
    - CUstreamBatchMemOpParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 330
    functionName: ncclCuStreamBatchMemOp
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 1
    functionsReached:
    - cuStreamBatchMemOp
    - CUCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuStreamBatchMemOp(cudaStream_t stream, unsigned int
      numOps, CUstreamBatchMemOpParams* batchParams)
  - 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: ncclGetGitVersion
    functionSourceFile: /src/nccl/src/misc/git_version.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclGetGitVersion(void)
  - 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: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    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:19,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:20,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:21,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:22,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - mlx5dvSymbols
    argTypes:
    - struct ncclMlx5dvSymbols*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 25
    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:41,1
    - Dst: dlopen
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:43,1
    - Dst: INFO
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:45,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:69,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:71,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:73,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:75,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:77,1
    - Dst: dlclose
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - mlx5dvSymbols
    argTypes:
    - struct ncclMlx5dvSymbols*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 90
    functionName: buildMlx5dvSymbols
    functionSourceFile: /src/nccl/src/misc/mlx5dvsymbols.cc
    functionUses: 0
    functionsReached:
    - LOAD_SYM_VERSION
    - dlopen
    - INFO
    - dlclose
    - LOAD_SYM
    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: 59
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/mlx5dvsymbols.cc
    functionUses: 4
    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: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    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:38,1
    - Dst: cuCtxGetCurrent
      Src: /src/nccl/src/misc/strongstream.cc:38,1
    - Dst: ncclCudaContext::ncclCudaContext
      Src: /src/nccl/src/misc/strongstream.cc:44,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/strongstream.cc:49,1
    - Dst: ncclStrongStreamConstruct
      Src: /src/nccl/src/misc/strongstream.cc:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct ncclCudaContext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: ncclCudaContextTrack
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 1
    functionsReached:
    - cuCtxGetCurrent
    - ncclCudaContext::ncclCudaContext
    - ncclStrongStreamConstruct
    - NCCLCHECKGOTO
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaContextTrack(struct ncclCudaContext** out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclStrongStreamDestruct
      Src: /src/nccl/src/misc/strongstream.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cxt
    argTypes:
    - struct ncclCudaContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: ncclCudaContextDrop
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 1
    functionsReached:
    - ncclStrongStreamDestruct
    linkageType: ''
    returnType: void
    signature: void ncclCudaContextDrop(struct ncclCudaContext* cxt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/strongstream.cc:82,1
    - Dst: ncclCudaDriverVersion
      Src: /src/nccl/src/misc/strongstream.cc:82,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:85,1
    - Dst: cudaStreamGetCaptureInfo
      Src: /src/nccl/src/misc/strongstream.cc:85,1
    - Dst: WARN
      Src: /src/nccl/src/misc/strongstream.cc:93,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:100,1
    - Dst: cudaStreamGetCaptureInfo_v3
      Src: /src/nccl/src/misc/strongstream.cc:100,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:102,1
    - Dst: cudaStreamGetCaptureInfo_v2
      Src: /src/nccl/src/misc/strongstream.cc:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - graph
    - stream
    - graphUsageMode
    argTypes:
    - struct ncclCudaGraph*
    - cudaStream_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 116
    functionName: ncclCudaGetCapturingGraph
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 2
    functionsReached:
    - ncclCudaDriverVersion
    - cudaStreamGetCaptureInfo_v2
    - cudaStreamGetCaptureInfo_v3
    - cudaStreamGetCaptureInfo
    - CUDACHECK
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCudaGetCapturingGraph(\n    struct ncclCudaGraph*
      graph, cudaStream_t stream, int graphUsageMode\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:121,1
    - Dst: cudaUserObjectCreate
      Src: /src/nccl/src/misc/strongstream.cc:121,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:125,1
    - Dst: cudaGraphRetainUserObject
      Src: /src/nccl/src/misc/strongstream.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - graph
    - fn
    - arg
    argTypes:
    - struct ncclCudaGraph
    - cudaHostFn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 130
    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:135,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/misc/strongstream.cc:135,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:139,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/misc/strongstream.cc:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - struct ncclStrongStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: ncclStrongStreamConstruct
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 2
    functionsReached:
    - CUDACHECK
    - cudaEventCreateWithFlags
    - 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:145,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/misc/strongstream.cc:145,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:150,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/misc/strongstream.cc:150,1
    - Dst: free
      Src: /src/nccl/src/misc/strongstream.cc:151,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:154,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/misc/strongstream.cc:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ss
    argTypes:
    - struct ncclStrongStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: ncclStrongStreamDestruct
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 2
    functionsReached:
    - CUDACHECK
    - cudaEventDestroy
    - free
    - cudaStreamDestroy
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: localThreadId
      Src: /src/nccl/src/misc/strongstream.cc:173,1
    - Dst: COMPILER_ATOMIC_LOAD
      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: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/misc/strongstream.cc:179,1
    - Dst: std::unique_lock::lock
      Src: /src/nccl/src/misc/strongstream.cc:183,1
    - Dst: localThreadId
      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: std::unique_lock::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: 14
    EdgeCount: 14
    ICount: 62
    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: 10
    functionsReached:
    - cudaStreamDestroy
    - cudaStreamIsCapturing
    - calloc
    - cudaEventDestroy
    - std::unique_lock::lock
    - COMPILER_ATOMIC_STORE
    - std::unique_lock::unlock
    - localThreadId
    - cudaStreamCreateWithFlags
    - free
    - cudaEventRecord
    - COMPILER_ATOMIC_LOAD
    - cudaStreamUpdateCaptureDependencies
    - cudaEventCreateWithFlags
    - cudaStreamUpdateCaptureDependencies_v2
    - CUDACHECK
    - CUDACHECKGOTO
    - cudaStreamWaitEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclStrongStreamAcquire(\n   struct ncclCudaGraph graph,
      struct ncclStrongStream* ss, bool concurrent,\n   cudaStream_t* workStream\n
      \ )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_lock::lock
      Src: /src/nccl/src/misc/strongstream.cc:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    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:
    - std::unique_lock::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: COMPILER_ATOMIC_LOAD
      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: std::unique_lock::lock
      Src: /src/nccl/src/misc/strongstream.cc:289,1
    - Dst: std::unique_lock::unlock
      Src: /src/nccl/src/misc/strongstream.cc:292,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:296,1
    - Dst: cudaGraphAddEventRecordNode
      Src: /src/nccl/src/misc/strongstream.cc:296,1
    - Dst: cudaStreamGetCaptureInfo_v3
      Src: /src/nccl/src/misc/strongstream.cc:303,1
    - Dst: cudaStreamGetCaptureInfo_v2
      Src: /src/nccl/src/misc/strongstream.cc:305,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:311,1
    - Dst: cudaStreamGetCaptureInfo_v3
      Src: /src/nccl/src/misc/strongstream.cc:311,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:313,1
    - Dst: cudaGraphAddDependencies_v2
      Src: /src/nccl/src/misc/strongstream.cc:313,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:320,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:323,1
    - Dst: cudaGraphAddDependencies_v2
      Src: /src/nccl/src/misc/strongstream.cc:323,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:325,1
    - Dst: cudaGraphAddDependencies
      Src: /src/nccl/src/misc/strongstream.cc:325,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:332,1
    - Dst: cudaStreamUpdateCaptureDependencies_v2
      Src: /src/nccl/src/misc/strongstream.cc:332,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:339,1
    - Dst: cudaStreamUpdateCaptureDependencies
      Src: /src/nccl/src/misc/strongstream.cc:339,1
    - Dst: localThreadId
      Src: /src/nccl/src/misc/strongstream.cc:346,1
    - Dst: ncclParamLaunchRaceFatal
      Src: /src/nccl/src/misc/strongstream.cc:346,1
    - Dst: WARN
      Src: /src/nccl/src/misc/strongstream.cc:347,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - graph
    - ss
    - concurrent
    argTypes:
    - struct ncclCudaGraph
    - struct ncclStrongStream*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 354
    functionName: ncclStrongStreamRelease
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 11
    functionsReached:
    - cudaGraphAddEventRecordNode
    - std::unique_lock::lock
    - cudaGraphAddDependencies
    - std::unique_lock::unlock
    - localThreadId
    - cudaStreamGetCaptureInfo_v2
    - cudaStreamGetCaptureInfo_v3
    - cudaEventRecord
    - COMPILER_ATOMIC_LOAD
    - cudaStreamUpdateCaptureDependencies
    - cudaStreamUpdateCaptureDependencies_v2
    - CUDACHECK
    - ncclParamLaunchRaceFatal
    - WARN
    - cudaGraphAddDependencies_v2
    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:357,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/misc/strongstream.cc:357,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:358,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/misc/strongstream.cc:358,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: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: ncclStreamWaitStream
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 5
    functionsReached:
    - CUDACHECK
    - cudaEventRecord
    - cudaStreamWaitEvent
    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:364,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/misc/strongstream.cc:364,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:367,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/misc/strongstream.cc:367,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:368,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/misc/strongstream.cc:368,1
    - Dst: cudaStreamGetCaptureInfo_v3
      Src: /src/nccl/src/misc/strongstream.cc:374,1
    - Dst: cudaStreamGetCaptureInfo_v2
      Src: /src/nccl/src/misc/strongstream.cc:376,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:382,1
    - Dst: cudaStreamGetCaptureInfo_v3
      Src: /src/nccl/src/misc/strongstream.cc:382,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:383,1
    - Dst: cudaStreamUpdateCaptureDependencies_v2
      Src: /src/nccl/src/misc/strongstream.cc:383,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:389,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:391,1
    - Dst: cudaStreamUpdateCaptureDependencies_v2
      Src: /src/nccl/src/misc/strongstream.cc:391,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:393,1
    - Dst: cudaStreamUpdateCaptureDependencies
      Src: /src/nccl/src/misc/strongstream.cc:393,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:397,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/misc/strongstream.cc:397,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: 398
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 398
    functionName: ncclStreamAdvanceToEvent
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 1
    functionsReached:
    - cudaStreamDestroy
    - cudaStreamGetCaptureInfo_v2
    - cudaStreamGetCaptureInfo_v3
    - cudaStreamCreateWithFlags
    - cudaStreamUpdateCaptureDependencies
    - cudaStreamUpdateCaptureDependencies_v2
    - CUDACHECK
    - cudaStreamWaitEvent
    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:404,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/misc/strongstream.cc:404,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:406,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/misc/strongstream.cc:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - struct ncclStrongStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: ncclStrongStreamSynchronize
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 7
    functionsReached:
    - CUDACHECK
    - cudaStreamSynchronize
    - cudaStreamWaitEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclStrongStreamSynchronize(struct ncclStrongStream* ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/misc/utils.cc:20,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/misc/utils.cc:20,1
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/misc/utils.cc:22,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/misc/utils.cc:22,1
    - Dst: CUDASUCCESS
      Src: /src/nccl/src/misc/utils.cc:23,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/misc/utils.cc:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: ncclCudaCompCap
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - CUDASUCCESS
    - cudaGetDevice
    - cudaDeviceGetAttribute
    linkageType: ''
    returnType: int
    signature: int ncclCudaCompCap()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/nccl/src/misc/utils.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - busId
    argTypes:
    - int64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    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:47,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 2
    argNames:
    - busId
    - id
    argTypes:
    - char*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 49
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:53,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/utils.cc:59,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/misc/utils.cc:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - path
    - id
    argTypes:
    - char*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: pciPathToInt64
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - busIdToInt64
    - NCCLCHECK
    - strlen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pciPathToInt64(char* path, int64_t* id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/utils.cc:69,1
    - Dst: cudaDeviceGetPCIBusId
      Src: /src/nccl/src/misc/utils.cc:69,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/utils.cc:70,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/misc/utils.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cudaDev
    - busId
    argTypes:
    - int
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 72
    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:75,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/utils.cc:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - hostname
    - maxlen
    - delim
    argTypes:
    - char*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: getHostName
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - gethostname
    - strncpy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getHostName(char* hostname, int maxlen, const char delim)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyExA
      Src: /src/nccl/src/misc/utils.cc:103,1
    - Dst: RegQueryValueExA
      Src: /src/nccl/src/misc/utils.cc:113,1
    - Dst: RegCloseKey
      Src: /src/nccl/src/misc/utils.cc:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - guid
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 124
    functionName: getWindowsMachineGuid
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 0
    functionsReached:
    - RegQueryValueExA
    - RegOpenKeyExA
    - RegCloseKey
    linkageType: ''
    returnType: bool
    signature: bool getWindowsMachineGuid(char* guid, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getHostName
      Src: /src/nccl/src/misc/utils.cc:132,1
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:133,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/utils.cc:135,1
    - Dst: INFO
      Src: /src/nccl/src/misc/utils.cc:136,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/utils.cc:137,1
    - Dst: fopen
      Src: /src/nccl/src/misc/utils.cc:141,1
    - Dst: fscanf
      Src: /src/nccl/src/misc/utils.cc:144,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/utils.cc:145,1
    - Dst: free
      Src: /src/nccl/src/misc/utils.cc:146,1
    - Dst: fclose
      Src: /src/nccl/src/misc/utils.cc:148,1
    - Dst: getWindowsMachineGuid
      Src: /src/nccl/src/misc/utils.cc:152,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/utils.cc:153,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/utils.cc:161,1
    - Dst: getHash
      Src: /src/nccl/src/misc/utils.cc:163,1
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 164
    functionName: getHostHashOnce
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - TRACE
    - INFO
    - fscanf
    - getHash
    - strlen
    - free
    - fopen
    - getWindowsMachineGuid
    - getHostName
    - strncpy
    - fclose
    linkageType: ''
    returnType: void
    signature: void getHostHashOnce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/misc/utils.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: getHostHash
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 2
    functionsReached:
    - std::call_once
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t getHostHash(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eatHash
      Src: /src/nccl/src/misc/utils.cc:173,1
    - Dst: eatHash
      Src: /src/nccl/src/misc/utils.cc:174,1
    - Dst: digestHash
      Src: /src/nccl/src/misc/utils.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - baseHash
    - value
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: hashCombine
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 4
    functionsReached:
    - eatHash
    - digestHash
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t hashCombine(uint64_t baseHash, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/nccl/src/misc/utils.cc:186,1
    - Dst: ncclOsGetPid
      Src: /src/nccl/src/misc/utils.cc:186,1
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:187,1
    - Dst: readlink
      Src: /src/nccl/src/misc/utils.cc:189,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/utils.cc:194,1
    - Dst: getHash
      Src: /src/nccl/src/misc/utils.cc:196,1
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: getPidHash
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 3
    functionsReached:
    - TRACE
    - sprintf
    - readlink
    - getHash
    - strlen
    - ncclOsGetPid
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t getPidHash(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/nccl/src/misc/utils.cc:212,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - string
    - ifList
    - maxList
    argTypes:
    - char*
    - struct netIf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 229
    functionName: parseStringList
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 3
    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:233,1
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:233,1
    - Dst: strncmp
      Src: /src/nccl/src/misc/utils.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - string
    - ref
    - matchExact
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    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: 242
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 242
    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:250,1
    - Dst: matchPort
      Src: /src/nccl/src/misc/utils.cc:251,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: 256
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 256
    functionName: matchIfList
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 2
    functionsReached:
    - matchPort
    - matchIf
    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:275,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/misc/utils.cc:276,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/misc/utils.cc:279,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/misc/utils.cc:280,1
    - Dst: INFO
      Src: /src/nccl/src/misc/utils.cc:297,1
    - Dst: malloc
      Src: /src/nccl/src/misc/utils.cc:298,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/misc/utils.cc:305,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/misc/utils.cc:306,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/misc/utils.cc:313,1
    - Dst: reinterpret_cast<Unhunk*>
      Src: /src/nccl/src/misc/utils.cc:321,1
    - Dst: malloc
      Src: /src/nccl/src/misc/utils.cc:326,1
    - Dst: INFO
      Src: /src/nccl/src/misc/utils.cc:327,1
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:333,1
    - Dst: abort
      Src: /src/nccl/src/misc/utils.cc:334,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: 335
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 335
    functionName: ncclMemoryStack::allocateSpilled
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - INFO
    - reinterpret_cast<uintptr_t>
    - abort
    - reinterpret_cast<void*>
    - malloc
    - reinterpret_cast<Unhunk*>
    - WARN
    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:343,1
    - Dst: free
      Src: /src/nccl/src/misc/utils.cc:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclMemoryStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 355
    functionName: ncclMemoryStackDestruct
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ncclMemoryStackDestruct(struct ncclMemoryStack* me)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/misc/utils.cc:366,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/utils.cc:374,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/utils.cc:375,1
    - Dst: toStr
      Src: /src/nccl/src/misc/utils.cc:375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - bits
    - mask
    - (*toStr)(int)
    - buf
    - bufLen
    - wildcard
    argTypes:
    - uint32_t
    - uint32_t
    - char*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 380
    functionName: ncclBitsToString
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - toStr
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclBitsToString(uint32_t bits, uint32_t mask, const char*
      (*toStr)(int), char *buf, size_t bufLen, const char *wildcard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/misc/utils.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hbits
    - key
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: ncclHashPointer
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 3
    functionsReached:
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ncclHashPointer(int hbits, void* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/misc/utils.cc:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - object
    - keySize
    - keyFieldOffset
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: readKey
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t readKey(void* object, int keySize, int keyFieldOffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/misc/utils.cc:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - object
    - nextFieldOffset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: readNextPtr
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void * readNextPtr(void* object, int nextFieldOffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/misc/utils.cc:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - nextFieldOffset
    - value
    argTypes:
    - void*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: writeNextPtr
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void writeNextPtr(void* object, int nextFieldOffset, void* value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:426,1
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:430,1
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:434,1
    - Dst: calloc
      Src: /src/nccl/src/misc/utils.cc:441,1
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:444,1
    - Dst: malloc
      Src: /src/nccl/src/misc/utils.cc:459,1
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:461,1
    - Dst: readNextPtr
      Src: /src/nccl/src/misc/utils.cc:475,1
    - Dst: readKey
      Src: /src/nccl/src/misc/utils.cc:476,1
    - Dst: ncclHashPointer
      Src: /src/nccl/src/misc/utils.cc:477,1
    - Dst: writeNextPtr
      Src: /src/nccl/src/misc/utils.cc:478,1
    - Dst: free
      Src: /src/nccl/src/misc/utils.cc:485,1
    - Dst: ncclHashPointer
      Src: /src/nccl/src/misc/utils.cc:491,1
    - Dst: readNextPtr
      Src: /src/nccl/src/misc/utils.cc:492,1
    - Dst: INFO
      Src: /src/nccl/src/misc/utils.cc:496,1
    - Dst: writeNextPtr
      Src: /src/nccl/src/misc/utils.cc:501,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 6
    argNames:
    - map
    - keySize
    - keyFieldOffset
    - nextFieldOffset
    - key
    - object
    argTypes:
    - struct ncclIntruAddressMap_untyped*
    - int
    - int
    - int
    - uintptr_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 506
    functionName: ncclIntruAddressMapInsert_untyped
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - calloc
    - INFO
    - readKey
    - writeNextPtr
    - free
    - readNextPtr
    - ncclHashPointer
    - malloc
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclIntruAddressMapInsert_untyped(\n    struct ncclIntruAddressMap_untyped*
      map,\n    int keySize, int keyFieldOffset, int nextFieldOffset,\n    uintptr_t
      key, void* object)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:514,1
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:518,1
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:522,1
    - Dst: ncclHashPointer
      Src: /src/nccl/src/misc/utils.cc:533,1
    - Dst: readKey
      Src: /src/nccl/src/misc/utils.cc:537,1
    - Dst: readNextPtr
      Src: /src/nccl/src/misc/utils.cc:542,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - map
    - keySize
    - keyFieldOffset
    - nextFieldOffset
    - key
    - object
    argTypes:
    - struct ncclIntruAddressMap_untyped*
    - int
    - int
    - int
    - uintptr_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 547
    functionName: ncclIntruAddressMapFind_untyped
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - readNextPtr
    - readKey
    - WARN
    - ncclHashPointer
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclIntruAddressMapFind_untyped(\n    struct ncclIntruAddressMap_untyped*
      map,\n    int keySize, int keyFieldOffset, int nextFieldOffset,\n    uintptr_t
      key, void** object)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:555,1
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:559,1
    - Dst: ncclHashPointer
      Src: /src/nccl/src/misc/utils.cc:568,1
    - Dst: readKey
      Src: /src/nccl/src/misc/utils.cc:573,1
    - Dst: readNextPtr
      Src: /src/nccl/src/misc/utils.cc:575,1
    - Dst: writeNextPtr
      Src: /src/nccl/src/misc/utils.cc:583,1
    - Dst: free
      Src: /src/nccl/src/misc/utils.cc:590,1
    - Dst: readNextPtr
      Src: /src/nccl/src/misc/utils.cc:599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - map
    - keySize
    - keyFieldOffset
    - nextFieldOffset
    - key
    argTypes:
    - struct ncclIntruAddressMap_untyped*
    - int
    - int
    - int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 604
    functionName: ncclIntruAddressMapRemove_untyped
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - readKey
    - writeNextPtr
    - free
    - readNextPtr
    - ncclHashPointer
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclIntruAddressMapRemove_untyped(\n    struct ncclIntruAddressMap_untyped*
      map,\n    int keySize, int keyFieldOffset, int nextFieldOffset,\n    uintptr_t
      key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:25,1
    - Dst: buildMlx5dvSymbols
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: wrap_mlx5dv_symbols
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 1
    functionsReached:
    - buildMlx5dvSymbols
    - std::call_once
    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: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    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: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    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: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    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:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct ibv_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_NOT_NULL
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:63,1
    - Dst: mlx5dv_internal_get_data_direct_sysfs_path
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:64,1
    - Dst: INFO
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:68,1
    - Dst: strerror
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - context
    - buf
    - buf_len
    argTypes:
    - struct ibv_context*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: wrap_mlx5dv_get_data_direct_sysfs_path
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 1
    functionsReached:
    - INFO
    - strerror
    - mlx5dv_internal_get_data_direct_sysfs_path
    - CHECK_NOT_NULL
    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:74,1
    - Dst: mlx5dv_internal_reg_dmabuf_mr
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:74,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: 75
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: wrap_mlx5dv_reg_dmabuf_mr
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 1
    functionsReached:
    - mlx5dv_internal_reg_dmabuf_mr
    - MLX5DV_PTR_CHECK_ERRNO
    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:82,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: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    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:
    - Dst: MLX5DV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:86,1
    - Dst: mlx5dv_internal_query_device
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx_in
    - attrs_out
    argTypes:
    - struct ibv_context*
    - struct mlx5dv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: wrap_mlx5dv_query_device
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 1
    functionsReached:
    - MLX5DV_INT_CHECK_RET_ERRNO
    - mlx5dv_internal_query_device
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_mlx5dv_query_device(struct ibv_context *ctx_in, struct
      mlx5dv_context *attrs_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_internal_create_qp
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - context
    - qp_attr
    - mlx5_qp_attr
    argTypes:
    - struct ibv_context*
    - struct ibv_qp_init_attr_ex*
    - struct mlx5dv_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: wrap_mlx5dv_create_qp
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 1
    functionsReached:
    - mlx5dv_internal_create_qp
    linkageType: ''
    returnType: struct ibv_qp
    signature: struct ibv_qp *wrap_mlx5dv_create_qp(struct ibv_context *context, struct
      ibv_qp_init_attr_ex *qp_attr, struct mlx5dv_qp_init_attr *mlx5_qp_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: getGdrMutex
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::mutex
    signature: std::mutex & getGdrMutex()
  - 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: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 4
    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: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    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: ncclOsDlopen
      Src: /src/nccl/src/misc/gdrwrap.cc:69,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:71,1
    - Dst: ncclOsDlerror
      Src: /src/nccl/src/misc/gdrwrap.cc:71,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:76,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:77,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:78,1
    - Dst: LOAD_SYM_OPTIONAL
      Src: /src/nccl/src/misc/gdrwrap.cc:79,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:80,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:81,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:82,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:83,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:84,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:85,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:86,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:87,1
    - Dst: ncclOsDlclose
      Src: /src/nccl/src/misc/gdrwrap.cc:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 109
    functionName: initOnceFunc
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 0
    functionsReached:
    - ncclOsDlerror
    - ncclOsDlopen
    - LOAD_SYM_OPTIONAL
    - LOAD_SYM
    - ncclOsDlclose
    - WARN
    linkageType: ''
    returnType: void
    signature: void initOnceFunc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/misc/gdrwrap.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: wrap_gdr_symbols
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - std::call_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:119,1
    - Dst: gdr_internal_open
      Src: /src/nccl/src/misc/gdrwrap.cc:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    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:127,1
    - Dst: gdr_internal_close
      Src: /src/nccl/src/misc/gdrwrap.cc:130,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - g
    argTypes:
    - gdr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: wrap_gdr_close
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - gdr_internal_close
    - WARN
    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:140,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:144,1
    - Dst: gdr_internal_pin_buffer
      Src: /src/nccl/src/misc/gdrwrap.cc:144,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:146,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: 150
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: wrap_gdr_pin_buffer
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - GDRLOCKCALL
    - gdr_internal_pin_buffer
    - WARN
    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: std::call_once
      Src: /src/nccl/src/misc/gdrwrap.cc:155,1
    - Dst: wrap_gdr_symbols
      Src: /src/nccl/src/misc/gdrwrap.cc:156,1
    - Dst: gdr_internal_runtime_get_version
      Src: /src/nccl/src/misc/gdrwrap.cc:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: ncclGdrPinV2Available
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 3
    functionsReached:
    - wrap_gdr_symbols
    - gdr_internal_runtime_get_version
    - std::call_once
    linkageType: ''
    returnType: bool
    signature: bool ncclGdrPinV2Available(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclGdrPinV2Available
      Src: /src/nccl/src/misc/gdrwrap.cc:166,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:167,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:171,1
    - Dst: gdr_internal_pin_buffer_v2
      Src: /src/nccl/src/misc/gdrwrap.cc:171,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - g
    - addr
    - size
    - flags
    - handle
    argTypes:
    - gdr_t
    - unsigned long
    - size_t
    - uint32_t
    - gdr_mh_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: wrap_gdr_pin_buffer_v2
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - ncclGdrPinV2Available
    - gdr_internal_pin_buffer_v2
    - WARN
    - GDRLOCKCALL
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_pin_buffer_v2(gdr_t g, unsigned long addr, size_t
      size, uint32_t flags, gdr_mh_t *handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:181,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:185,1
    - Dst: gdr_internal_unpin_buffer
      Src: /src/nccl/src/misc/gdrwrap.cc:185,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - g
    - handle
    argTypes:
    - gdr_t
    - gdr_mh_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 191
    functionName: wrap_gdr_unpin_buffer
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - GDRLOCKCALL
    - gdr_internal_unpin_buffer
    - WARN
    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:195,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:199,1
    - Dst: gdr_internal_get_info
      Src: /src/nccl/src/misc/gdrwrap.cc:199,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:201,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: 205
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 205
    functionName: wrap_gdr_get_info
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - GDRLOCKCALL
    - WARN
    - gdr_internal_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: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:209,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:213,1
    - Dst: gdr_internal_map
      Src: /src/nccl/src/misc/gdrwrap.cc:213,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:215,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: 219
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 219
    functionName: wrap_gdr_map
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - GDRLOCKCALL
    - WARN
    - 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:223,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:227,1
    - Dst: gdr_internal_unmap
      Src: /src/nccl/src/misc/gdrwrap.cc:227,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:229,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: 233
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: wrap_gdr_unmap
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - GDRLOCKCALL
    - WARN
    - gdr_internal_unmap
    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:237,1
    - Dst: gdr_internal_runtime_get_version
      Src: /src/nccl/src/misc/gdrwrap.cc:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - major
    - minor
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: wrap_gdr_runtime_get_version
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - gdr_internal_runtime_get_version
    - WARN
    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:246,1
    - Dst: gdr_internal_driver_get_version
      Src: /src/nccl/src/misc/gdrwrap.cc:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - g
    - major
    - minor
    argTypes:
    - gdr_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: wrap_gdr_driver_get_version
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - gdr_internal_driver_get_version
    - WARN
    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:255,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:259,1
    - Dst: gdr_internal_copy_to_mapping
      Src: /src/nccl/src/misc/gdrwrap.cc:259,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:261,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: 265
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 265
    functionName: wrap_gdr_copy_to_mapping
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - GDRLOCKCALL
    - gdr_internal_copy_to_mapping
    - WARN
    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:269,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:273,1
    - Dst: gdr_internal_copy_from_mapping
      Src: /src/nccl/src/misc/gdrwrap.cc:273,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:275,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: 279
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 279
    functionName: wrap_gdr_copy_from_mapping
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 0
    functionsReached:
    - GDRLOCKCALL
    - gdr_internal_copy_from_mapping
    - WARN
    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: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    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: ncclOsNvmlOpen
      Src: /src/nccl/src/misc/nvmlwrap.cc:75,1
    - Dst: ncclOsDlsym
      Src: /src/nccl/src/misc/nvmlwrap.cc:106,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:123,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:123,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:131,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:131,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:138,1
    - Dst: pfn_nvmlDeviceGetHandleByIndex
      Src: /src/nccl/src/misc/nvmlwrap.cc:144,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:146,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:146,1
    - Dst: pfn_nvmlDeviceGetCudaComputeCapability
      Src: /src/nccl/src/misc/nvmlwrap.cc:151,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:153,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:153,1
    - Dst: pfn_nvmlDeviceGetP2PStatus
      Src: /src/nccl/src/misc/nvmlwrap.cc:164,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:166,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:166,1
    - Dst: pfn_nvmlDeviceGetP2PStatus
      Src: /src/nccl/src/misc/nvmlwrap.cc:171,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:173,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:173,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 182
    functionName: ncclNvmlEnsureInitialized
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - ncclOsNvmlOpen
    - pfn_nvmlDeviceGetP2PStatus
    - ncclOsDlsym
    - pfn_nvmlErrorString
    - pfn_nvmlDeviceGetCudaComputeCapability
    - pfn_nvmlDeviceGetHandleByIndex
    - WARN
    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: 191
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 191
    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:204,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:204,1
    - Dst: NVMLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pciBusId
    - device
    argTypes:
    - char*
    - nvmlDevice_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 208
    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:211,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - index
    - device
    argTypes:
    - unsigned int
    - nvmlDevice_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 214
    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:217,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - index
    argTypes:
    - nvmlDevice_t
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 225
    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:228,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:228,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:230,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: 232
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: ncclNvmlDeviceGetNvLinkState
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - NVMLTRY
    - ncclNvmlEnsureInitialized
    - 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:235,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:235,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:237,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: 239
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: ncclNvmlDeviceGetNvLinkRemotePciInfo
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - NVMLTRY
    - ncclNvmlEnsureInitialized
    - 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:245,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:245,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:247,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: 249
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: ncclNvmlDeviceGetNvLinkCapability
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - NVMLTRY
    - ncclNvmlEnsureInitialized
    - 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:252,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - major
    - minor
    argTypes:
    - nvmlDevice_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 262
    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:268,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:268,1
    - Dst: NVMLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:284,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: 287
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 287
    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:290,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:290,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - valuesCount
    - values
    argTypes:
    - nvmlDevice_t
    - int
    - nvmlFieldValue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: ncclNvmlDeviceGetFieldValues
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - NVMLTRY
    - ncclNvmlEnsureInitialized
    - 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:298,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:298,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - device
    - gpuFabricInfo
    argTypes:
    - nvmlDevice_t
    - nvmlGpuFabricInfoV_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: ncclNvmlDeviceGetGpuFabricInfoV
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 1
    functionsReached:
    - NVMLTRY
    - ncclNvmlEnsureInitialized
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlDeviceGetGpuFabricInfoV(nvmlDevice_t device, nvmlGpuFabricInfoV_t
      *gpuFabricInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:306,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:306,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - device
    - platformInfo
    argTypes:
    - nvmlDevice_t
    - nvmlPlatformInfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: ncclNvmlDeviceGetPlatformInfo
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 1
    functionsReached:
    - NVMLTRY
    - ncclNvmlEnsureInitialized
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlDeviceGetPlatformInfo(nvmlDevice_t device, nvmlPlatformInfo_t
      *platformInfo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:315,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:315,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:320,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - status
    argTypes:
    - struct ncclNvmlCCStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 348
    functionName: ncclNvmlGetCCStatus
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 1
    functionsReached:
    - NVMLTRY
    - ncclNvmlEnsureInitialized
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlGetCCStatus(struct ncclNvmlCCStatus *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/misc/ibvwrap.cc:27,1
    - Dst: buildIbvSymbols
      Src: /src/nccl/src/misc/ibvwrap.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: wrap_ibv_symbols
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - buildIbvSymbols
    - std::call_once
    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: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: CHECK_NOT_NULL
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    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: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    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: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    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: 75
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 75
    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: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    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: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    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: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    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: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    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: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    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: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    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:108,1
    - Dst: ibv_internal_fork_init
      Src: /src/nccl/src/misc/ibvwrap.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: wrap_ibv_fork_init
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - IBV_INT_CHECK
    - ibv_internal_fork_init
    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:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ret
    - num_devices
    argTypes:
    - struct ibv_device***
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    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:118,1
    - Dst: ibv_internal_free_device_list
      Src: /src/nccl/src/misc/ibvwrap.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct ibv_device**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: wrap_ibv_free_device_list
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - IBV_PASSTHRU
    - ibv_internal_free_device_list
    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:123,1
    - Dst: exit
      Src: /src/nccl/src/misc/ibvwrap.cc:124,1
    - Dst: ibv_internal_get_device_name
      Src: /src/nccl/src/misc/ibvwrap.cc:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct ibv_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: wrap_ibv_get_device_name
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - ibv_internal_get_device_name
    - WARN
    - exit
    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:130,1
    - Dst: ibv_internal_open_device
      Src: /src/nccl/src/misc/ibvwrap.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ret
    - device
    argTypes:
    - struct ibv_context**
    - struct ibv_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: wrap_ibv_open_device
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - IBV_PTR_CHECK
    - ibv_internal_open_device
    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:134,1
    - Dst: ibv_internal_close_device
      Src: /src/nccl/src/misc/ibvwrap.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: wrap_ibv_close_device
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - IBV_INT_CHECK
    - ibv_internal_close_device
    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:138,1
    - Dst: ibv_internal_get_async_event
      Src: /src/nccl/src/misc/ibvwrap.cc:138,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: 139
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: wrap_ibv_get_async_event
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - IBV_INT_CHECK
    - ibv_internal_get_async_event
    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:142,1
    - Dst: ibv_internal_ack_async_event
      Src: /src/nccl/src/misc/ibvwrap.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - struct ibv_async_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: wrap_ibv_ack_async_event
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - IBV_PASSTHRU
    - ibv_internal_ack_async_event
    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:146,1
    - Dst: ibv_internal_query_device
      Src: /src/nccl/src/misc/ibvwrap.cc:146,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: 147
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: wrap_ibv_query_device
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 2
    functionsReached:
    - ibv_internal_query_device
    - IBV_INT_CHECK_RET_ERRNO
    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:152,1
    - Dst: memset
      Src: /src/nccl/src/misc/ibvwrap.cc:154,1
    - Dst: IBV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:155,1
    - Dst: ibv_internal_query_port
      Src: /src/nccl/src/misc/ibvwrap.cc:155,1
    - Dst: IBV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:159,1
    - Dst: ibv_internal_query_port
      Src: /src/nccl/src/misc/ibvwrap.cc:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - context
    - port_num
    - port_attr
    argTypes:
    - struct ibv_context*
    - uint8_t
    - struct ibv_port_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: wrap_ibv_query_port
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 2
    functionsReached:
    - ibv_internal_query_port
    - memset
    - ibv_query_port_ex
    - IBV_INT_CHECK_RET_ERRNO
    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:165,1
    - Dst: ibv_internal_query_gid
      Src: /src/nccl/src/misc/ibvwrap.cc:165,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: 166
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: wrap_ibv_query_gid
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 5
    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:169,1
    - Dst: ibv_internal_query_qp
      Src: /src/nccl/src/misc/ibvwrap.cc:169,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: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: wrap_ibv_query_qp
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached:
    - ibv_internal_query_qp
    - IBV_INT_CHECK_RET_ERRNO
    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:173,1
    - Dst: ibv_internal_alloc_pd
      Src: /src/nccl/src/misc/ibvwrap.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ret
    - context
    argTypes:
    - struct ibv_pd**
    - struct ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: wrap_ibv_alloc_pd
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 3
    functionsReached:
    - ibv_internal_alloc_pd
    - IBV_PTR_CHECK_ERRNO
    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:177,1
    - Dst: ibv_internal_dealloc_pd
      Src: /src/nccl/src/misc/ibvwrap.cc:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pd
    argTypes:
    - struct ibv_pd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: wrap_ibv_dealloc_pd
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 3
    functionsReached:
    - ibv_internal_dealloc_pd
    - IBV_INT_CHECK_RET_ERRNO
    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:181,1
    - Dst: ibv_internal_reg_mr
      Src: /src/nccl/src/misc/ibvwrap.cc:181,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: 182
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: wrap_ibv_reg_mr
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 4
    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:186,1
    - Dst: ibv_internal_reg_mr
      Src: /src/nccl/src/misc/ibvwrap.cc:189,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: 190
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: wrap_direct_ibv_reg_mr
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached:
    - ibv_internal_reg_mr
    - WARN
    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:197,1
    - Dst: ibv_internal_reg_mr_iova2
      Src: /src/nccl/src/misc/ibvwrap.cc:197,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: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: wrap_ibv_reg_mr_iova2
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 4
    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:202,1
    - Dst: ibv_internal_reg_dmabuf_mr
      Src: /src/nccl/src/misc/ibvwrap.cc:202,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: 203
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 203
    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:210,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: 211
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 211
    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:214,1
    - Dst: ibv_internal_dereg_mr
      Src: /src/nccl/src/misc/ibvwrap.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mr
    argTypes:
    - struct ibv_mr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: wrap_ibv_dereg_mr
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 8
    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:218,1
    - Dst: ibv_internal_create_cq
      Src: /src/nccl/src/misc/ibvwrap.cc:218,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: 219
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: wrap_ibv_create_cq
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 3
    functionsReached:
    - ibv_internal_create_cq
    - IBV_PTR_CHECK_ERRNO
    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:222,1
    - Dst: ibv_internal_destroy_cq
      Src: /src/nccl/src/misc/ibvwrap.cc:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cq
    argTypes:
    - struct ibv_cq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: wrap_ibv_destroy_cq
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 3
    functionsReached:
    - ibv_internal_destroy_cq
    - IBV_INT_CHECK_RET_ERRNO
    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:226,1
    - Dst: ibv_internal_destroy_qp
      Src: /src/nccl/src/misc/ibvwrap.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ibv_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: wrap_ibv_destroy_qp
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 4
    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:230,1
    - Dst: ibv_internal_create_qp
      Src: /src/nccl/src/misc/ibvwrap.cc:230,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: 231
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 231
    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:235,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:236,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:237,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:238,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:239,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:240,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:241,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:242,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:243,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: 245
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 245
    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: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    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:256,1
    - Dst: ibvQpStateName
      Src: /src/nccl/src/misc/ibvwrap.cc:257,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:259,1
    - Dst: wrap_ibv_get_device_name
      Src: /src/nccl/src/misc/ibvwrap.cc:259,1
    - Dst: wrap_ibv_query_qp
      Src: /src/nccl/src/misc/ibvwrap.cc:264,1
    - Dst: QP_ATTR
      Src: /src/nccl/src/misc/ibvwrap.cc:268,1
    - Dst: QP_ATTR
      Src: /src/nccl/src/misc/ibvwrap.cc:272,1
    - Dst: ibvGetGidStr
      Src: /src/nccl/src/misc/ibvwrap.cc:275,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/ibvwrap.cc:280,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/misc/ibvwrap.cc:280,1
    - Dst: ibvGetGidStr
      Src: /src/nccl/src/misc/ibvwrap.cc:281,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:285,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: 288
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 288
    functionName: ibvModifyQpLog
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached:
    - ibvQpStateName
    - QP_ATTR
    - wrap_ibv_query_qp
    - wrap_ibv_get_device_name
    - ibvGetGidStr
    - wrap_ibv_query_gid
    - NCCLCHECKGOTO
    - snprintf
    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:293,1
    - Dst: ncclParamIbMQpRetryTimeout
      Src: /src/nccl/src/misc/ibvwrap.cc:294,1
    - Dst: CHECK_NOT_NULL
      Src: /src/nccl/src/misc/ibvwrap.cc:295,1
    - Dst: ibvModifyQpLog
      Src: /src/nccl/src/misc/ibvwrap.cc:299,1
    - Dst: INFO
      Src: /src/nccl/src/misc/ibvwrap.cc:300,1
    - Dst: strerror
      Src: /src/nccl/src/misc/ibvwrap.cc:300,1
    - Dst: std::this_thread::sleep_for
      Src: /src/nccl/src/misc/ibvwrap.cc:302,1
    - Dst: std::chrono::milliseconds
      Src: /src/nccl/src/misc/ibvwrap.cc:302,1
    - Dst: ibv_internal_modify_qp
      Src: /src/nccl/src/misc/ibvwrap.cc:304,1
    - Dst: IBV_MQP_RETRY_ERRNO_ALL
      Src: /src/nccl/src/misc/ibvwrap.cc:306,1
    - Dst: ibvModifyQpLog
      Src: /src/nccl/src/misc/ibvwrap.cc:308,1
    - Dst: WARN
      Src: /src/nccl/src/misc/ibvwrap.cc:309,1
    - Dst: strerror
      Src: /src/nccl/src/misc/ibvwrap.cc:309,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: 313
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 313
    functionName: wrap_ibv_modify_qp
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 5
    functionsReached:
    - INFO
    - std::this_thread::sleep_for
    - ncclParamIbMQpRetryTimeout
    - strerror
    - ncclParamIbMQpRetryCnt
    - IBV_MQP_RETRY_ERRNO_ALL
    - ibvModifyQpLog
    - WARN
    - ibv_internal_modify_qp
    - std::chrono::milliseconds
    - CHECK_NOT_NULL
    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:316,1
    - Dst: ibv_internal_query_ece
      Src: /src/nccl/src/misc/ibvwrap.cc:316,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: 317
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 317
    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:320,1
    - Dst: ibv_internal_set_ece
      Src: /src/nccl/src/misc/ibvwrap.cc:320,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: 321
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: wrap_ibv_set_ece
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 3
    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:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ret
    - event
    argTypes:
    - char**
    - enum ibv_event_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 326
    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: 24
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 1
    argNames:
    - status
    argTypes:
    - enum ibv_wc_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 355
    functionName: ibvWcStatusStr
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ibvWcStatusStr(enum ibv_wc_status status)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - enum ibv_wc_opcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 370
    functionName: ibvWcOpcodeStr
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ibvWcOpcodeStr(enum ibv_wc_opcode opcode)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - enum ibv_wr_opcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 383
    functionName: ibvWrOpcodeStr
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ibvWrOpcodeStr(enum ibv_wr_opcode opcode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - opname
    - ptrname
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: PtrCheck
    functionSourceFile: /src/nccl/src/misc/argcheck.cc
    functionUses: 21
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t PtrCheck(const void* ptr, const char* opname, const char*
      ptrname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/argcheck.cc:39,1
    - Dst: PtrCheck
      Src: /src/nccl/src/misc/argcheck.cc:39,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - comm
    - opname
    - ptrname
    argTypes:
    - struct ncclComm*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: CommCheck
    functionSourceFile: /src/nccl/src/misc/argcheck.cc
    functionUses: 21
    functionsReached:
    - PtrCheck
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t CommCheck(struct ncclComm* comm, const char* opname, const
      char* ptrname)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ncclTypeSize
      Src: /src/nccl/src/misc/argcheck.cc:68,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/argcheck.cc:71,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/misc/argcheck.cc:71,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/argcheck.cc:72,1
    - Dst: ncclDevrFindWindow
      Src: /src/nccl/src/misc/argcheck.cc:72,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/argcheck.cc:73,1
    - Dst: ncclDevrFindWindow
      Src: /src/nccl/src/misc/argcheck.cc:73,1
    - Dst: INFO
      Src: /src/nccl/src/misc/argcheck.cc:79,1
    - Dst: INFO
      Src: /src/nccl/src/misc/argcheck.cc:86,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/argcheck.cc:89,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/misc/argcheck.cc:89,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:96,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:110,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:115,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:125,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:130,1
    - Dst: free
      Src: /src/nccl/src/misc/argcheck.cc:138,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 88
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct ncclInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 142
    functionName: registrationCheck
    functionSourceFile: /src/nccl/src/misc/argcheck.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - INFO
    - ncclTypeSize
    - ncclDevrFindWindow
    - bootstrapAllGather
    - free
    - NCCLCHECKGOTO
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t registrationCheck(struct ncclInfo* info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/argcheck.cc:148,1
    - Dst: registrationCheck
      Src: /src/nccl/src/misc/argcheck.cc:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - argsInfo
    argTypes:
    - struct ncclArgsInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: ncclArgsGlobalCheck
    functionSourceFile: /src/nccl/src/misc/argcheck.cc
    functionUses: 1
    functionsReached:
    - registrationCheck
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclArgsGlobalCheck(struct ncclArgsInfo* argsInfo)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:156,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:160,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:169,1
    - Dst: ncclUserRedOpMangle
      Src: /src/nccl/src/misc/argcheck.cc:172,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:175,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/argcheck.cc:182,1
    - Dst: CudaPtrCheck
      Src: /src/nccl/src/misc/argcheck.cc:182,1
    - Dst: INFO
      Src: /src/nccl/src/misc/argcheck.cc:186,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/argcheck.cc:190,1
    - Dst: CudaPtrCheck
      Src: /src/nccl/src/misc/argcheck.cc:190,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/argcheck.cc:193,1
    - Dst: CudaPtrCheck
      Src: /src/nccl/src/misc/argcheck.cc:193,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/argcheck.cc:199,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/misc/argcheck.cc:199,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/misc/argcheck.cc:202,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct ncclInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 207
    functionName: ArgsCheck
    functionSourceFile: /src/nccl/src/misc/argcheck.cc
    functionUses: 1
    functionsReached:
    - ncclIntruQueueEnqueue
    - INFO
    - ncclCalloc
    - ncclUserRedOpMangle
    - CudaPtrCheck
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ArgsCheck(struct ncclInfo* info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::strcmp
      Src: /src/nccl/src/param/param.cc:27,1
    - Dst: std::call_once
      Src: /src/nccl/src/param/param.cc:33,1
    - Dst: ncclParamListOf
      Src: /src/nccl/src/param/param.cc:34,1
    - Dst: auto::resolve
      Src: /src/nccl/src/param/param.cc:35,1
    - Dst: ncclParamNoCacheStr
      Src: /src/nccl/src/param/param.cc:35,1
    - Dst: ncclStringSet::count
      Src: /src/nccl/src/param/param.cc:36,1
    - Dst: ncclStringSet::count
      Src: /src/nccl/src/param/param.cc:40,1
    - Dst: INFO
      Src: /src/nccl/src/param/param.cc:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: ncclParamIsCacheDisabled
    functionSourceFile: /src/nccl/src/param/param.cc
    functionUses: 2
    functionsReached:
    - INFO
    - ncclParamListOf
    - std::strcmp
    - ncclParamNoCacheStr
    - ncclStringSet::count
    - std::call_once
    - auto::resolve
    linkageType: ''
    returnType: NCCL_PARAM_COMPILER_EXPORT_SYMBOL
    signature: NCCL_PARAM_COMPILER_EXPORT_SYMBOL ncclParamIsCacheDisabled(const char*
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclInitEnv
      Src: /src/nccl/src/param/param.cc:50,1
    - Dst: ncclEnvPluginGetEnv
      Src: /src/nccl/src/param/param.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: ncclParamEnvPluginGet
    functionSourceFile: /src/nccl/src/param/param.cc
    functionUses: 2
    functionsReached:
    - ncclInitEnv
    - ncclEnvPluginGetEnv
    linkageType: ''
    returnType: NCCL_PARAM_COMPILER_EXPORT_SYMBOL
    signature: NCCL_PARAM_COMPILER_EXPORT_SYMBOL * ncclParamEnvPluginGet(const char*
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: ncclParamRegistryInstance
    functionSourceFile: /src/nccl/src/param/param_registry.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NCCL_PARAM_COMPILER_EXPORT_SYMBOL
    signature: NCCL_PARAM_COMPILER_EXPORT_SYMBOL * ncclParamRegistryInstance()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/nccl/src/param/param_registry.cc:18,1
    - Dst: map::find
      Src: /src/nccl/src/param/param_registry.cc:20,1
    - Dst: map::end
      Src: /src/nccl/src/param/param_registry.cc:20,1
    - Dst: WARN
      Src: /src/nccl/src/param/param_registry.cc:21,1
    - Dst: std::string::c_str
      Src: /src/nccl/src/param/param_registry.cc:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - key
    - info
    - param
    argTypes:
    - std::string
    - ncclParamInfo_t
    - ncclParamInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: ncclParamRegistry::add
    functionSourceFile: /src/nccl/src/param/param_registry.cc
    functionUses: 1
    functionsReached:
    - std::string::c_str
    - map::end
    - map::find
    - WARN
    - state
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclParamRegistry::add(std::string key, ncclParamInfo_t
      info,\n                                    ncclParamInterface* param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/nccl/src/param/param_registry.cc:29,1
    - Dst: map::find
      Src: /src/nccl/src/param/param_registry.cc:31,1
    - Dst: map::end
      Src: /src/nccl/src/param/param_registry.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: ncclParamRegistry::find
    functionSourceFile: /src/nccl/src/param/param_registry.cc
    functionUses: 0
    functionsReached:
    - map::end
    - state
    - map::find
    linkageType: ''
    returnType: ncclParamRegistry::mapEntry
    signature: ncclParamRegistry::mapEntry * ncclParamRegistry::find(std::string key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/nccl/src/param/param_registry.cc:36,1
    - Dst: map::erase
      Src: /src/nccl/src/param/param_registry.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: ncclParamRegistry::remove
    functionSourceFile: /src/nccl/src/param/param_registry.cc
    functionUses: 0
    functionsReached:
    - state
    - map::erase
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclParamRegistry::remove(std::string key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ncclParamRegistry::mapEntry*>
      Src: /src/nccl/src/param/c_api.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - ncclParamHandle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: unwrap
    functionSourceFile: /src/nccl/src/param/c_api.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ncclParamRegistry::mapEntry*>
    linkageType: ''
    returnType: ncclParamRegistry::mapEntry
    signature: ncclParamRegistry::mapEntry * unwrap(ncclParamHandle_t* h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::unordered_set::count
      Src: /src/nccl/src/param/c_api.cc:32,1
    - Dst: std::unordered_set::emplace
      Src: /src/nccl/src/param/c_api.cc:36,1
    - Dst: INFO
      Src: /src/nccl/src/param/c_api.cc:38,1
    - Dst: INFO
      Src: /src/nccl/src/param/c_api.cc:40,1
    - Dst: INFO
      Src: /src/nccl/src/param/c_api.cc:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - flags
    - key
    argTypes:
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: ncclParamCheckFlag
    functionSourceFile: /src/nccl/src/param/c_api.cc
    functionUses: 0
    functionsReached:
    - std::unordered_set::count
    - INFO
    - std::unordered_set::emplace
    linkageType: ''
    returnType: void
    signature: void ncclParamCheckFlag(uint64_t flags, const char* key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamRegistry::find
      Src: /src/nccl/src/param/c_api.cc:56,1
    - Dst: INFO
      Src: /src/nccl/src/param/c_api.cc:58,1
    - Dst: ncclParamCheckFlag
      Src: /src/nccl/src/param/c_api.cc:61,1
    - Dst: reinterpret_cast<ncclParamHandle_t*>
      Src: /src/nccl/src/param/c_api.cc:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - out
    - key
    argTypes:
    - ncclParamHandle_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: ncclParamBind
    functionSourceFile: /src/nccl/src/param/c_api.cc
    functionUses: 0
    functionsReached:
    - ncclParamCheckFlag
    - INFO
    - reinterpret_cast<ncclParamHandle_t*>
    - ncclParamRegistry::find
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclParamBind(ncclParamHandle_t** out, const char* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - suffix
    - ','
    - ctype
    - ','
    - tid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 83
    functionName: NCCL_PARAM_DEFINE_TYPED_GETTER
    functionSourceFile: /src/nccl/src/param/c_api.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_PARAM_DEFINE_TYPED_GETTER(suffix, ctype, tid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unwrap
      Src: /src/nccl/src/param/c_api.cc:102,1
    - Dst: INFO
      Src: /src/nccl/src/param/c_api.cc:104,1
    - Dst: unwrap
      Src: /src/nccl/src/param/c_api.cc:109,1
    - Dst: toString
      Src: /src/nccl/src/param/c_api.cc:109,1
    - Dst: std::string::c_str
      Src: /src/nccl/src/param/c_api.cc:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - h
    - out
    argTypes:
    - ncclParamHandle_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: ncclParamGetStr
    functionSourceFile: /src/nccl/src/param/c_api.cc
    functionUses: 0
    functionsReached:
    - toString
    - INFO
    - std::string::c_str
    - unwrap
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclParamGetStr(ncclParamHandle_t* h, const char** out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unwrap
      Src: /src/nccl/src/param/c_api.cc:117,1
    - Dst: getRawData
      Src: /src/nccl/src/param/c_api.cc:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - h
    - out
    - maxLen
    - len
    argTypes:
    - ncclParamHandle_t*
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: ncclParamGet
    functionSourceFile: /src/nccl/src/param/c_api.cc
    functionUses: 0
    functionsReached:
    - getRawData
    - unwrap
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclParamGet(ncclParamHandle_t* h, void* out, int maxLen,
      int* len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamDumpAllFlag
      Src: /src/nccl/src/param/c_api.cc:132,1
    - Dst: ncclParamRegistry::instance
      Src: /src/nccl/src/param/c_api.cc:135,1
    - Dst: std::vector::clear
      Src: /src/nccl/src/param/c_api.cc:137,1
    - Dst: std::vector::reserve
      Src: /src/nccl/src/param/c_api.cc:138,1
    - Dst: size
      Src: /src/nccl/src/param/c_api.cc:138,1
    - Dst: std::vector::emplace_back
      Src: /src/nccl/src/param/c_api.cc:141,1
    - Dst: first::data
      Src: /src/nccl/src/param/c_api.cc:141,1
    - Dst: first::size
      Src: /src/nccl/src/param/c_api.cc:141,1
    - Dst: std::vector::clear
      Src: /src/nccl/src/param/c_api.cc:144,1
    - Dst: std::vector::reserve
      Src: /src/nccl/src/param/c_api.cc:145,1
    - Dst: std::vector::size
      Src: /src/nccl/src/param/c_api.cc:145,1
    - Dst: std::vector::push_back
      Src: /src/nccl/src/param/c_api.cc:147,1
    - Dst: c_str
      Src: /src/nccl/src/param/c_api.cc:147,1
    - Dst: std::vector::data
      Src: /src/nccl/src/param/c_api.cc:150,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/param/c_api.cc:151,1
    - Dst: std::vector::size
      Src: /src/nccl/src/param/c_api.cc:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - table
    - tableLen
    argTypes:
    - char***
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 153
    functionName: ncclParamGetAllParameterKeys
    functionSourceFile: /src/nccl/src/param/c_api.cc
    functionUses: 0
    functionsReached:
    - size
    - std::vector::clear
    - first::size
    - std::vector::data
    - ncclParamDumpAllFlag
    - static_cast<int>
    - std::vector::reserve
    - std::vector::size
    - ncclParamRegistry::instance
    - std::vector::push_back
    - std::vector::emplace_back
    - c_str
    - first::data
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclParamGetAllParameterKeys(const char*** table, int*
      tableLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamRegistry::find
      Src: /src/nccl/src/param/c_api.cc:162,1
    - Dst: ncclParamCheckFlag
      Src: /src/nccl/src/param/c_api.cc:165,1
    - Dst: auto*::param::toString
      Src: /src/nccl/src/param/c_api.cc:166,1
    - Dst: std::string::c_str
      Src: /src/nccl/src/param/c_api.cc:167,1
    - Dst: static_cast<int>
      Src: /src/nccl/src/param/c_api.cc:168,1
    - Dst: std::string::length
      Src: /src/nccl/src/param/c_api.cc:168,1
    - Dst: INFO
      Src: /src/nccl/src/param/c_api.cc:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - key
    - value
    - valueLen
    argTypes:
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 176
    functionName: ncclParamGetParameter
    functionSourceFile: /src/nccl/src/param/c_api.cc
    functionUses: 0
    functionsReached:
    - ncclParamCheckFlag
    - static_cast<int>
    - INFO
    - std::string::length
    - std::string::c_str
    - auto*::param::toString
    - ncclParamRegistry::find
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclParamGetParameter(const char* key, const char** value,
      int* valueLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamDumpAllFlag
      Src: /src/nccl/src/param/c_api.cc:180,1
    - Dst: printf
      Src: /src/nccl/src/param/c_api.cc:181,1
    - Dst: ncclParamRegistry::instance
      Src: /src/nccl/src/param/c_api.cc:183,1
    - Dst: printf
      Src: /src/nccl/src/param/c_api.cc:185,1
    - Dst: second::param::dump
      Src: /src/nccl/src/param/c_api.cc:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: ncclParamDumpAll
    functionSourceFile: /src/nccl/src/param/c_api.cc
    functionUses: 0
    functionsReached:
    - ncclParamRegistry::instance
    - second::param::dump
    - ncclParamDumpAllFlag
    - printf
    linkageType: ''
    returnType: void
    signature: void ncclParamDumpAll()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/param/ncclparam.cc:18,1
    - Dst: strcmp
      Src: /src/nccl/src/param/ncclparam.cc:20,1
    - Dst: fprintf
      Src: /src/nccl/src/param/ncclparam.cc:23,1
    - Dst: fprintf
      Src: /src/nccl/src/param/ncclparam.cc:24,1
    - Dst: fprintf
      Src: /src/nccl/src/param/ncclparam.cc:25,1
    - Dst: setenv
      Src: /src/nccl/src/param/ncclparam.cc:31,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/param/ncclparam.cc:38,1
    - Dst: ncclCommInitAll
      Src: /src/nccl/src/param/ncclparam.cc:40,1
    - Dst: ncclParamDumpAll
      Src: /src/nccl/src/param/ncclparam.cc:47,1
    - Dst: ncclParamGetAllParameterKeys
      Src: /src/nccl/src/param/ncclparam.cc:51,1
    - Dst: printf
      Src: /src/nccl/src/param/ncclparam.cc:53,1
    - Dst: ncclCommDestroy
      Src: /src/nccl/src/param/ncclparam.cc:58,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 14
    functionDepth: 5
    functionLinenumber: 14
    functionLinenumberEnd: 61
    functionName: main
    functionSourceFile: /src/nccl/src/param/ncclparam.cc
    functionUses: 1
    functionsReached:
    - ncclCommDestroy
    - fprintf
    - setenv
    - ncclParamDumpAll
    - cudaSetDevice
    - strcmp
    - printf
    - ncclParamGetAllParameterKeys
    - ncclCommInitAll
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:76,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:82,1
    - Dst: rasRanksConvertToPeers
      Src: /src/nccl/src/ras/peers.cc:82,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:85,1
    - Dst: rasPeersUpdate
      Src: /src/nccl/src/ras/peers.cc:85,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:87,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:90,1
    - Dst: rasPeersDump
      Src: /src/nccl/src/ras/peers.cc:91,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:94,1
    - Dst: rasNetUpdatePeers
      Src: /src/nccl/src/ras/peers.cc:94,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:98,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ranks
    - nranks
    argTypes:
    - struct rasRankInit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: rasLocalHandleAddRanks
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - INFO
    - rasPeersDump
    - rasPeersUpdate
    - memcmp
    - free
    - rasRanksConvertToPeers
    - NCCLCHECKGOTO
    - rasNetUpdatePeers
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLocalHandleAddRanks(struct rasRankInit* ranks, int
      nranks)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/ras/peers.cc:115,1
    - Dst: qsort
      Src: /src/nccl/src/ras/peers.cc:118,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:123,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/peers.cc:123,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:131,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:138,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:147,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:150,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:163,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:179,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:180,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:192,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 5
    argNames:
    - ranks
    - nranks
    - rankPeers
    - nRankPeers
    - newNRasPeers
    argTypes:
    - struct rasRankInit*
    - int
    - struct rasPeerInfo**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 196
    functionName: rasRanksConvertToPeers
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - qsort
    - ncclCalloc
    - INFO
    - memcpy
    - memcmp
    - ncclSocketsCompare
    - free
    - NCCLCHECKGOTO
    - memset
    - ncclSocketToString
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t rasRanksConvertToPeers(struct rasRankInit* ranks, int
      nranks,\n                                           struct rasPeerInfo** rankPeers,
      int *nRankPeers, int* newNRasPeers)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:215,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:238,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/peers.cc:238,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:254,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:260,1
    - Dst: rasNewPeerNotify
      Src: /src/nccl/src/ras/peers.cc:261,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:263,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:265,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:270,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:271,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:278,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:280,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:282,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:288,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:290,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:315,1
    - Dst: rasNewPeerNotify
      Src: /src/nccl/src/ras/peers.cc:316,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:318,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:320,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:325,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:333,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:335,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:337,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:344,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:346,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:356,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:362,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/peers.cc:367,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:368,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:375,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/peers.cc:377,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:378,1
    - Dst: getHash
      Src: /src/nccl/src/ras/peers.cc:381,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:388,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 133
    argCount: 3
    argNames:
    - rankPeers
    - nRankPeers
    - newNRasPeers
    argTypes:
    - struct rasPeerInfo*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 399
    functionName: rasPeersUpdate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - ncclCalloc
    - rasNewPeerNotify
    - INFO
    - rasPeerFind
    - memcpy
    - getHash
    - memcmp
    - ncclSocketsCompare
    - free
    - NCCLCHECKGOTO
    - ncclSocketToString
    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:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 407
    functionName: rasPeerFind
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    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:432,1
    - Dst: rasLinkPropagateUpdate
      Src: /src/nccl/src/ras/peers.cc:433,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:436,1
    - Dst: rasLinkReinitConns
      Src: /src/nccl/src/ras/peers.cc:436,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:437,1
    - Dst: rasLinkReinitConns
      Src: /src/nccl/src/ras/peers.cc:437,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: 443
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 443
    functionName: rasNetUpdatePeers
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - NCCLCHECKGOTO
    - rasLinkReinitConns
    - 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:455,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: 460
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 460
    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:471,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:478,1
    - Dst: rasConnSendPeersUpdate
      Src: /src/nccl/src/ras/peers.cc:478,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: 483
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 483
    functionName: rasConnPropagateUpdate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - rasConnSendPeersUpdate
    - bsearch
    - NCCLCHECK
    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:507,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/peers.cc:509,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:514,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/peers.cc:514,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:520,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:522,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:529,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:530,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/peers.cc:532,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - conn
    - peers
    - nPeers
    argTypes:
    - struct rasConnection*
    - struct rasPeerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 535
    functionName: rasConnSendPeersUpdate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - INFO
    - memcpy
    - rasMsgAlloc
    - rasMsgLength
    - ALIGN_SIZE
    - rasConnEnqueueMsg
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasConnSendPeersUpdate(struct rasConnection* conn, const
      struct rasPeerInfo* peers, int nPeers)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:549,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:550,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:552,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:555,1
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/peers.cc:570,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/peers.cc:572,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:575,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/peers.cc:575,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:578,1
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/peers.cc:584,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/peers.cc:585,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:589,1
    - Dst: rasPeersUpdate
      Src: /src/nccl/src/ras/peers.cc:589,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:593,1
    - Dst: rasDeadPeersUpdate
      Src: /src/nccl/src/ras/peers.cc:593,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:598,1
    - Dst: rasPeersDump
      Src: /src/nccl/src/ras/peers.cc:603,1
    - Dst: rasDeadPeersDump
      Src: /src/nccl/src/ras/peers.cc:605,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:617,1
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/peers.cc:626,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:631,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/peers.cc:636,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:640,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:647,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/peers.cc:650,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:655,1
    - Dst: rasNetUpdatePeers
      Src: /src/nccl/src/ras/peers.cc:655,1
    - Dst: rasMsgFree
      Src: /src/nccl/src/ras/peers.cc:660,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 78
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 664
    functionName: rasMsgHandlePeersUpdate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - rasDeadPeersUpdate
    - INFO
    - rasPeersDump
    - rasDeadPeersDump
    - rasPeersUpdate
    - memcpy
    - rasMsgAlloc
    - rasMsgFree
    - NCCLCHECKGOTO
    - rasMsgLength
    - ALIGN_SIZE
    - rasNetUpdatePeers
    - rasConnEnqueueMsg
    - ncclSocketToString
    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:687,1
    - Dst: memset
      Src: /src/nccl/src/ras/peers.cc:690,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:693,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/peers.cc:693,1
    - Dst: rasLinkCalculatePeer
      Src: /src/nccl/src/ras/peers.cc:698,1
    - Dst: rasConnFind
      Src: /src/nccl/src/ras/peers.cc:699,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:706,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:708,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:710,1
    - Dst: rasConnCreate
      Src: /src/nccl/src/ras/peers.cc:710,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/peers.cc:713,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:717,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:718,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:722,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/peers.cc:723,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:725,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/peers.cc:725,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct rasLink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 729
    functionName: rasLinkReinitConns
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - ncclCalloc
    - INFO
    - clockNano
    - rasLinkCalculatePeer
    - rasConnFind
    - free
    - rasLinkAddFallback
    - memset
    - rasConnCreate
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLinkReinitConns(struct rasLink* link)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketsSameNode
      Src: /src/nccl/src/ras/peers.cc:742,1
    - Dst: ncclSocketsSameNode
      Src: /src/nccl/src/ras/peers.cc:750,1
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/peers.cc:751,1
    - Dst: rasConnFind
      Src: /src/nccl/src/ras/peers.cc:752,1
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/peers.cc:776,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 3
    argNames:
    - link
    - peerIdx
    - isFallback
    argTypes:
    - struct rasLink*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 784
    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:796,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:797,1
    - Dst: getNewDeadEntry
      Src: /src/nccl/src/ras/peers.cc:797,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:798,1
    - Dst: qsort
      Src: /src/nccl/src/ras/peers.cc:799,1
    - Dst: getHash
      Src: /src/nccl/src/ras/peers.cc:801,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:803,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:804,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/peers.cc:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - addr
    argTypes:
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 815
    functionName: rasPeerDeclareDead
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - rasPeerIsDead
    - qsort
    - INFO
    - rasClientsNotifyEvent
    - getNewDeadEntry
    - memcpy
    - getHash
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasPeerDeclareDead(const union ncclSocketAddress* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/peers.cc:822,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/peers.cc:824,1
    - Dst: COMPILER_POPCOUNT64
      Src: /src/nccl/src/ras/peers.cc:826,1
    - Dst: rasGpuDevsToString
      Src: /src/nccl/src/ras/peers.cc:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - peer
    - buf
    - size
    argTypes:
    - struct rasPeerInfo*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 829
    functionName: rasPeerInfoToString
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - ncclSocketToHost
    - COMPILER_POPCOUNT64
    - snprintf
    - rasGpuDevsToString
    linkageType: ''
    returnType: char
    signature: char * rasPeerInfoToString(const struct rasPeerInfo* peer, char* buf,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/peers.cc:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct rasPeerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 840
    functionName: rasNewPeerNotify
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - rasClientsNotifyEvent
    linkageType: ''
    returnType: void
    signature: void rasNewPeerNotify(const struct rasPeerInfo* peer)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/nccl/src/ras/peers.cc:856,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:858,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/peers.cc:858,1
    - Dst: memmove
      Src: /src/nccl/src/ras/peers.cc:864,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:873,1
    - Dst: memmove
      Src: /src/nccl/src/ras/peers.cc:878,1
    - Dst: rasConnDisconnect
      Src: /src/nccl/src/ras/peers.cc:882,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/peers.cc:889,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:898,1
    - Dst: getHash
      Src: /src/nccl/src/ras/peers.cc:903,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - updatePeers
    - nUpdatePeers
    argTypes:
    - union ncclSocketAddress*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 906
    functionName: rasDeadPeersUpdate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - ncclCalloc
    - rasConnDisconnect
    - rasClientsNotifyEvent
    - memmove
    - getHash
    - ncclSocketsCompare
    - free
    - ROUNDUP
    - 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:911,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/ras/peers.cc:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pAddr
    argTypes:
    - union ncclSocketAddress**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 917
    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:922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 923
    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:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - e
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 936
    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:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - e
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 944
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:950,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:956,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:957,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:962,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:963,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 967
    functionName: rasRanksCompare
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclSocketToString
    - ncclSocketsCompare
    linkageType: ''
    returnType: int
    signature: int rasRanksCompare(const void* e1, const void* e2)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:986,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:987,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:991,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:992,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:997,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 1002
    functionName: ncclSocketsCompare
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 6
    functionsReached:
    - INFO
    - 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:1012,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:1014,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a1
    - a2
    argTypes:
    - union ncclSocketAddress*
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1017
    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:1023,1
    - Dst: rasPeerDump
      Src: /src/nccl/src/ras/peers.cc:1023,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:1027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1028
    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:1033,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:1034,1
    - Dst: rasPeerDump
      Src: /src/nccl/src/ras/peers.cc:1035,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:1036,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:1039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1040
    functionName: rasDeadPeersDump
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - rasPeerFind
    - INFO
    - rasPeerDump
    - ncclSocketToString
    linkageType: ''
    returnType: void
    signature: void rasDeadPeersDump()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/ras/peers.cc:1045,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:1045,1
    - Dst: COMPILER_POPCOUNT64
      Src: /src/nccl/src/ras/peers.cc:1046,1
    - Dst: rasGpuDevsToString
      Src: /src/nccl/src/ras/peers.cc:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - peer
    - result
    - nres
    argTypes:
    - struct rasPeerInfo*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1049
    functionName: rasPeerDump
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 2
    functionsReached:
    - rasGpuDevsToString
    - COMPILER_POPCOUNT64
    - snprintf
    - ncclSocketToString
    linkageType: ''
    returnType: char
    signature: char * rasPeerDump(const struct rasPeerInfo* peer, char* result, size_t
      nres)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/peers.cc:1055,1
    - Dst: rasPeerInfoToString
      Src: /src/nccl/src/ras/peers.cc:1058,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/peers.cc:1060,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - addr
    - buf
    - size
    argTypes:
    - union ncclSocketAddress*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1063
    functionName: rasPeerToString
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - rasPeerFind
    - snprintf
    - ncclSocketToString
    - rasPeerInfoToString
    linkageType: ''
    returnType: char
    signature: char * rasPeerToString(const union ncclSocketAddress* addr, char* buf,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:1067,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1077
    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:
    - ncclIntruQueueConstruct
    - ncclCalloc
    - 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
    - rasConnFind
    - memcpy
    - getNewConnEntry
    - rasConnOpen
    - NCCLCHECKGOTO
    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: 6
    functionLinenumber: 124
    functionLinenumberEnd: 160
    functionName: rasConnOpen
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - ncclSocketConnect
    - freeSockEntry
    - clockNano
    - ncclSocketInit
    - getNewSockEntry
    - ncclSocketClose
    - rasGetNewPollEntry
    - NCCLCHECKGOTO
    - ncclSocketReady
    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
    - rasMsgAlloc
    - rasMsgLength
    - 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: 17
    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: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:218,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:223,1
    - Dst: static_cast<int64_t>
      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: std::max
      Src: /src/nccl/src/ras/rasnet.cc:233,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/ras/rasnet.cc:233,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/rasnet.cc:234,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:242,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:244,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:245,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:246,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:249,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:250,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:250,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/ras/rasnet.cc:250,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/rasnet.cc:265,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:274,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:276,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:277,1
    - Dst: rasCollReqInit
      Src: /src/nccl/src/ras/rasnet.cc:281,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/rasnet.cc:283,1
    - Dst: rasNetSendCollReq
      Src: /src/nccl/src/ras/rasnet.cc:284,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:288,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:288,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/rasnet.cc:300,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:309,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:310,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:311,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:317,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:318,1
    - Dst: rasCollsPurgeConn
      Src: /src/nccl/src/ras/rasnet.cc:321,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:324,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:324,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/rasnet.cc:333,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:342,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:344,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:345,1
    - Dst: rasConnOpen
      Src: /src/nccl/src/ras/rasnet.cc:347,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:350,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:350,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 2
    argNames:
    - now
    - nextWakeup
    argTypes:
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 198
    functionDepth: 7
    functionLinenumber: 198
    functionLinenumberEnd: 357
    functionName: rasConnsHandleTimeouts
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - rasCollsPurgeConn
    - INFO
    - clockNano
    - rasClientsNotifyEvent
    - ncclIntruQueueEmpty
    - static_cast<int64_t>
    - rasSocketTerminate
    - std::max
    - memcpy
    - min
    - rasNetSendCollReq
    - rasCollReqInit
    - rasLinkAddFallback
    - rasConnOpen
    - ncclIntruQueueHead
    - snprintf
    - ncclSocketReady
    - ncclSocketToString
    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:362,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:364,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:365,1
    - Dst: rasLinkConnDrop
      Src: /src/nccl/src/ras/rasnet.cc:366,1
    - Dst: rasLinkConnDrop
      Src: /src/nccl/src/ras/rasnet.cc:367,1
    - Dst: rasConnTerminate
      Src: /src/nccl/src/ras/rasnet.cc:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 371
    functionName: rasConnDisconnect
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - rasLinkAddFallback
    - rasConnFind
    - rasConnTerminate
    - rasLinkConnDrop
    linkageType: ''
    returnType: void
    signature: void rasConnDisconnect(const union ncclSocketAddress* addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:379,1
    - Dst: rasCollsPurgeConn
      Src: /src/nccl/src/ras/rasnet.cc:384,1
    - Dst: ncclIntruQueueTryDequeue
      Src: /src/nccl/src/ras/rasnet.cc:386,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:387,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:390,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:390,1
    - Dst: freeConnEntry
      Src: /src/nccl/src/ras/rasnet.cc:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: rasConnTerminate
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - rasCollsPurgeConn
    - freeConnEntry
    - INFO
    - rasSocketTerminate
    - free
    - ncclIntruQueueTryDequeue
    - ncclSocketToString
    linkageType: ''
    returnType: void
    signature: void rasConnTerminate(struct rasConnection* conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:407,1
    - Dst: getNewSockEntry
      Src: /src/nccl/src/ras/rasnet.cc:407,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:409,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/ras/rasnet.cc:409,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:412,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/ras/rasnet.cc:412,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:413,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/ras/rasnet.cc:413,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:418,1
    - Dst: rasGetNewPollEntry
      Src: /src/nccl/src/ras/rasnet.cc:418,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:424,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:424,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:430,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/ras/rasnet.cc:430,1
    - Dst: freeSockEntry
      Src: /src/nccl/src/ras/rasnet.cc:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 402
    functionDepth: 6
    functionLinenumber: 402
    functionLinenumberEnd: 433
    functionName: rasNetAcceptNewSocket
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - freeSockEntry
    - INFO
    - ncclSocketAccept
    - ncclSocketInit
    - getNewSockEntry
    - ncclSocketClose
    - rasGetNewPollEntry
    - NCCLCHECKGOTO
    - ncclSocketReady
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasNetAcceptNewSocket()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:439,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/rasnet.cc:439,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pSock
    argTypes:
    - struct rasSocket**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 454
    functionName: getNewSockEntry
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 2
    functionsReached:
    - ncclCalloc
    - clockNano
    - 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:469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 470
    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: snprintf
      Src: /src/nccl/src/ras/rasnet.cc:482,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:491,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:493,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:494,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/rasnet.cc:496,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:505,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:507,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:509,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:513,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:516,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:516,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:520,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:521,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:522,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:523,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:524,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:527,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:527,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:527,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:533,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:534,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:535,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:536,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:537,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:540,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:540,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:540,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - now
    - nextWakeup
    argTypes:
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 546
    functionName: rasSocksHandleTimeouts
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - INFO
    - rasClientsNotifyEvent
    - std::max
    - static_cast<int64_t>
    - rasSocketTerminate
    - min
    - snprintf
    - ncclSocketToString
    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:556,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:570,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:570,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:571,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:571,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:576,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/ras/rasnet.cc:584,1
    - Dst: ncclIntruQueueTransfer
      Src: /src/nccl/src/ras/rasnet.cc:585,1
    - Dst: ncclIntruQueueTryDequeue
      Src: /src/nccl/src/ras/rasnet.cc:586,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/ras/rasnet.cc:594,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:596,1
    - Dst: rasCollsPurgeConn
      Src: /src/nccl/src/ras/rasnet.cc:602,1
    - Dst: ncclSocketShutdown
      Src: /src/nccl/src/ras/rasnet.cc:609,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:612,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/ras/rasnet.cc:619,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:624,1
    - Dst: freeSockEntry
      Src: /src/nccl/src/ras/rasnet.cc:625,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: 627
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 627
    functionName: rasSocketTerminate
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 3
    functionsReached:
    - rasLinkConnFind
    - ncclIntruQueueEnqueue
    - rasCollsPurgeConn
    - INFO
    - clockNano
    - ncclSocketShutdown
    - std::max
    - freeSockEntry
    - ncclSocketClose
    - free
    - ncclIntruQueueConstruct
    - ncclIntruQueueTryDequeue
    - ncclIntruQueueTransfer
    linkageType: ''
    returnType: void
    signature: void rasSocketTerminate(struct rasSocket* sock, bool finalize, uint64_t
      startRetryOffset, bool retry)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketReady
      Src: /src/nccl/src/ras/rasnet.cc:634,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:635,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:636,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:637,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:643,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:648,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:649,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:650,1
    - Dst: rasConnPrepare
      Src: /src/nccl/src/ras/rasnet.cc:652,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:653,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:654,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:655,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:661,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:662,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:663,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:679,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:680,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:681,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:684,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:685,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:686,1
    - Dst: rasConnSendMsg
      Src: /src/nccl/src/ras/rasnet.cc:687,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:688,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:689,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:690,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:699,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:701,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:702,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:703,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:706,1
    - Dst: rasMsgRecv
      Src: /src/nccl/src/ras/rasnet.cc:716,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:717,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:718,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:719,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/rasnet.cc:732,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:740,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:742,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:743,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:744,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:747,1
    - Dst: rasMsgHandle
      Src: /src/nccl/src/ras/rasnet.cc:749,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:750,1
    - Dst: rasConnResume
      Src: /src/nccl/src/ras/rasnet.cc:758,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 2
    argNames:
    - sock
    - pollIdx
    argTypes:
    - struct rasSocket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 630
    functionDepth: 6
    functionLinenumber: 630
    functionLinenumberEnd: 764
    functionName: rasSockEventLoop
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - INFO
    - clockNano
    - rasClientsNotifyEvent
    - rasConnSendMsg
    - rasSocketTerminate
    - rasMsgRecv
    - free
    - rasConnResume
    - rasMsgHandle
    - snprintf
    - ncclSocketReady
    - ncclSocketToString
    - 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:779,1
    - Dst: rasLinkHandleNetTimeouts
      Src: /src/nccl/src/ras/rasnet.cc:780,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/ras/rasnet.cc:786,1
    - Dst: rasConnTerminate
      Src: /src/nccl/src/ras/rasnet.cc:787,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - now
    - nextWakeup
    argTypes:
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 791
    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:798,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:805,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:807,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:808,1
    - Dst: rasConnCreate
      Src: /src/nccl/src/ras/rasnet.cc:808,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:814,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:814,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: 820
      start: 794
    functionDepth: 3
    functionLinenumber: 794
    functionLinenumberEnd: 820
    functionName: rasLinkHandleNetTimeouts
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - INFO
    - static_cast<int64_t>
    - min
    - rasConnHandleNetTimeouts
    - rasConnCreate
    - ncclSocketToString
    - 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:827,1
    - Dst: rasConnSendKeepAlive
      Src: /src/nccl/src/ras/rasnet.cc:829,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:831,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:831,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/rasnet.cc:839,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:848,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:849,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:850,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:855,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:856,1
    - Dst: rasCollsPurgeConn
      Src: /src/nccl/src/ras/rasnet.cc:859,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:862,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:862,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/rasnet.cc:868,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:877,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:879,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:880,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:881,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:884,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/rasnet.cc:884,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - conn
    - now
    - nextWakeup
    argTypes:
    - struct rasConnection*
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 823
    functionDepth: 3
    functionLinenumber: 823
    functionLinenumberEnd: 888
    functionName: rasConnHandleNetTimeouts
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - rasCollsPurgeConn
    - INFO
    - rasClientsNotifyEvent
    - ncclIntruQueueEmpty
    - static_cast<int64_t>
    - rasSocketTerminate
    - min
    - rasLinkAddFallback
    - rasConnSendKeepAlive
    - snprintf
    - ncclSocketToString
    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:893,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/rasnet.cc:894,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:901,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:904,1
    - Dst: clockRealtime
      Src: /src/nccl/src/ras/rasnet.cc:908,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/rasnet.cc:910,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - conn
    - nack
    argTypes:
    - struct rasConnection*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 912
    functionName: rasConnSendKeepAlive
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - rasLinkConnFind
    - rasMsgAlloc
    - clockRealtime
    - rasMsgLength
    - rasConnEnqueueMsg
    linkageType: ''
    returnType: void
    signature: void rasConnSendKeepAlive(struct rasConnection* conn, bool nack)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:922,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:923,1
    - Dst: clockRealtime
      Src: /src/nccl/src/ras/rasnet.cc:926,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/rasnet.cc:940,1
    - Dst: rasLinkConnAddExternal
      Src: /src/nccl/src/ras/rasnet.cc:944,1
    - Dst: rasLinkConnDrop
      Src: /src/nccl/src/ras/rasnet.cc:946,1
    - Dst: rasLinkConnAddExternal
      Src: /src/nccl/src/ras/rasnet.cc:948,1
    - Dst: rasLinkConnDrop
      Src: /src/nccl/src/ras/rasnet.cc:950,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:957,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:957,1
    - Dst: rasConnSendKeepAlive
      Src: /src/nccl/src/ras/rasnet.cc:960,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:976,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:977,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:978,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:979,1
    - Dst: rasConnSendPeersUpdate
      Src: /src/nccl/src/ras/rasnet.cc:979,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 915
    functionDepth: 2
    functionLinenumber: 915
    functionLinenumberEnd: 982
    functionName: rasMsgHandleKeepAlive
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - rasLinkConnFind
    - INFO
    - rasLinkConnDrop
    - rasPeerFind
    - clockRealtime
    - rasConnSendPeersUpdate
    - rasLinkConnAddExternal
    - rasConnSendKeepAlive
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasMsgHandleKeepAlive(const struct rasMsg* msg, struct
      rasSocket* sock)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1043,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1044,1
    - Dst: rasLinkCalculatePeer
      Src: /src/nccl/src/ras/rasnet.cc:1050,1
    - Dst: rasConnFind
      Src: /src/nccl/src/ras/rasnet.cc:1054,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:1061,1
    - Dst: rasLinkConnAdd
      Src: /src/nccl/src/ras/rasnet.cc:1061,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1064,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1065,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:1075,1
    - Dst: rasLinkConnAdd
      Src: /src/nccl/src/ras/rasnet.cc:1075,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1079,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1081,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:1086,1
    - Dst: rasConnCreate
      Src: /src/nccl/src/ras/rasnet.cc:1086,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1093,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:1094,1
    - Dst: rasLinkCalculatePeer
      Src: /src/nccl/src/ras/rasnet.cc:1097,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1103,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 76
    argCount: 2
    argNames:
    - link
    - conn
    argTypes:
    - struct rasLink*
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 994
    functionDepth: 3
    functionLinenumber: 994
    functionLinenumberEnd: 1107
    functionName: rasLinkAddFallback
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 4
    functionsReached:
    - INFO
    - clockNano
    - rasLinkCalculatePeer
    - rasConnFind
    - rasLinkConnAdd
    - rasConnCreate
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLinkAddFallback(struct rasLink* link, const struct
      rasConnection* conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1113,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1115,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/ras/rasnet.cc:1115,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:1116,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:1125,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/rasnet.cc:1133,1
    - Dst: rasLinkSanitizeFallbacks
      Src: /src/nccl/src/ras/rasnet.cc:1140,1
    - Dst: rasLinkSanitizeFallbacks
      Src: /src/nccl/src/ras/rasnet.cc:1141,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/ras/rasnet.cc:1143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1146
    functionName: rasConnResume
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - rasLinkSanitizeFallbacks
    - INFO
    - clockNano
    - rasClientsNotifyEvent
    - ncclIntruQueueEmpty
    - ncclSocketToString
    linkageType: ''
    returnType: void
    signature: void rasConnResume(struct rasConnection* conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1158,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1160,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:1161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct rasLink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1168
    functionName: rasLinkSanitizeFallbacks
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - free
    - INFO
    - ncclSocketToString
    linkageType: ''
    returnType: void
    signature: void rasLinkSanitizeFallbacks(struct rasLink* link)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1190,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:1197,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1204,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1206,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1232,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1234,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1234,1
    - Dst: rasLinkSanitizeFallbacks
      Src: /src/nccl/src/ras/rasnet.cc:1247,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1286,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1288,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:1307,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/rasnet.cc:1307,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1314,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1315,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 112
    argCount: 7
    argNames:
    - link
    - conn
    - peerIdx
    - pretend
    - pLinkIdx
    - pLinkConn
    - insert
    argTypes:
    - struct rasLink*
    - struct rasConnection*
    - int
    - bool
    - int*
    - struct rasLinkConn**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1181
    functionDepth: 2
    functionLinenumber: 1181
    functionLinenumberEnd: 1331
    functionName: rasLinkConnAdd
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - rasLinkConnFind
    - rasLinkSanitizeFallbacks
    - INFO
    - ncclCalloc
    - ncclSocketToString
    - 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: 20
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1347,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:1352,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1356,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1358,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1384,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1386,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1386,1
    - Dst: rasLinkSanitizeFallbacks
      Src: /src/nccl/src/ras/rasnet.cc:1398,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1427,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1429,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1433,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1434,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:1450,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/rasnet.cc:1450,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1452,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1453,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1458,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1459,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 90
    argCount: 3
    argNames:
    - link
    - conn
    - peerIdx
    argTypes:
    - struct rasLink*
    - struct rasConnection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1339
    functionDepth: 2
    functionLinenumber: 1339
    functionLinenumberEnd: 1470
    functionName: rasLinkConnAddExternal
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - rasLinkConnFind
    - rasLinkSanitizeFallbacks
    - INFO
    - ncclCalloc
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLinkConnAddExternal(struct rasLink* link, struct rasConnection*
      conn, int peerIdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1480,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1481,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:1486,1
    - Dst: rasLinkConnAdd
      Src: /src/nccl/src/ras/rasnet.cc:1486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - link
    - conn
    - peerIdx
    argTypes:
    - struct rasLink*
    - struct rasConnection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1475
    functionDepth: 3
    functionLinenumber: 1475
    functionLinenumberEnd: 1490
    functionName: rasLinkConnUpdate
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - rasLinkConnAdd
    - INFO
    - ncclSocketToString
    - 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:1501,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1503,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:1505,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1507,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1508,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1515,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1516,1
    - Dst: rasLinkSanitizeFallbacks
      Src: /src/nccl/src/ras/rasnet.cc:1517,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:1518,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - link
    - conn
    - external
    argTypes:
    - struct rasLink*
    - struct rasConnection*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1495
    functionDepth: 2
    functionLinenumber: 1495
    functionLinenumberEnd: 1528
    functionName: rasLinkConnDrop
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 2
    functionsReached:
    - free
    - rasLinkSanitizeFallbacks
    - INFO
    - ncclSocketToString
    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: 1546
      start: 1533
    functionDepth: 0
    functionLinenumber: 1533
    functionLinenumberEnd: 1546
    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:1552,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:1557,1
    - Dst: rasConnTerminate
      Src: /src/nccl/src/ras/rasnet.cc:1565,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:1572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1549
    functionDepth: 3
    functionLinenumber: 1549
    functionLinenumberEnd: 1576
    functionName: rasNetTerminate
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - free
    - rasSocketTerminate
    - rasConnTerminate
    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:
    - ncclCalloc
    - clockNano
    - 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:
    - rasLinkSendCollReq
    - ncclCalloc
    - rasCollCommsInit
    - rasCollConnsInit
    - getNewCollEntry
    - memcpy
    - min
    - free
    - rasMsgHandleBCDeadPeer
    - 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
    - rasMsgAlloc
    - rasMsgLength
    - rasConnEnqueueMsg
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasConnSendCollReq(struct rasConnection* conn, const struct
      rasCollRequest* req, size_t reqLen)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:208,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:209,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:209,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:212,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/collectives.cc:220,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:222,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:226,1
    - Dst: rasConnSendCollResp
      Src: /src/nccl/src/ras/collectives.cc:226,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/collectives.cc:236,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:239,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:242,1
    - Dst: rasConnSendCollResp
      Src: /src/nccl/src/ras/collectives.cc:242,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:247,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:255,1
    - Dst: rasNetSendCollReq
      Src: /src/nccl/src/ras/collectives.cc:255,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:262,1
    - Dst: rasCollReadyResp
      Src: /src/nccl/src/ras/collectives.cc:262,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:265,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 270
    functionName: rasMsgHandleCollReq
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached:
    - INFO
    - memcmp
    - rasNetSendCollReq
    - rasCollReadyResp
    - rasConnSendCollResp
    - ncclSocketToString
    - 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:278,1
    - Dst: rasConnSendCollResp
      Src: /src/nccl/src/ras/collectives.cc:278,1
    - Dst: min
      Src: /src/nccl/src/ras/collectives.cc:282,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:283,1
    - Dst: rasCollFree
      Src: /src/nccl/src/ras/collectives.cc:288,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:291,1
    - Dst: rasClientResume
      Src: /src/nccl/src/ras/collectives.cc:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - coll
    argTypes:
    - struct rasCollective*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 294
    functionName: rasCollReadyResp
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - rasCollFree
    - memcpy
    - min
    - rasConnSendCollResp
    - rasClientResume
    - 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:303,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/collectives.cc:307,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:312,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/collectives.cc:312,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:314,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:320,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:322,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/collectives.cc:324,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: 327
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 327
    functionName: rasConnSendCollResp
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 2
    functionsReached:
    - memcpy
    - rasMsgAlloc
    - rasMsgLength
    - 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: 10
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:336,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:337,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:337,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/collectives.cc:341,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:346,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:351,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:367,1
    - Dst: rasCollConnsMerge
      Src: /src/nccl/src/ras/collectives.cc:367,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:369,1
    - Dst: rasCollCommsMerge
      Src: /src/nccl/src/ras/collectives.cc:369,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:373,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/ras/collectives.cc:373,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:374,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:380,1
    - Dst: rasCollReadyResp
      Src: /src/nccl/src/ras/collectives.cc:380,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 383
    functionName: rasMsgHandleCollResp
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached:
    - INFO
    - memcpy
    - memcmp
    - rasCollReadyResp
    - rasCollCommsMerge
    - ncclRealloc
    - rasCollConnsMerge
    - ncclSocketToString
    - 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:392,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:393,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:394,1
    - Dst: rasCollFree
      Src: /src/nccl/src/ras/collectives.cc:395,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:402,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:404,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:404,1
    - Dst: rasCollReadyResp
      Src: /src/nccl/src/ras/collectives.cc:407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 414
    functionName: rasCollsPurgeConn
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 4
    functionsReached:
    - rasCollFree
    - INFO
    - ncclSocketToString
    - rasCollReadyResp
    linkageType: ''
    returnType: void
    signature: void rasCollsPurgeConn(struct rasConnection* conn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:421,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:422,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:423,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - coll
    argTypes:
    - struct rasCollective*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 434
    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:454,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:455,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:471,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:473,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:473,1
    - Dst: rasCollReadyResp
      Src: /src/nccl/src/ras/collectives.cc:481,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:489,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:490,1
    - Dst: rasCollReadyResp
      Src: /src/nccl/src/ras/collectives.cc:494,1
    - Dst: min
      Src: /src/nccl/src/ras/collectives.cc:496,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/collectives.cc:496,1
    - Dst: min
      Src: /src/nccl/src/ras/collectives.cc:500,1
    - Dst: static_cast<int64_t>
      Src: /src/nccl/src/ras/collectives.cc:500,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - now
    - nextWakeup
    argTypes:
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 506
    functionName: rasCollsHandleTimeouts
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached:
    - INFO
    - static_cast<int64_t>
    - min
    - rasCollReadyResp
    - ncclSocketToString
    linkageType: ''
    returnType: void
    signature: void rasCollsHandleTimeouts(int64_t now, int64_t* nextWakeup)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rasCollDataLength
      Src: /src/nccl/src/ras/collectives.cc:521,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:540,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:540,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:542,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:550,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:554,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:555,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - pReq
    - pReqLen
    - pData
    - pNData
    argTypes:
    - struct rasCollRequest**
    - size_t*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 563
    functionName: rasCollConnsInit
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclCalloc
    - memcpy
    - rasCollDataLength
    - 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:569,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/collectives.cc:570,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:588,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/ras/collectives.cc:588,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - coll
    - msg
    argTypes:
    - struct rasCollective*
    - struct rasMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 597
    functionName: rasCollConnsMerge
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - memcpy
    - rasMsgLength
    - ncclRealloc
    - ALIGN_SIZE
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasCollConnsMerge(struct rasCollective* coll, struct rasMsg*
      msg)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: rasCollDataLength
      Src: /src/nccl/src/ras/collectives.cc:624,1
    - Dst: qsort
      Src: /src/nccl/src/ras/collectives.cc:632,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/ras/collectives.cc:638,1
    - Dst: rasCollCommsSkipMissing
      Src: /src/nccl/src/ras/collectives.cc:645,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/collectives.cc:653,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:653,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:654,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/collectives.cc:678,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:678,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/ras/collectives.cc:687,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:692,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:711,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:721,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/ras/collectives.cc:723,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/ras/collectives.cc:725,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/ras/collectives.cc:728,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/ras/collectives.cc:734,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/collectives.cc:735,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/collectives.cc:742,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:742,1
    - Dst: qsort
      Src: /src/nccl/src/ras/collectives.cc:745,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:757,1
    - Dst: bsearch
      Src: /src/nccl/src/ras/collectives.cc:772,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:774,1
    - Dst: rasCollDataLength
      Src: /src/nccl/src/ras/collectives.cc:789,1
    - Dst: qsort
      Src: /src/nccl/src/ras/collectives.cc:791,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:795,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:799,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:802,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 119
    argCount: 4
    argNames:
    - pReq
    - pReqLen
    - pData
    - pNData
    argTypes:
    - struct rasCollRequest**
    - size_t*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 805
    functionName: rasCollCommsInit
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - qsort
    - rasCollCommsSkipMissing
    - ncclCalloc
    - INFO
    - memcpy
    - memcmp
    - free
    - NCCLCHECKGOTO
    - COMPILER_ATOMIC_LOAD
    - bsearch
    - rasCollDataLength
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasCollCommsInit(struct rasCollRequest** pReq, size_t*
      pReqLen, char** pData, int* pNData)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/collectives.cc:812,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/collectives.cc:813,1
    - Dst: memset
      Src: /src/nccl/src/ras/collectives.cc:814,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:824,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:824,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:834,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:843,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:853,1
    - Dst: rasCommIdCompare
      Src: /src/nccl/src/ras/collectives.cc:861,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:866,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:875,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:878,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:903,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:909,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:913,1
    - Dst: bsearch
      Src: /src/nccl/src/ras/collectives.cc:926,1
    - Dst: memset
      Src: /src/nccl/src/ras/collectives.cc:933,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:935,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/collectives.cc:950,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:952,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:955,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:966,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:984,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:987,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:1000,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:1003,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:1018,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 121
    argCount: 2
    argNames:
    - coll
    - msg
    argTypes:
    - struct rasCollective*
    - struct rasMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 1025
    functionName: rasCollCommsMerge
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - ncclCalloc
    - INFO
    - memcpy
    - memcmp
    - free
    - memset
    - rasMsgLength
    - ALIGN_SIZE
    - bsearch
    - rasCommIdCompare
    - NCCLCHECK
    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:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - comm
    argTypes:
    - struct rasCollRequest*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1035
    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: 1051
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1051
    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: 1063
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1063
    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: 1076
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1076
    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: 1091
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1091
    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: 1099
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1099
    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:1105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1110
    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:96,1
    - Dst: htons
      Src: /src/nccl/src/ras/ras.cc:97,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:98,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/ras/ras.cc:98,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:100,1
    - Dst: ncclSocketListen
      Src: /src/nccl/src/ras/ras.cc:100,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:101,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:102,1
    - Dst: rasClientInitSocket
      Src: /src/nccl/src/ras/ras.cc:104,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:106,1
    - Dst: pipe
      Src: /src/nccl/src/ras/ras.cc:106,1
    - Dst: std::thread
      Src: /src/nccl/src/ras/ras.cc:108,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/ras/ras.cc:109,1
    - Dst: atexit
      Src: /src/nccl/src/ras/ras.cc:113,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: 43
    argCount: 2
    argNames:
    - comm
    - myRank
    argTypes:
    - struct ncclComm*
    - struct rasRankInit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 147
    functionName: ncclRasCommInit
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 2
    functionsReached:
    - htons
    - pipe
    - std::thread
    - ncclSocketListen
    - INFO
    - ncclSocketInit
    - close
    - ncclSocketClose
    - memcpy
    - ncclAtomicRefCountIncrement
    - rasClientInitSocket
    - NCCLCHECKGOTO
    - ncclRealloc
    - atexit
    - SYSCHECKGOTO
    - ncclSetThreadName
    - ncclSocketToString
    - NCCLCHECK
    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: 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:
    - rasLocalNotify
    - memset
    - join
    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
    - memset
    - NCCLCHECK
    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:
    - read
    - INFO
    - rasLocalHandleAddRanks
    - SYSCHECK
    - WARN
    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: 4
    functionLinenumber: 241
    functionLinenumberEnd: 269
    functionName: rasThreadCleanup
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 0
    functionsReached:
    - rasPeersTerminate
    - close
    - rasClientSupportTerminate
    - ncclSocketClose
    - rasNetTerminate
    - free
    - rasCollectivesTerminate
    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:
    - ncclIntruQueueEnqueue
    - INFO
    - clockNano
    - ncclIntruQueueEnqueueFront
    - ncclSocketToString
    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: 3
    functionLinenumber: 330
    functionLinenumberEnd: 362
    functionName: rasConnSendMsg
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - ncclSocketProgress
    - ncclIntruQueueHead
    - free
    - ncclIntruQueueDequeue
    - 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: 3
    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:
    - rasMsgHandleConnInit
    - NCCLCHECK
    - rasMsgHandleCollResp
    - rasMsgHandleCollReq
    - rasMsgHandleKeepAlive
    - rasMsgHandleConnInitAck
    - WARN
    - ncclSocketToString
    - rasMsgHandlePeersUpdate
    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:425,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:426,1
    - Dst: ncclVersionToString
      Src: /src/nccl/src/ras/ras.cc:427,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:428,1
    - Dst: WARN
      Src: /src/nccl/src/ras/ras.cc:432,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:433,1
    - Dst: ncclVersionToString
      Src: /src/nccl/src/ras/ras.cc:434,1
    - Dst: ncclVersionToString
      Src: /src/nccl/src/ras/ras.cc:435,1
    - Dst: rasNetSendNack
      Src: /src/nccl/src/ras/ras.cc:436,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/ras.cc:437,1
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/ras.cc:442,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:444,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:445,1
    - Dst: rasNetSendNack
      Src: /src/nccl/src/ras/ras.cc:446,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/ras.cc:447,1
    - Dst: rasConnFind
      Src: /src/nccl/src/ras/ras.cc:452,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:454,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/ras/ras.cc:456,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:457,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:460,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:461,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/ras.cc:470,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:471,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/ras.cc:472,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:475,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/ras.cc:476,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:480,1
    - Dst: getNewConnEntry
      Src: /src/nccl/src/ras/ras.cc:480,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/ras.cc:481,1
    - Dst: rasClientsNotifyEvent
      Src: /src/nccl/src/ras/ras.cc:494,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/ras.cc:499,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/ras.cc:503,1
    - Dst: rasLinkConnUpdate
      Src: /src/nccl/src/ras/ras.cc:507,1
    - Dst: rasLinkConnUpdate
      Src: /src/nccl/src/ras/ras.cc:508,1
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/ras.cc:513,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:514,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/ras.cc:514,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/ras.cc:517,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:524,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:526,1
    - Dst: rasConnSendPeersUpdate
      Src: /src/nccl/src/ras/ras.cc:526,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 61
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 416
    functionDepth: 4
    functionLinenumber: 416
    functionLinenumberEnd: 530
    functionName: rasMsgHandleConnInit
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - rasPeerIsDead
    - ncclIntruQueueEmpty
    - memcpy
    - getNewConnEntry
    - ncclVersionToString
    - WARN
    - rasConnFind
    - rasConnSendPeersUpdate
    - ncclSocketsCompare
    - rasConnEnqueueMsg
    - ncclSocketToString
    - INFO
    - clockNano
    - rasPeerFind
    - NCCLCHECK
    - rasClientsNotifyEvent
    - rasNetSendNack
    - rasSocketTerminate
    - rasMsgAlloc
    - rasMsgLength
    - rasLinkConnUpdate
    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:534,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:535,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/ras.cc:541,1
    - Dst: rasConnDisconnect
      Src: /src/nccl/src/ras/ras.cc:542,1
    - Dst: rasPeerDeclareDead
      Src: /src/nccl/src/ras/ras.cc:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 552
    functionName: rasMsgHandleConnInitAck
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - INFO
    - rasConnDisconnect
    - memcpy
    - rasPeerDeclareDead
    - ncclSocketToString
    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:556,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:556,1
    - Dst: rasCollDataLength
      Src: /src/nccl/src/ras/ras.cc:558,1
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/ras.cc:559,1
    - Dst: rasConnDisconnect
      Src: /src/nccl/src/ras/ras.cc:560,1
    - Dst: rasPeerDeclareDead
      Src: /src/nccl/src/ras/ras.cc:561,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pReq
    - pReqLen
    - pDone
    argTypes:
    - struct rasCollRequest**
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 568
    functionName: rasMsgHandleBCDeadPeer
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - rasPeerIsDead
    - INFO
    - rasConnDisconnect
    - rasPeerDeclareDead
    - rasCollDataLength
    - ncclSocketToString
    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:576,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:580,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:580,1
    - Dst: memset
      Src: /src/nccl/src/ras/ras.cc:582,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:586,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/ras/ras.cc:586,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:590,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/ras/ras.cc:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 594
    functionName: rasNetSendNack
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - ncclSocketProgress
    - INFO
    - memset
    - rasMsgLength
    - ncclSocketToString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasNetSendNack(struct rasSocket* sock)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:607,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:610,1
    - Dst: rasGetNewPollEntry
      Src: /src/nccl/src/ras/ras.cc:610,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:614,1
    - Dst: rasGetNewPollEntry
      Src: /src/nccl/src/ras/ras.cc:614,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:615,1
    - Dst: ncclSocketGetFd
      Src: /src/nccl/src/ras/ras.cc:615,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:619,1
    - Dst: rasGetNewPollEntry
      Src: /src/nccl/src/ras/ras.cc:619,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:626,1
    - Dst: poll
      Src: /src/nccl/src/ras/ras.cc:637,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:639,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:641,1
    - Dst: strerror
      Src: /src/nccl/src/ras/ras.cc:641,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:649,1
    - Dst: rasLocalHandle
      Src: /src/nccl/src/ras/ras.cc:649,1
    - Dst: rasNetAcceptNewSocket
      Src: /src/nccl/src/ras/ras.cc:653,1
    - Dst: rasClientAcceptNewSocket
      Src: /src/nccl/src/ras/ras.cc:655,1
    - Dst: rasSockEventLoop
      Src: /src/nccl/src/ras/ras.cc:662,1
    - Dst: rasClientEventLoop
      Src: /src/nccl/src/ras/ras.cc:673,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:683,1
    - Dst: rasSocksHandleTimeouts
      Src: /src/nccl/src/ras/ras.cc:685,1
    - Dst: rasConnsHandleTimeouts
      Src: /src/nccl/src/ras/ras.cc:687,1
    - Dst: rasNetHandleTimeouts
      Src: /src/nccl/src/ras/ras.cc:689,1
    - Dst: rasCollsHandleTimeouts
      Src: /src/nccl/src/ras/ras.cc:691,1
    - Dst: rasThreadCleanup
      Src: /src/nccl/src/ras/ras.cc:695,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:696,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 602
    functionDepth: 8
    functionLinenumber: 602
    functionLinenumberEnd: 698
    functionName: rasThreadMain
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 0
    functionsReached:
    - rasThreadCleanup
    - rasClientEventLoop
    - INFO
    - clockNano
    - rasClientAcceptNewSocket
    - strerror
    - ncclSocketGetFd
    - rasSockEventLoop
    - rasSocksHandleTimeouts
    - rasGetNewPollEntry
    - rasNetHandleTimeouts
    - poll
    - NCCLCHECKGOTO
    - rasConnsHandleTimeouts
    - rasCollsHandleTimeouts
    - rasLocalHandle
    - rasNetAcceptNewSocket
    linkageType: ''
    returnType: void
    signature: void * rasThreadMain(void*)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:707,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/ras/ras.cc:707,1
    - Dst: memset
      Src: /src/nccl/src/ras/ras.cc:713,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 718
    functionName: rasGetNewPollEntry
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 3
    functionsReached:
    - memset
    - ncclRealloc
    - NCCLCHECK
    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: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    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: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: printUsage
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void printUsage(const char* argv0)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/nccl/src/ras/client.cc:71,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client.cc:75,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client.cc:75,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:76,1
    - Dst: exit
      Src: /src/nccl/src/ras/client.cc:77,1
    - Dst: strtol
      Src: /src/nccl/src/ras/client.cc:94,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:96,1
    - Dst: exit
      Src: /src/nccl/src/ras/client.cc:97,1
    - Dst: printUsage
      Src: /src/nccl/src/ras/client.cc:105,1
    - Dst: exit
      Src: /src/nccl/src/ras/client.cc:106,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:108,1
    - Dst: STR
      Src: /src/nccl/src/ras/client.cc:108,1
    - Dst: STR
      Src: /src/nccl/src/ras/client.cc:108,1
    - Dst: STR
      Src: /src/nccl/src/ras/client.cc:109,1
    - Dst: exit
      Src: /src/nccl/src/ras/client.cc:110,1
    - Dst: printUsage
      Src: /src/nccl/src/ras/client.cc:112,1
    - Dst: exit
      Src: /src/nccl/src/ras/client.cc:113,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 116
    functionName: parseArgs
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached:
    - getopt_long
    - exit
    - fprintf
    - strcasecmp
    - STR
    - printUsage
    - strtol
    linkageType: ''
    returnType: void
    signature: void parseArgs(int argc, char** argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/nccl/src/ras/client.cc:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 132
    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:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 155
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/ras/client.cc:308,1
    - Dst: socketWrite
      Src: /src/nccl/src/ras/client.cc:309,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:309,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:309,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:311,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:313,1
    - Dst: rasRead
      Src: /src/nccl/src/ras/client.cc:317,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:320,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:322,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:326,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client.cc:329,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:330,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 335
    functionName: setOutputFormat
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached:
    - rasRead
    - socketWrite
    - fprintf
    - perror
    - strlen
    - strcasecmp
    - snprintf
    linkageType: ''
    returnType: int
    signature: int setOutputFormat()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/ras/client.cc:342,1
    - Dst: socketWrite
      Src: /src/nccl/src/ras/client.cc:343,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:343,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:343,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:345,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:347,1
    - Dst: rasRead
      Src: /src/nccl/src/ras/client.cc:351,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:354,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:356,1
    - Dst: fwrite
      Src: /src/nccl/src/ras/client.cc:361,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:362,1
    - Dst: fflush
      Src: /src/nccl/src/ras/client.cc:365,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:366,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 371
    functionName: getNCCLStatus
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached:
    - rasRead
    - socketWrite
    - fflush
    - fprintf
    - perror
    - strlen
    - fwrite
    - snprintf
    linkageType: ''
    returnType: int
    signature: int getNCCLStatus()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/ras/client.cc:380,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client.cc:382,1
    - Dst: socketWrite
      Src: /src/nccl/src/ras/client.cc:384,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:384,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:384,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:386,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:388,1
    - Dst: rasRead
      Src: /src/nccl/src/ras/client.cc:393,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:396,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:398,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:402,1
    - Dst: strncasecmp
      Src: /src/nccl/src/ras/client.cc:406,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:407,1
    - Dst: setsockopt
      Src: /src/nccl/src/ras/client.cc:412,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:413,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:417,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:418,1
    - Dst: strchr
      Src: /src/nccl/src/ras/client.cc:421,1
    - Dst: fwrite
      Src: /src/nccl/src/ras/client.cc:426,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:427,1
    - Dst: fflush
      Src: /src/nccl/src/ras/client.cc:430,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:431,1
    - Dst: rasRead
      Src: /src/nccl/src/ras/client.cc:438,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:442,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:445,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:449,1
    - Dst: fwrite
      Src: /src/nccl/src/ras/client.cc:453,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:454,1
    - Dst: fflush
      Src: /src/nccl/src/ras/client.cc:457,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:458,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 463
    functionName: monitorNCCLEvents
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached:
    - rasRead
    - socketWrite
    - fflush
    - setsockopt
    - strchr
    - fprintf
    - perror
    - strncasecmp
    - strlen
    - fwrite
    - snprintf
    linkageType: ''
    returnType: int
    signature: int monitorNCCLEvents()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parseArgs
      Src: /src/nccl/src/ras/client.cc:466,1
    - Dst: connectToNCCL
      Src: /src/nccl/src/ras/client.cc:468,1
    - Dst: setOutputFormat
      Src: /src/nccl/src/ras/client.cc:472,1
    - Dst: close
      Src: /src/nccl/src/ras/client.cc:473,1
    - Dst: monitorNCCLEvents
      Src: /src/nccl/src/ras/client.cc:479,1
    - Dst: getNCCLStatus
      Src: /src/nccl/src/ras/client.cc:481,1
    - Dst: close
      Src: /src/nccl/src/ras/client.cc:485,1
    - Dst: close
      Src: /src/nccl/src/ras/client.cc:489,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 494
    functionName: main
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 1
    functionsReached:
    - getNCCLStatus
    - close
    - connectToNCCL
    - perror
    - monitorNCCLEvents
    - setOutputFormat
    - 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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: STR
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:168,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/ras/client_support.cc:171,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:173,1
    - Dst: ncclSocketGetAddrFromString
      Src: /src/nccl/src/ras/client_support.cc:173,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:174,1
    - Dst: socket
      Src: /src/nccl/src/ras/client_support.cc:174,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:175,1
    - Dst: setsockopt
      Src: /src/nccl/src/ras/client_support.cc:175,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:178,1
    - Dst: setsockopt
      Src: /src/nccl/src/ras/client_support.cc:178,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:181,1
    - Dst: bind
      Src: /src/nccl/src/ras/client_support.cc:181,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:183,1
    - Dst: listen
      Src: /src/nccl/src/ras/client_support.cc:183,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:184,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/client_support.cc:184,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:188,1
    - Dst: close
      Src: /src/nccl/src/ras/client_support.cc:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 194
    functionName: rasClientInitSocket
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - ncclGetEnv
    - INFO
    - listen
    - setsockopt
    - close
    - socket
    - NCCLCHECKGOTO
    - STR
    - SYSCHECKGOTO
    - ncclSocketGetAddrFromString
    - bind
    - ncclSocketToString
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientInitSocket()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:204,1
    - Dst: getNewClientEntry
      Src: /src/nccl/src/ras/client_support.cc:204,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:206,1
    - Dst: accept
      Src: /src/nccl/src/ras/client_support.cc:206,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:208,1
    - Dst: fcntl
      Src: /src/nccl/src/ras/client_support.cc:208,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:209,1
    - Dst: fcntl
      Src: /src/nccl/src/ras/client_support.cc:209,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:211,1
    - Dst: rasGetNewPollEntry
      Src: /src/nccl/src/ras/client_support.cc:211,1
    - Dst: close
      Src: /src/nccl/src/ras/client_support.cc:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 221
    functionName: rasClientAcceptNewSocket
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - close
    - accept
    - fcntl
    - rasGetNewPollEntry
    - getNewClientEntry
    - NCCLCHECKGOTO
    - SYSCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientAcceptNewSocket()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/client_support.cc:227,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:227,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/ras/client_support.cc:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - pClient
    argTypes:
    - struct rasClient**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 245
    functionName: getNewClientEntry
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - ncclIntruQueueConstruct
    - ncclCalloc
    - 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:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - msgLen
    argTypes:
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 252
    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:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 257
    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:266,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - client
    - msg
    - msgLen
    argTypes:
    - struct rasClient*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 271
    functionName: rasClientEnqueueMsg
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - INFO
    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:275,1
    - Dst: ncclIntruQueueTryDequeue
      Src: /src/nccl/src/ras/client_support.cc:278,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:279,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct rasClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 291
    functionName: rasClientTerminate
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - free
    - ncclIntruQueueTryDequeue
    - close
    linkageType: ''
    returnType: void
    signature: void rasClientTerminate(struct rasClient* client)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:307,1
    - Dst: rasCollFree
      Src: /src/nccl/src/ras/client_support.cc:308,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/client_support.cc:312,1
    - Dst: rasClientRun
      Src: /src/nccl/src/ras/client_support.cc:312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - coll
    argTypes:
    - struct rasCollective*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 315
    functionName: rasClientResume
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - rasCollFree
    - rasClientRun
    - INFO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientResume(struct rasCollective* coll)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/nccl/src/ras/client_support.cc:327,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:334,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:336,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:347,1
    - Dst: memchr
      Src: /src/nccl/src/ras/client_support.cc:351,1
    - Dst: strncasecmp
      Src: /src/nccl/src/ras/client_support.cc:358,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:358,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:360,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:360,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:361,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:362,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:363,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:367,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:368,1
    - Dst: strncasecmp
      Src: /src/nccl/src/ras/client_support.cc:369,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:369,1
    - Dst: strtol
      Src: /src/nccl/src/ras/client_support.cc:371,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:371,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:373,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:373,1
    - Dst: strcpy
      Src: /src/nccl/src/ras/client_support.cc:376,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:378,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:379,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:380,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:384,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:385,1
    - Dst: strncasecmp
      Src: /src/nccl/src/ras/client_support.cc:386,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:386,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:387,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client_support.cc:388,1
    - Dst: strcpy
      Src: /src/nccl/src/ras/client_support.cc:390,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client_support.cc:391,1
    - Dst: strcpy
      Src: /src/nccl/src/ras/client_support.cc:393,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:395,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:397,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:398,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:399,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:402,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:403,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client_support.cc:404,1
    - Dst: rasClientRun
      Src: /src/nccl/src/ras/client_support.cc:406,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client_support.cc:407,1
    - Dst: rasClientRun
      Src: /src/nccl/src/ras/client_support.cc:410,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client_support.cc:411,1
    - Dst: strncasecmp
      Src: /src/nccl/src/ras/client_support.cc:411,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:411,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:413,1
    - Dst: strtok_r
      Src: /src/nccl/src/ras/client_support.cc:421,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client_support.cc:423,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client_support.cc:425,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client_support.cc:427,1
    - Dst: strtok_r
      Src: /src/nccl/src/ras/client_support.cc:434,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:438,1
    - Dst: strcpy
      Src: /src/nccl/src/ras/client_support.cc:445,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:447,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:448,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:449,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:452,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:453,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:455,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:456,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:457,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:460,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:461,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:470,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:471,1
    - Dst: memmove
      Src: /src/nccl/src/ras/client_support.cc:477,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/ras/client_support.cc:484,1
    - Dst: send
      Src: /src/nccl/src/ras/client_support.cc:486,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:491,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:493,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/ras/client_support.cc:503,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:504,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:508,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:515,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 171
    argCount: 2
    argNames:
    - client
    - pollIdx
    argTypes:
    - struct rasClient*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 518
    functionName: rasClientEventLoop
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - rasClientAllocMsg
    - memcpy
    - strcasecmp
    - STR
    - strtok_r
    - strtol
    - memchr
    - strlen
    - free
    - recv
    - ncclIntruQueueHead
    - ncclIntruQueueDequeue
    - rasClientRun
    - INFO
    - send
    - memmove
    - strncasecmp
    - strcpy
    - rasClientTerminate
    - rasClientEnqueueMsg
    - 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:534,1
    - Dst: rasClientRunInit
      Src: /src/nccl/src/ras/client_support.cc:534,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:543,1
    - Dst: rasClientRunConns
      Src: /src/nccl/src/ras/client_support.cc:543,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:551,1
    - Dst: rasClientRunComms
      Src: /src/nccl/src/ras/client_support.cc:551,1
    - Dst: WARN
      Src: /src/nccl/src/ras/client_support.cc:555,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct rasClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 561
    functionName: rasClientRun
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 2
    functionsReached:
    - rasClientRunInit
    - rasClientRunConns
    - NCCLCHECKGOTO
    - rasClientRunComms
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientRun(struct rasClient* client)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:576,1
    - Dst: rasOutReset
      Src: /src/nccl/src/ras/client_support.cc:578,1
    - Dst: cudaRuntimeGetVersion
      Src: /src/nccl/src/ras/client_support.cc:582,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/ras/client_support.cc:584,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:589,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:589,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:589,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:589,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:590,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:591,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:592,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:593,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:593,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:594,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:595,1
    - Dst: COMPILER_POPCOUNT64
      Src: /src/nccl/src/ras/client_support.cc:608,1
    - Dst: ncclSocketsSameNode
      Src: /src/nccl/src/ras/client_support.cc:617,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:639,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:640,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:642,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:646,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:650,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:658,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:658,1
    - Dst: ncclSocketsSameNode
      Src: /src/nccl/src/ras/client_support.cc:668,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:669,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:670,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:683,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:684,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:693,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:711,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:716,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:720,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:724,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:728,1
    - Dst: COMPILER_POPCOUNT64
      Src: /src/nccl/src/ras/client_support.cc:738,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:739,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:740,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:744,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:760,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:763,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:768,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:772,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:784,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:785,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:791,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:791,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:791,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:794,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:795,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:806,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:807,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:808,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:808,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:809,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:810,1
    - Dst: rasCollReqInit
      Src: /src/nccl/src/ras/client_support.cc:815,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:818,1
    - Dst: rasNetSendCollReq
      Src: /src/nccl/src/ras/client_support.cc:818,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:825,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:826,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:827,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:827,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:828,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:829,1
    - Dst: rasCollReqInit
      Src: /src/nccl/src/ras/client_support.cc:835,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:838,1
    - Dst: rasNetSendCollReq
      Src: /src/nccl/src/ras/client_support.cc:838,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:842,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:844,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 189
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct rasClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 848
    functionName: rasClientRunInit
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - rasClientAllocMsg
    - rasNetSendCollReq
    - NCCLCHECKGOTO
    - STR
    - rasOutLength
    - TRACE
    - ncclCalloc
    - cudaRuntimeGetVersion
    - COMPILER_POPCOUNT64
    - rasCountIsOutlier
    - rasOutAppend
    - strlen
    - free
    - cudaDriverGetVersion
    - qsort
    - rasOutExtract
    - ncclSocketToHost
    - rasCollReqInit
    - rasOutReset
    - ncclSocketsSameNode
    - rasClientEnqueueMsg
    - 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:864,1
    - Dst: rasOutReset
      Src: /src/nccl/src/ras/client_support.cc:869,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:870,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/client_support.cc:870,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:872,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:879,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:885,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:885,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:887,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/client_support.cc:891,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:899,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:908,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:909,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:911,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:912,1
    - Dst: COMPILER_POPCOUNT64
      Src: /src/nccl/src/ras/client_support.cc:913,1
    - Dst: rasGpuDevsToString
      Src: /src/nccl/src/ras/client_support.cc:914,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:918,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:924,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:926,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:931,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:934,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:939,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:942,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:943,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:945,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:946,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:947,1
    - Dst: rasCollFree
      Src: /src/nccl/src/ras/client_support.cc:952,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:954,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:956,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:957,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:957,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:958,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:959,1
    - Dst: rasCollReqInit
      Src: /src/nccl/src/ras/client_support.cc:964,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:967,1
    - Dst: rasNetSendCollReq
      Src: /src/nccl/src/ras/client_support.cc:967,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:972,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct rasClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 976
    functionName: rasClientRunConns
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - rasClientAllocMsg
    - memcpy
    - rasNetSendCollReq
    - NCCLCHECKGOTO
    - rasOutLength
    - ncclCalloc
    - COMPILER_POPCOUNT64
    - rasOutAppend
    - ncclSocketsCompare
    - free
    - qsort
    - INFO
    - clockNano
    - ncclSocketToHost
    - rasGpuDevsToString
    - rasPeerFind
    - rasOutExtract
    - rasCollReqInit
    - rasCollFree
    - rasOutReset
    - rasClientEnqueueMsg
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientRunConns(struct rasClient* client)
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1012,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1013,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:1017,1
    - Dst: rasOutReset
      Src: /src/nccl/src/ras/client_support.cc:1022,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1026,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1031,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1031,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1043,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1043,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1044,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1047,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1047,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:1049,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1050,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1053,1
    - Dst: rasDumpCommsToJSON
      Src: /src/nccl/src/ras/client_support.cc:1057,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:1058,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1059,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:1059,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:1060,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:1061,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1068,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/client_support.cc:1068,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1075,1
    - Dst: bsearch
      Src: /src/nccl/src/ras/client_support.cc:1096,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1106,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:1108,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1119,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1121,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1124,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1129,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:1138,1
    - Dst: ncclSocketsSameNode
      Src: /src/nccl/src/ras/client_support.cc:1143,1
    - Dst: COMPILER_POPCOUNT32
      Src: /src/nccl/src/ras/client_support.cc:1186,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1190,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1192,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1197,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1200,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1200,1
    - Dst: COMPILER_CLZ
      Src: /src/nccl/src/ras/client_support.cc:1207,1
    - Dst: COMPILER_CLZ
      Src: /src/nccl/src/ras/client_support.cc:1207,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1219,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1222,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1225,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1229,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1229,1
    - Dst: memset
      Src: /src/nccl/src/ras/client_support.cc:1240,1
    - Dst: COMPILER_POPCOUNT64
      Src: /src/nccl/src/ras/client_support.cc:1256,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:1258,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:1260,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1261,1
    - Dst: COMPILER_CLZ
      Src: /src/nccl/src/ras/client_support.cc:1265,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:1267,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1268,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:1268,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:1269,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:1270,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1273,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1277,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1279,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1287,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1287,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/client_support.cc:1292,1
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/client_support.cc:1303,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:1307,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/client_support.cc:1309,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1312,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/client_support.cc:1313,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:1317,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/client_support.cc:1318,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1325,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1328,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1329,1
    - Dst: COMPILER_POPCOUNT64
      Src: /src/nccl/src/ras/client_support.cc:1330,1
    - Dst: rasGpuDevsToString
      Src: /src/nccl/src/ras/client_support.cc:1331,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1335,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1337,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1339,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1343,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1346,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1350,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1350,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:1352,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1358,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1361,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1362,1
    - Dst: COMPILER_POPCOUNT64
      Src: /src/nccl/src/ras/client_support.cc:1363,1
    - Dst: rasGpuDevsToString
      Src: /src/nccl/src/ras/client_support.cc:1364,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1368,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1370,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1372,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1384,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1387,1
    - Dst: bsearch
      Src: /src/nccl/src/ras/client_support.cc:1392,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:1394,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1396,1
    - Dst: rasGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1398,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1400,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1402,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1407,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1413,1
    - Dst: memset
      Src: /src/nccl/src/ras/client_support.cc:1415,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1420,1
    - Dst: rasClientBreakDownErrors
      Src: /src/nccl/src/ras/client_support.cc:1422,1
    - Dst: memset
      Src: /src/nccl/src/ras/client_support.cc:1425,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1430,1
    - Dst: rasClientBreakDownErrors
      Src: /src/nccl/src/ras/client_support.cc:1432,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1434,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:1438,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1439,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:1439,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:1440,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:1441,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1444,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1448,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1461,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1467,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1467,1
    - Dst: COMPILER_POPCOUNT32
      Src: /src/nccl/src/ras/client_support.cc:1470,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1471,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1489,1
    - Dst: COMPILER_CLZ
      Src: /src/nccl/src/ras/client_support.cc:1498,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1514,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1519,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1520,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1527,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1529,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1531,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1533,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1535,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1537,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1540,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1543,1
    - Dst: bsearch
      Src: /src/nccl/src/ras/client_support.cc:1554,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:1556,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1559,1
    - Dst: rasGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1560,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1563,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1565,1
    - Dst: rasGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1567,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1569,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1573,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1575,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1597,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1606,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1620,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1626,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1628,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1630,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1636,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1638,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1640,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1643,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1645,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1647,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1649,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1651,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1653,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1658,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1662,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1665,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1672,1
    - Dst: rasCollFree
      Src: /src/nccl/src/ras/client_support.cc:1678,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:1680,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1681,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:1681,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:1682,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:1683,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1686,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1688,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1689,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1690,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1691,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1692,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1693,1
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 429
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct rasClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 982
    functionDepth: 3
    functionLinenumber: 982
    functionLinenumberEnd: 1697
    functionName: rasClientRunComms
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - rasPeerIsDead
    - rasClientAllocMsg
    - memcpy
    - NCCLCHECKGOTO
    - COMPILER_CLZ
    - rasOutLength
    - TRACE
    - ncclCalloc
    - COMPILER_POPCOUNT64
    - rasCountIsOutlier
    - rasClientBreakDownErrors
    - rasCommRankGpuToString
    - rasOutAppend
    - ncclSocketsCompare
    - free
    - ncclSocketToString
    - qsort
    - INFO
    - clockNano
    - rasGpuToString
    - rasOutExtract
    - ncclSocketToHost
    - rasPeerFind
    - rasGpuDevsToString
    - memset
    - bsearch
    - rasDumpCommsToJSON
    - rasCollFree
    - rasOutReset
    - ncclSocketsSameNode
    - rasClientEnqueueMsg
    - snprintf
    - COMPILER_POPCOUNT32
    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:1717,1
    - Dst: ncclErrorToString
      Src: /src/nccl/src/ras/client_support.cc:1717,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1718,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1724,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1726,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1728,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1730,1
    - Dst: ncclErrorToString
      Src: /src/nccl/src/ras/client_support.cc:1731,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1732,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1734,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1737,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1739,1
    - Dst: ncclErrorToString
      Src: /src/nccl/src/ras/client_support.cc:1740,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: 1747
      start: 1700
    functionDepth: 1
    functionLinenumber: 1700
    functionLinenumberEnd: 1747
    functionName: rasClientBreakDownErrors
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - ncclSocketToHost
    - rasCountIsOutlier
    - rasCommRankGpuToString
    - rasOutAppend
    - ncclErrorToString
    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:1760,1
    - Dst: vsnprintf
      Src: /src/nccl/src/ras/client_support.cc:1761,1
    - Dst: va_end
      Src: /src/nccl/src/ras/client_support.cc:1762,1
    - Dst: ROUNDUP
      Src: /src/nccl/src/ras/client_support.cc:1769,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1770,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/ras/client_support.cc:1770,1
    - Dst: va_start
      Src: /src/nccl/src/ras/client_support.cc:1773,1
    - Dst: vsnprintf
      Src: /src/nccl/src/ras/client_support.cc:1774,1
    - Dst: va_end
      Src: /src/nccl/src/ras/client_support.cc:1775,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1756
    functionDepth: 2
    functionLinenumber: 1756
    functionLinenumberEnd: 1786
    functionName: rasOutAppend
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 4
    functionsReached:
    - va_start
    - va_end
    - ROUNDUP
    - NCCLCHECKGOTO
    - ncclRealloc
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void rasOutAppend(const char* format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:1793,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:1793,1
    - Dst: rasOutReset
      Src: /src/nccl/src/ras/client_support.cc:1794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1791
    functionDepth: 1
    functionLinenumber: 1791
    functionLinenumberEnd: 1796
    functionName: rasOutExtract
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 3
    functionsReached:
    - memcpy
    - rasOutReset
    - rasOutLength
    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: 1801
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1801
    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:1808,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1804
    functionDepth: 1
    functionLinenumber: 1804
    functionLinenumberEnd: 1813
    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:1828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1822
    functionDepth: 1
    functionLinenumber: 1822
    functionLinenumberEnd: 1837
    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:1854,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/client_support.cc:1857,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:1861,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1840
    functionDepth: 0
    functionLinenumber: 1840
    functionLinenumberEnd: 1866
    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: 1878
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1878
    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: COMPILER_CLZ
      Src: /src/nccl/src/ras/client_support.cc:1896,1
    - Dst: COMPILER_CLZ
      Src: /src/nccl/src/ras/client_support.cc:1897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1885
    functionDepth: 0
    functionLinenumber: 1885
    functionLinenumberEnd: 1917
    functionName: rasAuxCommsCompareRev
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - COMPILER_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: 1930
      start: 1920
    functionDepth: 0
    functionLinenumber: 1920
    functionLinenumberEnd: 1930
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1940,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1941,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1942,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1943,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1944,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1945,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ncclVersion
    - cudaRuntime
    - cudaDriver
    - timestamp
    - commsCount
    argTypes:
    - char*
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1938
    functionDepth: 3
    functionLinenumber: 1938
    functionLinenumberEnd: 1947
    functionName: jsonWriteHeader
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - rasOutAppend
    linkageType: ''
    returnType: void
    signature: "void jsonWriteHeader(const char* ncclVersion, int cudaRuntime, int
      cudaDriver,\n                            const char* timestamp, int commsCount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1952,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1953,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1954,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1955,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1956,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1957,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1958,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 7
    argNames:
    - commHash
    - hostHash
    - pidHash
    - commSize
    - ranksCount
    - missingCount
    - firstComm
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    - int
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1950
    functionDepth: 3
    functionLinenumber: 1950
    functionLinenumberEnd: 1960
    functionName: jsonStartCommunicator
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - rasOutAppend
    linkageType: ''
    returnType: void
    signature: "void jsonStartCommunicator(unsigned long commHash, unsigned long hostHash,
      unsigned long pidHash,\n                                  int commSize, int
      ranksCount, int missingCount, bool firstComm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1966,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1967,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1968,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1969,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1970,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1971,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1972,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1975,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1976,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1977,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1978,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1979,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1980,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1981,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1984,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1986,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/ras/client_support.cc:1986,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1987,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1988,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1990,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 12
    argNames:
    - rank
    - host
    - pid
    - cudaDev
    - nvmlDev
    - initState
    - asyncError
    - finalizeCalled
    - destroyFlag
    - abortFlag
    - collCounts
    - firstRank
    argTypes:
    - int
    - char*
    - int
    - int
    - int
    - int
    - int
    - bool
    - bool
    - bool
    - unsigned long*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1963
    functionDepth: 3
    functionLinenumber: 1963
    functionLinenumberEnd: 1992
    functionName: jsonWriteRankData
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - ncclFuncToString
    - rasOutAppend
    linkageType: ''
    returnType: void
    signature: "void jsonWriteRankData(int rank, const char* host, int pid, int cudaDev,
      int nvmlDev,\n                              int initState, int asyncError, bool
      finalizeCalled, bool destroyFlag,\n                              bool abortFlag,
      const unsigned long* collCounts, bool firstRank)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1996,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1995
    functionDepth: 3
    functionLinenumber: 1995
    functionLinenumberEnd: 2000
    functionName: jsonStartMissingRanks
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - rasOutAppend
    linkageType: ''
    returnType: void
    signature: void jsonStartMissingRanks()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2005,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2006,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2007,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2008,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2009,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2010,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2011,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2014,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2015,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2016,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2017,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 8
    argNames:
    - rank
    - host
    - pid
    - cudaDev
    - nvmlDev
    - unresponsive
    - dead
    - firstMissing
    argTypes:
    - int
    - char*
    - int
    - int
    - int
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2003
    functionDepth: 3
    functionLinenumber: 2003
    functionLinenumberEnd: 2019
    functionName: jsonWriteMissingRank
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - rasOutAppend
    linkageType: ''
    returnType: void
    signature: "void jsonWriteMissingRank(int rank, const char* host, int pid, int
      cudaDev, int nvmlDev,\n                                 bool unresponsive, bool
      dead, bool firstMissing)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2023,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2022
    functionDepth: 3
    functionLinenumber: 2022
    functionLinenumberEnd: 2025
    functionName: jsonEndCommunicator
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - rasOutAppend
    linkageType: ''
    returnType: void
    signature: void jsonEndCommunicator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2029,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2030,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2031,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2032,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2033,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:2034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - collectionTime
    - timeoutsCount
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2028
    functionDepth: 3
    functionLinenumber: 2028
    functionLinenumberEnd: 2035
    functionName: jsonWriteFooter
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - rasOutAppend
    linkageType: ''
    returnType: void
    signature: void jsonWriteFooter(double collectionTime, int timeoutsCount)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2048,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2048,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2048,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2052,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2052,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2052,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2056,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2056,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2056,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2059,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2059,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2059,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: 2062
      start: 2043
    functionDepth: 0
    functionLinenumber: 2043
    functionLinenumberEnd: 2062
    functionName: rasGpuDevsToString
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 4
    functionsReached:
    - snprintf
    - strlen
    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:2067,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2069,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2069,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2069,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: 2072
      start: 2066
    functionDepth: 0
    functionLinenumber: 2066
    functionLinenumberEnd: 2072
    functionName: rasGpuToString
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - snprintf
    - strlen
    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:2077,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: 2078
      start: 2076
    functionDepth: 1
    functionLinenumber: 2076
    functionLinenumberEnd: 2078
    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: 2092
      start: 2081
    functionDepth: 0
    functionLinenumber: 2081
    functionLinenumberEnd: 2092
    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:2097,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - addr
    - buf
    - size
    argTypes:
    - union ncclSocketAddress*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2105
    functionName: ncclSocketToHost
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 5
    functionsReached:
    - inet_ntop
    linkageType: ''
    returnType: char
    signature: char * ncclSocketToHost(const union ncclSocketAddress* addr, char*
      buf, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/nccl/src/ras/client_support.cc:2112,1
    - Dst: localtime_r
      Src: /src/nccl/src/ras/client_support.cc:2114,1
    - Dst: strftime
      Src: /src/nccl/src/ras/client_support.cc:2115,1
    - Dst: jsonWriteHeader
      Src: /src/nccl/src/ras/client_support.cc:2118,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:2118,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:2118,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:2118,1
    - Dst: jsonStartCommunicator
      Src: /src/nccl/src/ras/client_support.cc:2125,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:2137,1
    - Dst: jsonWriteRankData
      Src: /src/nccl/src/ras/client_support.cc:2141,1
    - Dst: jsonStartMissingRanks
      Src: /src/nccl/src/ras/client_support.cc:2148,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:2156,1
    - Dst: bsearch
      Src: /src/nccl/src/ras/client_support.cc:2159,1
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/client_support.cc:2161,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:2163,1
    - Dst: jsonWriteMissingRank
      Src: /src/nccl/src/ras/client_support.cc:2167,1
    - Dst: jsonEndCommunicator
      Src: /src/nccl/src/ras/client_support.cc:2171,1
    - Dst: jsonWriteFooter
      Src: /src/nccl/src/ras/client_support.cc:2179,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/client_support.cc:2179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - client
    - commsData
    - coll
    - peerIdxConv
    argTypes:
    - struct rasClient*
    - struct rasCollComms*
    - struct rasCollective*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2108
    functionDepth: 4
    functionLinenumber: 2108
    functionLinenumberEnd: 2180
    functionName: rasDumpCommsToJSON
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - rasPeerIsDead
    - jsonWriteFooter
    - jsonStartCommunicator
    - jsonWriteMissingRank
    - jsonStartMissingRanks
    - jsonEndCommunicator
    - strftime
    - ncclSocketToHost
    - clockNano
    - rasPeerFind
    - jsonWriteRankData
    - STR
    - bsearch
    - time
    - jsonWriteHeader
    - localtime_r
    linkageType: ''
    returnType: void
    signature: "void rasDumpCommsToJSON(struct rasClient* client, struct rasCollComms*
      commsData,\n                               struct rasCollective* coll, const
      int* peerIdxConv)"
  - 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: 2192
      start: 2183
    functionDepth: 0
    functionLinenumber: 2183
    functionLinenumberEnd: 2192
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/nccl/src/ras/client_support.cc:2204,1
    - Dst: localtime_r
      Src: /src/nccl/src/ras/client_support.cc:2205,1
    - Dst: strftime
      Src: /src/nccl/src/ras/client_support.cc:2206,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:2213,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:2221,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2224,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2225,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2228,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2229,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2232,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2235,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2236,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2239,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2240,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2243,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2244,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/client_support.cc:2261,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2262,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2274,1
    - Dst: rasPeerInfoToString
      Src: /src/nccl/src/ras/client_support.cc:2286,1
    - Dst: rasPeerToString
      Src: /src/nccl/src/ras/client_support.cc:2288,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2290,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2291,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:2294,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:2299,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:2300,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:2301,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:2302,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 2
    argNames:
    - group
    - event
    argTypes:
    - rasEventGroup
    - struct rasEventNotification*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2197
    functionDepth: 3
    functionLinenumber: 2197
    functionLinenumberEnd: 2306
    functionName: rasClientsNotifyEvent
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 9
    functionsReached:
    - rasPeerInfoToString
    - strftime
    - ncclSocketToHost
    - rasClientAllocMsg
    - rasPeerFind
    - memcpy
    - strlen
    - rasPeerToString
    - time
    - rasClientEnqueueMsg
    - snprintf
    - ncclSocketToString
    - localtime_r
    linkageType: ''
    returnType: void
    signature: void rasClientsNotifyEvent(rasEventGroup group, const struct rasEventNotification*
      event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/nccl/src/ras/client_support.cc:2310,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:2313,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:2319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2309
    functionDepth: 2
    functionLinenumber: 2309
    functionLinenumberEnd: 2324
    functionName: rasClientSupportTerminate
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - free
    - rasClientTerminate
    - close
    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: 167
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 167
    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:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - rasMsgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 187
    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:39,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - file
    - c
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    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:48,1
    - Dst: xmlGetChar
      Src: /src/nccl/src/graph/xml.cc:48,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:56,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:60,1
    - Dst: xmlGetChar
      Src: /src/nccl/src/graph/xml.cc:60,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:66,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:73,1
    - Dst: xmlGetChar
      Src: /src/nccl/src/graph/xml.cc:73,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:77,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:83,1
    - Dst: xmlGetChar
      Src: /src/nccl/src/graph/xml.cc:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - file
    - value
    - last
    argTypes:
    - FILE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 85
    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:92,1
    - Dst: xmlGetChar
      Src: /src/nccl/src/graph/xml.cc:92,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:96,1
    - Dst: xmlGetValue
      Src: /src/nccl/src/graph/xml.cc:99,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:104,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - file
    - name
    - value
    - last
    argTypes:
    - FILE*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 112
    functionName: xmlGetToken
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlGetChar
    - xmlGetValue
    - WARN
    - 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: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    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:122,1
    - Dst: SHIFT_APPEND
      Src: /src/nccl/src/graph/xml.cc:122,1
    - Dst: SHIFT_APPEND
      Src: /src/nccl/src/graph/xml.cc:123,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:126,1
    - Dst: fread
      Src: /src/nccl/src/graph/xml.cc:128,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:129,1
    - Dst: SHIFT_APPEND
      Src: /src/nccl/src/graph/xml.cc:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - file
    - start
    - next
    argTypes:
    - FILE*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 135
    functionName: xmlSkipComment
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - fread
    - strlen
    - strcmp
    - WARN
    - SHIFT_APPEND
    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:141,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:144,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:148,1
    - Dst: xmlGetToken
      Src: /src/nccl/src/graph/xml.cc:148,1
    - Dst: strncmp
      Src: /src/nccl/src/graph/xml.cc:151,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:152,1
    - Dst: xmlSkipComment
      Src: /src/nccl/src/graph/xml.cc:152,1
    - Dst: xmlGetNode
      Src: /src/nccl/src/graph/xml.cc:153,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:160,1
    - Dst: xmlGetToken
      Src: /src/nccl/src/graph/xml.cc:160,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:162,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:173,1
    - Dst: xmlGetToken
      Src: /src/nccl/src/graph/xml.cc:173,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:175,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:183,1
    - Dst: xmlGetToken
      Src: /src/nccl/src/graph/xml.cc:183,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:186,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - file
    - node
    argTypes:
    - FILE*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 190
    functionName: xmlGetNode
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - xmlGetToken
    - INFO
    - strncmp
    - xmlSkipComment
    - fread
    - xmlGetNode
    - WARN
    - 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:196,1
    - Dst: memset
      Src: /src/nccl/src/graph/xml.cc:200,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:201,1
    - Dst: xmlGetNode
      Src: /src/nccl/src/graph/xml.cc:201,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:204,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:212,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:213,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:220,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:223,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:231,1
    - Dst: func
      Src: /src/nccl/src/graph/xml.cc:231,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:237,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:238,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:238,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: 241
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 241
    functionName: xmlLoadSub
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - INFO
    - xmlGetNode
    - memset
    - strcmp
    - func
    - WARN
    - xmlLoadSub
    - NCCLCHECK
    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: 262
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 262
    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:265,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:266,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:269,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:272,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:274,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:276,1
    - Dst: ncclTopoDumpXmlRec
      Src: /src/nccl/src/graph/xml.cc:276,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:278,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - indent
    - file
    - node
    argTypes:
    - int
    - FILE*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 282
    functionName: ncclTopoDumpXmlRec
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - fprintf
    - ncclTopoDumpXmlRec
    - 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:285,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:287,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:290,1
    - Dst: ncclTopoDumpXmlRec
      Src: /src/nccl/src/graph/xml.cc:290,1
    - Dst: fclose
      Src: /src/nccl/src/graph/xml.cc:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - xmlTopoFile
    - xml
    argTypes:
    - char*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: ncclTopoDumpXmlToFile
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - INFO
    - NCCLCHECK
    - ncclTopoDumpXmlRec
    - fopen
    - fclose
    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:299,1
    - Dst: xmlFindNode
      Src: /src/nccl/src/graph/xml.cc:299,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:301,1
    - Dst: xmlAddTree
      Src: /src/nccl/src/graph/xml.cc:301,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:303,1
    - Dst: xmlTopoFuseXmlRecursive
      Src: /src/nccl/src/graph/xml.cc:303,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: 307
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: xmlTopoFuseXmlRecursive
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - xmlFindNode
    - xmlAddTree
    - xmlTopoFuseXmlRecursive
    - NCCLCHECK
    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:311,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/xml.cc:311,1
    - Dst: xmlAddTree
      Src: /src/nccl/src/graph/xml.cc:314,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:319,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/xml.cc:319,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:321,1
    - Dst: xmlTopoFuseXmlRecursive
      Src: /src/nccl/src/graph/xml.cc:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct ncclXml*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 324
    functionName: ncclTopoFuseXml
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlTopoFuseXmlRecursive
    - xmlFindTag
    - xmlAddTree
    - NCCLCHECK
    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:332,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 6
    functionLinenumber: 331
    functionLinenumberEnd: 334
    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:337,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 6
    functionLinenumber: 336
    functionLinenumberEnd: 339
    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:342,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 6
    functionLinenumber: 341
    functionLinenumberEnd: 344
    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:347,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 6
    functionLinenumber: 345
    functionLinenumberEnd: 349
    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:352,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 6
    functionLinenumber: 351
    functionLinenumberEnd: 354
    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:358,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 360
    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:364,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 6
    functionLinenumber: 362
    functionLinenumberEnd: 366
    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:370,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 6
    functionLinenumber: 368
    functionLinenumberEnd: 372
    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:376,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/xml.cc:376,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:378,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:382,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:382,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:383,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:384,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:387,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 374
    functionDepth: 6
    functionLinenumber: 374
    functionLinenumberEnd: 389
    functionName: ncclTopoXmlLoadSystem
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - INFO
    - xmlGetAttrInt
    - xmlGetAttr
    - WARN
    - xmlLoadSub
    - 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:392,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:395,1
    - Dst: strerror
      Src: /src/nccl/src/graph/xml.cc:395,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:399,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:402,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:402,1
    - Dst: fclose
      Src: /src/nccl/src/graph/xml.cc:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - xmlTopoFile
    - xml
    - warn
    argTypes:
    - char*
    - struct ncclXml*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 6
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: ncclTopoGetXmlFromFile
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - INFO
    - strerror
    - fclose
    - fopen
    - 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:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 416
    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:419,1
    - Dst: memcpylower
      Src: /src/nccl/src/graph/xml.cc:420,1
    - Dst: ncclOsRealpath
      Src: /src/nccl/src/graph/xml.cc:421,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - busId
    - path
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 427
    functionName: getPciPath
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - memcpylower
    - WARN
    - ncclOsRealpath
    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:433,1
    - Dst: opendir
      Src: /src/nccl/src/graph/xml.cc:434,1
    - Dst: readdir
      Src: /src/nccl/src/graph/xml.cc:437,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:438,1
    - Dst: getPciPath
      Src: /src/nccl/src/graph/xml.cc:440,1
    - Dst: free
      Src: /src/nccl/src/graph/xml.cc:441,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:442,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/graph/xml.cc:442,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/xml.cc:443,1
    - Dst: closedir
      Src: /src/nccl/src/graph/xml.cc:445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - busId
    - nlinks
    - peers
    argTypes:
    - char*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 448
    functionName: getBcmLinks
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - getPciPath
    - memcpy
    - strlen
    - opendir
    - free
    - memcpylower
    - ncclRealloc
    - closedir
    - readdir
    - NCCLCHECK
    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:452,1
    - Dst: fopen
      Src: /src/nccl/src/graph/xml.cc:455,1
    - Dst: feof
      Src: /src/nccl/src/graph/xml.cc:456,1
    - Dst: ferror
      Src: /src/nccl/src/graph/xml.cc:456,1
    - Dst: fread
      Src: /src/nccl/src/graph/xml.cc:457,1
    - Dst: fclose
      Src: /src/nccl/src/graph/xml.cc:460,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - path
    - fileName
    - strValue
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 469
    functionName: ncclTopoGetStrFromSys
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - INFO
    - fread
    - feof
    - fopen
    - snprintf
    - ferror
    - fclose
    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:473,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:473,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:474,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:474,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/xml.cc:475,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: 477
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 477
    functionName: ncclTopoSetAttrFromSys
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - xmlSetAttr
    - ncclTopoGetStrFromSys
    - NCCLCHECK
    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:481,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:481,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:484,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:484,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:486,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.cc:491,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:492,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:492,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:495,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:495,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:499,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:499,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:501,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:501,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:503,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:503,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:508,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:508,1
    - Dst: __cpuid
      Src: /src/nccl/src/graph/xml.cc:521,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.cc:523,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:525,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:525,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:528,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:528,1
    - Dst: __cpuid
      Src: /src/nccl/src/graph/xml.cc:544,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:547,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:547,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:548,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - cpuNode
    - xml
    argTypes:
    - struct ncclXmlNode*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 552
    functionName: ncclTopoGetXmlFromCpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlSetAttr
    - ncclTopoSetAttrFromSys
    - __cpuid
    - xmlSetAttrInt
    - strncpy
    - xmlGetAttr
    - xmlGetAttrIndex
    - snprintf
    - WARN
    - NCCLCHECK
    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:555,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/xml.cc:555,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:557,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:557,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:558,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - xml
    - busId
    - pciNode
    argTypes:
    - struct ncclXml*
    - char*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 561
    functionName: ncclTopoGetPciNode
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlFindTagKv
    - xmlSetAttr
    - xmlAddNode
    - 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: 568
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 568
    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:570,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:572,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:572,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:572,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:572,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:573,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:573,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:573,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:573,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:574,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 8
    argCount: 1
    argNames:
    - bdf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 576
    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:588,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:588,1
    - Dst: NOWARN
      Src: /src/nccl/src/graph/xml.cc:589,1
    - Dst: getPciPath
      Src: /src/nccl/src/graph/xml.cc:589,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:592,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:592,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/graph/xml.cc:594,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:594,1
    - Dst: NOWARN
      Src: /src/nccl/src/graph/xml.cc:596,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:596,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/graph/xml.cc:598,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:598,1
    - Dst: NOWARN
      Src: /src/nccl/src/graph/xml.cc:600,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:600,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/graph/xml.cc:602,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:602,1
    - Dst: NOWARN
      Src: /src/nccl/src/graph/xml.cc:604,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:604,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/graph/xml.cc:606,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:606,1
    - Dst: NOWARN
      Src: /src/nccl/src/graph/xml.cc:608,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:608,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:610,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:610,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:615,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:615,1
    - Dst: sscanf
      Src: /src/nccl/src/graph/xml.cc:616,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:619,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:619,1
    - Dst: sscanf
      Src: /src/nccl/src/graph/xml.cc:620,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:621,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:621,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:623,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:623,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:626,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:626,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:630,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:630,1
    - Dst: strtol
      Src: /src/nccl/src/graph/xml.cc:631,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:632,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:632,1
    - Dst: strtol
      Src: /src/nccl/src/graph/xml.cc:633,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:634,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:634,1
    - Dst: min
      Src: /src/nccl/src/graph/xml.cc:634,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:636,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:636,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:640,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:640,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:641,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:643,1
    - Dst: getBcmLinks
      Src: /src/nccl/src/graph/xml.cc:643,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:647,1
    - Dst: xmlGetSubKv
      Src: /src/nccl/src/graph/xml.cc:647,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:649,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:649,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:650,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:650,1
    - Dst: free
      Src: /src/nccl/src/graph/xml.cc:653,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:662,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:662,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:668,1
    - Dst: checkBDFFormat
      Src: /src/nccl/src/graph/xml.cc:675,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:678,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/xml.cc:678,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:679,1
    - Dst: xmlGetSubKv
      Src: /src/nccl/src/graph/xml.cc:679,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:681,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:681,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:682,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/xml.cc:682,1
    - Dst: getHostHash
      Src: /src/nccl/src/graph/xml.cc:682,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:683,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:683,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:687,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:689,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/xml.cc:689,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:691,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:691,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:692,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:692,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:703,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/xml.cc:703,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:706,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/xml.cc:706,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:707,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:707,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:708,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/xml.cc:708,1
    - Dst: getHostHash
      Src: /src/nccl/src/graph/xml.cc:708,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:709,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:709,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:710,1
    - Dst: ncclTopoGetXmlFromCpu
      Src: /src/nccl/src/graph/xml.cc:710,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:720,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/xml.cc:720,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:723,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:723,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:724,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:727,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:735,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:736,1
    - Dst: ncclTopoGetXmlFromSys
      Src: /src/nccl/src/graph/xml.cc:736,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:737,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/xml.cc:738,1
    - Dst: ncclTopoGetXmlFromCpu
      Src: /src/nccl/src/graph/xml.cc:738,1
    - Dst: free
      Src: /src/nccl/src/graph/xml.cc:741,1
    - Dst: free
      Src: /src/nccl/src/graph/xml.cc:742,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 137
    argCount: 2
    argNames:
    - pciNode
    - xml
    argTypes:
    - struct ncclXmlNode*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 578
    functionDepth: 3
    functionLinenumber: 578
    functionLinenumberEnd: 744
    functionName: ncclTopoGetXmlFromSys
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - sscanf
    - xmlSetAttr
    - xmlFindTagKv
    - NCCLCHECKGOTO
    - strcmp
    - ncclTopoGetXmlFromSys
    - WARN
    - strtol
    - checkBDFFormat
    - strlen
    - free
    - xmlGetAttrStr
    - xmlGetAttr
    - xmlFindTag
    - min
    - xmlSetAttrLong
    - xmlAddNode
    - NCCLCHECKNOWARN
    - NCCLCHECK
    - NOWARN
    - getPciPath
    - ncclTopoGetStrFromSys
    - getHostHash
    - ncclTopoGetXmlFromCpu
    - ncclTopoSetAttrFromSys
    - xmlSetAttrInt
    - xmlGetSubKv
    - getBcmLinks
    - xmlGetAttrIndex
    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:748,1
    - Dst: xmlGetSub
      Src: /src/nccl/src/graph/xml.cc:748,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:749,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:749,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:754,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:754,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:756,1
    - Dst: ncclNvmlDeviceGetIndex
      Src: /src/nccl/src/graph/xml.cc:756,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:757,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:757,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:759,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/xml.cc:759,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:762,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:762,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/graph/xml.cc:767,1
    - Dst: cudaGetDeviceProperties
      Src: /src/nccl/src/graph/xml.cc:767,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:770,1
    - Dst: ncclNvmlDeviceGetCudaComputeCapability
      Src: /src/nccl/src/graph/xml.cc:770,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:772,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:772,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:775,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/xml.cc:775,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:778,1
    - Dst: xmlGetSub
      Src: /src/nccl/src/graph/xml.cc:778,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:784,1
    - Dst: ncclNvmlDeviceGetNvLinkCapability
      Src: /src/nccl/src/graph/xml.cc:791,1
    - Dst: ncclNvmlDeviceGetFieldValues
      Src: /src/nccl/src/graph/xml.cc:801,1
    - Dst: ncclNvmlDeviceGetNvLinkState
      Src: /src/nccl/src/graph/xml.cc:806,1
    - Dst: ncclNvmlDeviceGetNvLinkRemotePciInfo
      Src: /src/nccl/src/graph/xml.cc:812,1
    - Dst: tolower
      Src: /src/nccl/src/graph/xml.cc:819,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:823,1
    - Dst: xmlGetSubKv
      Src: /src/nccl/src/graph/xml.cc:823,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:825,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:825,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:826,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:826,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:827,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:827,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:830,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/xml.cc:830,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:831,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:831,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:837,1
    - Dst: xmlGetSub
      Src: /src/nccl/src/graph/xml.cc:837,1
    - Dst: ncclNvmlDeviceGetFieldValues
      Src: /src/nccl/src/graph/xml.cc:843,1
    - Dst: ncclNvmlDeviceGetFieldValues
      Src: /src/nccl/src/graph/xml.cc:853,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:862,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:862,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:863,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:863,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:864,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:864,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:873,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:875,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:875,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:878,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:878,1
    - Dst: NOWARN
      Src: /src/nccl/src/graph/xml.cc:881,1
    - Dst: getPciPath
      Src: /src/nccl/src/graph/xml.cc:881,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:882,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:884,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:886,1
    - Dst: free
      Src: /src/nccl/src/graph/xml.cc:888,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:889,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 105
    argCount: 4
    argNames:
    - pciNode
    - nvmlDev
    - xml
    - gpuNodeRet
    argTypes:
    - struct ncclXmlNode*
    - nvmlDevice_t
    - struct ncclXml*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 746
    functionDepth: 3
    functionLinenumber: 746
    functionLinenumberEnd: 894
    functionName: ncclTopoGetXmlFromGpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlSetAttr
    - ncclNvmlDeviceGetNvLinkRemotePciInfo
    - ncclNvmlDeviceGetIndex
    - ncclNvmlDeviceGetNvLinkCapability
    - strcmp
    - CUDACHECK
    - xmlGetAttrInt
    - free
    - xmlGetAttr
    - ncclNvmlDeviceGetCudaComputeCapability
    - tolower
    - INFO
    - cudaGetDeviceProperties
    - xmlAddNode
    - NCCLCHECK
    - NOWARN
    - getPciPath
    - ncclNvmlDeviceGetFieldValues
    - ncclTopoSetAttrFromSys
    - xmlGetSub
    - xmlSetAttrInt
    - xmlGetSubKv
    - xmlGetAttrIndex
    - ncclNvmlDeviceGetNvLinkState
    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:898,1
    - Dst: ncclTopoGetPciNode
      Src: /src/nccl/src/graph/xml.cc:898,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:899,1
    - Dst: xmlSetAttrIfUnset
      Src: /src/nccl/src/graph/xml.cc:899,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:900,1
    - Dst: ncclTopoGetXmlFromSys
      Src: /src/nccl/src/graph/xml.cc:900,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:902,1
    - Dst: ncclNvmlDeviceGetHandleByPciBusId
      Src: /src/nccl/src/graph/xml.cc:902,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:903,1
    - Dst: ncclTopoGetXmlFromGpu
      Src: /src/nccl/src/graph/xml.cc:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - xml
    - busId
    - gpuNode
    argTypes:
    - struct ncclXml*
    - char*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 896
    functionDepth: 4
    functionLinenumber: 896
    functionLinenumberEnd: 905
    functionName: ncclTopoFillGpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - ncclNvmlDeviceGetHandleByPciBusId
    - ncclTopoGetPciNode
    - ncclTopoGetXmlFromGpu
    - xmlSetAttrIfUnset
    - 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:911,1
    - Dst: realpath
      Src: /src/nccl/src/graph/xml.cc:912,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:917,1
    - Dst: strcpy
      Src: /src/nccl/src/graph/xml.cc:918,1
    - Dst: free
      Src: /src/nccl/src/graph/xml.cc:919,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - sysPath
    - subSys
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 922
    functionName: ncclTopoGetSubsystem
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - realpath
    - strlen
    - free
    - strcpy
    - 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:925,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/xml.cc:925,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:936,1
    - Dst: ncclTopoGetSubsystem
      Src: /src/nccl/src/graph/xml.cc:936,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:938,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:939,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:946,1
    - Dst: strcpy
      Src: /src/nccl/src/graph/xml.cc:948,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:949,1
    - Dst: ncclTopoGetPciNode
      Src: /src/nccl/src/graph/xml.cc:949,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:950,1
    - Dst: xmlSetAttrIfUnset
      Src: /src/nccl/src/graph/xml.cc:950,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:951,1
    - Dst: ncclTopoGetXmlFromSys
      Src: /src/nccl/src/graph/xml.cc:951,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:954,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/xml.cc:954,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:959,1
    - Dst: xmlGetSub
      Src: /src/nccl/src/graph/xml.cc:959,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:961,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:961,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:966,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:966,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:967,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:967,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 6
    argNames:
    - xml
    - tagName
    - pciPath
    - netName
    - netNode
    - forceParent
    argTypes:
    - struct ncclXml*
    - char*
    - char*
    - char*
    - struct ncclXmlNode**
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 924
    functionDepth: 4
    functionLinenumber: 924
    functionLinenumberEnd: 969
    functionName: ncclTopoFillNet
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - INFO
    - xmlSetAttr
    - ncclTopoGetPciNode
    - ncclTopoGetSubsystem
    - strlen
    - xmlSetAttrIfUnset
    - xmlFindTagKv
    - strcmp
    - strcpy
    - ncclTopoGetXmlFromSys
    - xmlGetSub
    - xmlFindTag
    - xmlAddNode
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoFillNet(struct ncclXml* xml, const char* tagName,
      const char* pciPath, const char* netName, struct ncclXmlNode** netNode, struct
      ncclXmlNode* forceParent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:973,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:973,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:974,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:975,1
    - Dst: xmlUnsetAttr
      Src: /src/nccl/src/graph/xml.cc:975,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:980,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/xml.cc:980,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/xml.cc:982,1
    - Dst: ncclTopoTrimXmlRec
      Src: /src/nccl/src/graph/xml.cc:987,1
    - Dst: free
      Src: /src/nccl/src/graph/xml.cc:993,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:994,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:997,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:997,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:997,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:997,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1001,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:1001,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1002,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:1002,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/xml.cc:1003,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1005,1
    - Dst: xmlRemoveNode
      Src: /src/nccl/src/graph/xml.cc:1005,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - node
    - keep
    argTypes:
    - struct ncclXmlNode*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 1009
    functionName: ncclTopoTrimXmlRec
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - ncclTopoTrimXmlRec
    - xmlUnsetAttr
    - ncclCalloc
    - TRACE
    - memcpy
    - free
    - strcmp
    - xmlRemoveNode
    - xmlGetAttr
    - NCCLCHECK
    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:1012,1
    - Dst: ncclTopoTrimXmlRec
      Src: /src/nccl/src/graph/xml.cc:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xml
    argTypes:
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1010
    functionDepth: 2
    functionLinenumber: 1010
    functionLinenumberEnd: 1014
    functionName: ncclTopoTrimXml
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - ncclTopoTrimXmlRec
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoTrimXml(struct ncclXml* xml)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1021,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1020
    functionDepth: 6
    functionLinenumber: 1020
    functionLinenumberEnd: 1023
    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:1026,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1025
    functionDepth: 6
    functionLinenumber: 1025
    functionLinenumberEnd: 1028
    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:1032,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1030
    functionDepth: 6
    functionLinenumber: 1030
    functionLinenumberEnd: 1034
    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:1038,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1036
    functionDepth: 6
    functionLinenumber: 1036
    functionLinenumberEnd: 1040
    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:1044,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/xml.cc:1044,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:1046,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1050,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:1050,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:1051,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:1052,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1055,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - file
    - xmlGraph
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1042
    functionDepth: 6
    functionLinenumber: 1042
    functionLinenumberEnd: 1057
    functionName: ncclTopoXmlGraphLoadGraphs
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - INFO
    - xmlGetAttrInt
    - xmlGetAttr
    - WARN
    - xmlLoadSub
    - 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:1060,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:1062,1
    - Dst: strerror
      Src: /src/nccl/src/graph/xml.cc:1062,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1067,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1067,1
    - Dst: fclose
      Src: /src/nccl/src/graph/xml.cc:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - xmlGraphFile
    - xml
    argTypes:
    - char*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1059
    functionDepth: 6
    functionLinenumber: 1059
    functionLinenumberEnd: 1070
    functionName: ncclTopoGetXmlGraphFromFile
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - strerror
    - fclose
    - fopen
    - WARN
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlGraphFromFile(const char* xmlGraphFile,
      struct ncclXml* xml)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - file
    - c
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1080
    functionName: xmlGetChar
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetChar(FILE* file, char* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - value
    - last
    argTypes:
    - FILE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1087
    functionName: xmlGetValue
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetValue(FILE* file, char* value, char* last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - file
    - name
    - value
    - last
    argTypes:
    - FILE*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1095
    functionName: xmlGetToken
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetToken(FILE* file, char* name, char* value, char*
      last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - start
    - next
    argTypes:
    - FILE*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1102
    functionName: xmlSkipComment
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlSkipComment(FILE* file, char* start, char next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - file
    - node
    argTypes:
    - FILE*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1108
    functionName: xmlGetNode
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetNode(FILE* file, struct ncclXmlNode* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - file
    - xml
    - head
    - handlers
    - nHandlers
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    - struct xmlHandler[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1117
    functionName: xmlLoadSub
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlLoadSub(FILE* file, struct ncclXml* xml, struct ncclXmlNode*
      head, struct xmlHandler handlers[], int nHandlers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xml
    - base
    - exp
    argTypes:
    - struct ncclXml*
    - uintptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1124
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - indent
    - file
    - node
    argTypes:
    - int
    - FILE*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1131
    functionName: ncclTopoDumpXmlRec
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoDumpXmlRec(int indent, FILE* file, struct ncclXmlNode*
      node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xmlTopoFile
    - xml
    argTypes:
    - char*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1137
    functionName: ncclTopoDumpXmlToFile
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoDumpXmlToFile(const char* xmlTopoFile, struct
      ncclXml* xml)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct ncclXml*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1143
    functionName: ncclTopoFuseXml
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoFuseXml(struct ncclXml* dst, struct ncclXml* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1150
    functionName: ncclTopoXmlLoadNvlink
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadNvlink(FILE* file, struct ncclXml* xml,
      struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1157
    functionName: ncclTopoXmlLoadPciLink
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadPciLink(FILE* file, struct ncclXml* xml,
      struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1164
    functionName: ncclTopoXmlLoadC2c
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadC2c(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1171
    functionName: ncclTopoXmlLoadGpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadGpu(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1178
    functionName: ncclTopoXmlLoadNet
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadNet(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1185
    functionName: ncclTopoXmlLoadNic
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadNic(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1192
    functionName: ncclTopoXmlLoadPci
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadPci(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1199
    functionName: ncclTopoXmlLoadCpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadCpu(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1206
    functionName: ncclTopoXmlLoadSystem
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadSystem(FILE* file, struct ncclXml* xml,
      struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xmlTopoFile
    - xml
    - warn
    argTypes:
    - char*
    - struct ncclXml*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1213
    functionName: ncclTopoGetXmlFromFile
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlFromFile(const char* xmlTopoFile, struct
      ncclXml* xml, int warn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - path
    - fileName
    - strValue
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1220
    functionName: ncclTopoGetStrFromSys
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetStrFromSys(const char* path, const char* fileName,
      char* strValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - pciNode
    - path
    - fileName
    - attrName
    argTypes:
    - struct ncclXmlNode*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1228
    functionName: ncclTopoSetAttrFromSys
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSetAttrFromSys(struct ncclXmlNode* pciNode, const
      char* path, const char* fileName, const char* attrName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cpuNode
    - xml
    argTypes:
    - struct ncclXmlNode*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1234
    functionName: ncclTopoGetXmlFromCpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlFromCpu(struct ncclXmlNode* cpuNode, struct
      ncclXml* xml)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xml
    - busId
    - pciNode
    argTypes:
    - struct ncclXml*
    - char*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1241
    functionName: ncclTopoGetPciNode
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetPciNode(struct ncclXml* xml, const char* busId,
      struct ncclXmlNode** pciNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1246
    functionName: isHex
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isHex(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bdf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1251
    functionName: checkBDFFormat
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int checkBDFFormat(char* bdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pciNode
    - xml
    argTypes:
    - struct ncclXmlNode*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1257
    functionName: ncclTopoGetXmlFromSys
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlFromSys(struct ncclXmlNode* pciNode, struct
      ncclXml* xml)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - pciNode
    - nvmlDev
    - xml
    - gpuNodeRet
    argTypes:
    - struct ncclXmlNode*
    - nvmlDevice_t
    - struct ncclXml*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1265
    functionName: ncclTopoGetXmlFromGpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlFromGpu(struct ncclXmlNode* pciNode, nvmlDevice_t
      nvmlDev, struct ncclXml* xml, struct ncclXmlNode** gpuNodeRet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xml
    - busId
    - gpuNode
    argTypes:
    - struct ncclXml*
    - char*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1272
    functionName: ncclTopoFillGpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoFillGpu(struct ncclXml* xml, const char* busId,
      struct ncclXmlNode** gpuNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sysPath
    - subSys
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1278
    functionName: ncclTopoGetSubsystem
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetSubsystem(const char* sysPath, char* subSys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - xml
    - tagName
    - pciPath
    - netName
    - netNode
    - forceParent
    argTypes:
    - struct ncclXml*
    - char*
    - char*
    - char*
    - struct ncclXmlNode**
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1288
    functionName: ncclTopoFillNet
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoFillNet(struct ncclXml* xml, const char* tagName,
      const char* pciPath, const char* netName, struct ncclXmlNode** netNode, struct
      ncclXmlNode* forceParent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - node
    - keep
    argTypes:
    - struct ncclXmlNode*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1294
    functionName: ncclTopoTrimXmlRec
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoTrimXmlRec(struct ncclXmlNode* node, int* keep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xml
    argTypes:
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1299
    functionName: ncclTopoTrimXml
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoTrimXml(struct ncclXml* xml)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1306
    functionName: ncclTopoXmlGraphLoadGpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlGraphLoadGpu(FILE* file, struct ncclXml* xml,
      struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1313
    functionName: ncclTopoXmlGraphLoadNet
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlGraphLoadNet(FILE* file, struct ncclXml* xml,
      struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1320
    functionName: ncclTopoXmlGraphLoadChannel
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlGraphLoadChannel(FILE* file, struct ncclXml*
      xml, struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1327
    functionName: ncclTopoXmlGraphLoadGraph
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlGraphLoadGraph(FILE* file, struct ncclXml*
      xml, struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - xmlGraph
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1334
    functionName: ncclTopoXmlGraphLoadGraphs
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlGraphLoadGraphs(FILE* file, struct ncclXml*
      xmlGraph, struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xmlGraphFile
    - xml
    argTypes:
    - char*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1336
    functionDepth: 0
    functionLinenumber: 1336
    functionLinenumberEnd: 1340
    functionName: ncclTopoGetXmlGraphFromFile
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    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:13,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/rings.cc:14,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/rings.cc:16,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/rings.cc:24,1
    - Dst: INFO
      Src: /src/nccl/src/graph/rings.cc:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - values
    - nranks
    - prefix
    argTypes:
    - int*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 27
    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: DIVUP
      Src: /src/nccl/src/graph/rings.cc:32,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/rings.cc:33,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/rings.cc:33,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/rings.cc:48,1
    - Dst: dumpLine
      Src: /src/nccl/src/graph/rings.cc:49,1
    - Dst: WARN
      Src: /src/nccl/src/graph/rings.cc:51,1
    - Dst: WARN
      Src: /src/nccl/src/graph/rings.cc:61,1
    - Dst: memset
      Src: /src/nccl/src/graph/rings.cc:66,1
    - Dst: free
      Src: /src/nccl/src/graph/rings.cc:69,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 6
    argNames:
    - nrings
    - rings
    - rank
    - nranks
    - prev
    - next
    argTypes:
    - int
    - int*
    - int
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 71
    functionName: ncclBuildRings
    functionSourceFile: /src/nccl/src/graph/rings.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - dumpLine
    - free
    - DIVUP
    - memset
    - snprintf
    - WARN
    - NCCLCHECK
    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: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    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: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    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: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    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: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    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: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: NCCL_TOPO_ID
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_TOPO_ID(systemid, localid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - busId
    - ','
    - localRankOnDev
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: NCCL_TOPO_GPU_LOCAL_ID
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_TOPO_GPU_LOCAL_ID(busId, localRankOnDev)
  - 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: 210
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 210
    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:220,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: 222
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 222
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.h:227,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.h:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - system
    - systemId
    - dev
    - warn
    - rank
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    - bool
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: ncclTopoDevToRank
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached:
    - NCCL_TOPO_ID_SYSTEM_ID
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoDevToRank(struct ncclTopoSystem* system, int systemId,
      int dev, bool warn, int* rank)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.h:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - system
    - id
    - netDev
    argTypes:
    - struct ncclTopoSystem*
    - int64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 249
    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: 261
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 261
    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: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: isPow2
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 9
    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: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    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:21,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:24,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:27,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: 34
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 34
    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:57,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:59,1
    - Dst: strdup
      Src: /src/nccl/src/graph/tuning.cc:63,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:65,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:66,1
    - Dst: WARN
      Src: /src/nccl/src/graph/tuning.cc:72,1
    - Dst: strcasecmp
      Src: /src/nccl/src/graph/tuning.cc:89,1
    - Dst: strdup
      Src: /src/nccl/src/graph/tuning.cc:93,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:95,1
    - Dst: strcasecmp
      Src: /src/nccl/src/graph/tuning.cc:99,1
    - Dst: WARN
      Src: /src/nccl/src/graph/tuning.cc:105,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:109,1
    - Dst: free
      Src: /src/nccl/src/graph/tuning.cc:111,1
    - Dst: WARN
      Src: /src/nccl/src/graph/tuning.cc:115,1
    - Dst: free
      Src: /src/nccl/src/graph/tuning.cc:119,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:122,1
    - Dst: free
      Src: /src/nccl/src/graph/tuning.cc:126,1
    - Dst: free
      Src: /src/nccl/src/graph/tuning.cc:127,1
    - Dst: free
      Src: /src/nccl/src/graph/tuning.cc:128,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: 132
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 132
    functionName: parseList
    functionSourceFile: /src/nccl/src/graph/tuning.cc
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - strcasecmp
    - strtok_r
    - WARN
    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:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 217
    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:223,1
    - Dst: ncclParamNetOverhead
      Src: /src/nccl/src/graph/tuning.cc:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: getNetOverhead
    functionSourceFile: /src/nccl/src/graph/tuning.cc
    functionUses: 0
    functionsReached:
    - ncclParamNetOverhead
    linkageType: ''
    returnType: float
    signature: float getNetOverhead(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: ncclTopoInitTunerConstants
    functionSourceFile: /src/nccl/src/graph/tuning.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoInitTunerConstants(struct ncclComm* comm)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: getNthreads
      Src: /src/nccl/src/graph/tuning.cc:241,1
    - Dst: ncclParamNthreads
      Src: /src/nccl/src/graph/tuning.cc:241,1
    - Dst: getNthreads
      Src: /src/nccl/src/graph/tuning.cc:243,1
    - Dst: ncclParamNthreads
      Src: /src/nccl/src/graph/tuning.cc:243,1
    - Dst: getNthreads
      Src: /src/nccl/src/graph/tuning.cc:249,1
    - Dst: ncclParamNthreads
      Src: /src/nccl/src/graph/tuning.cc:249,1
    - Dst: getNthreads
      Src: /src/nccl/src/graph/tuning.cc:251,1
    - Dst: ncclParamLl128Nthreads
      Src: /src/nccl/src/graph/tuning.cc:251,1
    - Dst: ncclPatEnable
      Src: /src/nccl/src/graph/tuning.cc:290,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:307,1
    - Dst: DEFINE_Apply_LoadMultimem_minmax
      Src: /src/nccl/src/graph/tuning.cc:307,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:312,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:313,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:314,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:315,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:316,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:323,1
    - Dst: getNetOverhead
      Src: /src/nccl/src/graph/tuning.cc:382,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:385,1
    - Dst: log2i
      Src: /src/nccl/src/graph/tuning.cc:392,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:396,1
    - Dst: log2i
      Src: /src/nccl/src/graph/tuning.cc:403,1
    - Dst: log2i
      Src: /src/nccl/src/graph/tuning.cc:406,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/tuning.cc:427,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:429,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/tuning.cc:430,1
    - Dst: parseList
      Src: /src/nccl/src/graph/tuning.cc:430,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/tuning.cc:432,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:434,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/tuning.cc:435,1
    - Dst: parseList
      Src: /src/nccl/src/graph/tuning.cc:435,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:442,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:442,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:444,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:444,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:446,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:446,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:448,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:448,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:450,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:450,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:453,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:453,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:455,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:455,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:457,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:457,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:459,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:459,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:461,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:461,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:464,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/tuning.cc:468,1
    - Dst: ncclTopoGetNvsCount
      Src: /src/nccl/src/graph/tuning.cc:468,1
    - Dst: ncclParamLl128C2c
      Src: /src/nccl/src/graph/tuning.cc:490,1
    - Dst: ncclParamLl128C2c
      Src: /src/nccl/src/graph/tuning.cc:496,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:497,1
    - Dst: DIVUP
      Src: /src/nccl/src/graph/tuning.cc:512,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:513,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:517,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:517,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:519,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:520,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:523,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:523,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:526,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:527,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:532,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:532,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:535,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:537,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:542,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:542,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:545,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/tuning.cc:561,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:563,1
    - Dst: sscanf
      Src: /src/nccl/src/graph/tuning.cc:565,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:573,1
    CyclomaticComplexity: 169
    EdgeCount: 169
    ICount: 272
    argCount: 4
    argNames:
    - comm
    - minCompCap
    - maxCompCap
    - graphs
    argTypes:
    - struct ncclComm*
    - int
    - int
    - struct ncclTopoGraph**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 583
    functionName: ncclTopoTuneModel
    functionSourceFile: /src/nccl/src/graph/tuning.cc
    functionUses: 1
    functionsReached:
    - DEFINE_Apply_LoadMultimem_minmax
    - ncclGetEnv
    - ncclParamNthreads
    - INFO
    - sscanf
    - std::max
    - parseList
    - min
    - ncclParamLl128Nthreads
    - getNthreads
    - ncclTopoGetNvsCount
    - ncclPatEnable
    - log2i
    - DIVUP
    - getNetOverhead
    - snprintf
    - ncclParamLl128C2c
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoTuneModel(struct ncclComm* comm, int minCompCap,
      int maxCompCap, struct ncclTopoGraph** graphs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log2i
      Src: /src/nccl/src/graph/tuning.cc:600,1
    - Dst: DIVUP
      Src: /src/nccl/src/graph/tuning.cc:608,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 14
    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: 611
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 611
    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:31,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: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    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:39,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:39,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:48,1
    - Dst: getPath
      Src: /src/nccl/src/graph/paths.cc:48,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:58,1
    - Dst: getPath
      Src: /src/nccl/src/graph/paths.cc:58,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:63,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:63,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:67,1
    - Dst: getPath
      Src: /src/nccl/src/graph/paths.cc:67,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:68,1
    - Dst: ncclParamNvbDisable
      Src: /src/nccl/src/graph/paths.cc:78,1
    - Dst: WARN
      Src: /src/nccl/src/graph/paths.cc:89,1
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:108,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/paths.cc:117,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 58
    argCount: 2
    argNames:
    - baseNode
    - system
    argTypes:
    - struct ncclTopoNode*
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 120
    functionName: ncclTopoSetPaths
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - getPath
    - std::max
    - memcpy
    - min
    - ncclParamNvbDisable
    - WARN
    - 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:126,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:126,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/paths.cc:126,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/paths.cc:128,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:128,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/paths.cc:128,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:129,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/paths.cc:140,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:140,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/paths.cc:140,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:141,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:143,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/paths.cc:145,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:145,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/paths.cc:145,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:146,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - system
    - node
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 153
    functionName: printNodePaths
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - INFO
    - strlen
    - NCCL_TOPO_ID_SYSTEM_ID
    - snprintf
    - NCCL_TOPO_ID_LOCAL_ID
    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:157,1
    - Dst: printNodePaths
      Src: /src/nccl/src/graph/paths.cc:160,1
    - Dst: printNodePaths
      Src: /src/nccl/src/graph/paths.cc:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 166
    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:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - system
    - gpu
    - retCpu
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 186
    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:189,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - type0
    - type1
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    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:207,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:209,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: 211
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 211
    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:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 224
    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:231,1
    - Dst: strtol
      Src: /src/nccl/src/graph/paths.cc:233,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:235,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/paths.cc:239,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/paths.cc:242,1
    - Dst: strtol
      Src: /src/nccl/src/graph/paths.cc:252,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:257,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 3
    argNames:
    - level
    - disableEnv
    - levelEnv
    argTypes:
    - int*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 263
    functionName: ncclGetLevel
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - strcmp
    - INFO
    - 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:273,1
    - Dst: ncclGetLevel
      Src: /src/nccl/src/graph/paths.cc:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - level
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 277
    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: 29
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:298,1
    - Dst: ncclTopoCheckMNNVL
      Src: /src/nccl/src/graph/paths.cc:298,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:316,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:316,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:318,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:331,1
    - Dst: ncclTopoDevToRank
      Src: /src/nccl/src/graph/paths.cc:331,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:331,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:332,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:332,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:341,1
    - Dst: ncclTopoCpuType
      Src: /src/nccl/src/graph/paths.cc:341,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:346,1
    - Dst: ncclGetUserP2pLevel
      Src: /src/nccl/src/graph/paths.cc:346,1
    - Dst: ncclParamIgnoreDisabledP2p
      Src: /src/nccl/src/graph/paths.cc:354,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:362,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/graph/paths.cc:362,1
    - Dst: ncclParamIgnoreDisabledP2p
      Src: /src/nccl/src/graph/paths.cc:375,1
    - Dst: WARN
      Src: /src/nccl/src/graph/paths.cc:377,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:380,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 91
    argCount: 8
    argNames:
    - comm
    - system
    - rank1
    - rank2
    - p2p
    - read
    - intermediateRank
    - cudaP2p
    argTypes:
    - struct ncclComm*
    - struct ncclTopoSystem*
    - int
    - int
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 409
    functionName: ncclTopoCheckP2p
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 3
    functionsReached:
    - ncclTopoCheckMNNVL
    - INFO
    - ncclTopoCpuType
    - ncclTopoDevToRank
    - ncclGetUserP2pLevel
    - ncclParamIgnoreDisabledP2p
    - ncclNvmlEnsureInitialized
    - NCCL_TOPO_ID_SYSTEM_ID
    - WARN
    - ncclTopoRankToIndex
    - 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, int* cudaP2p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/graph/paths.cc:420,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/paths.cc:421,1
    - Dst: memcmp
      Src: /src/nccl/src/graph/paths.cc:424,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/paths.cc:426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - comm
    - info1
    - info2
    - ret
    argTypes:
    - struct ncclComm*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 432
    functionName: ncclTopoCheckMNNVL
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - TRACE
    - memcpy
    - memcmp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoCheckMNNVL(struct ncclComm* comm, struct ncclPeerInfo*
      info1, struct ncclPeerInfo* info2, int* ret)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:446,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/paths.cc:446,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:448,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:448,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/paths.cc:452,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:452,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/paths.cc:452,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:453,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/paths.cc:453,1
    - Dst: ncclParamNetGdrRead
      Src: /src/nccl/src/graph/paths.cc:461,1
    - Dst: ncclParamNetGdrC2c
      Src: /src/nccl/src/graph/paths.cc:481,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:482,1
    - Dst: ncclGetLevel
      Src: /src/nccl/src/graph/paths.cc:482,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:488,1
    - Dst: ncclTopoGetIntermediateRank
      Src: /src/nccl/src/graph/paths.cc:488,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:489,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:489,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/paths.cc:493,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:493,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:493,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:493,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/paths.cc:493,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/paths.cc:499,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:499,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:499,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/paths.cc:500,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:507,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/paths.cc:507,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/paths.cc:512,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:512,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:512,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/paths.cc:513,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 5
    argNames:
    - system
    - rank
    - netId
    - read
    - gdrMode
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int64_t
    - int
    - enum ncclTopoGdrMode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 516
    functionName: ncclTopoCheckGdr
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 4
    functionsReached:
    - NCCL_TOPO_ID_LOCAL_ID
    - ncclParamNetGdrRead
    - TRACE
    - ncclGetLevel
    - ncclTopoGetIntermediateRank
    - ncclParamNetGdrC2c
    - strlen
    - ncclGetLocalCpu
    - ncclTopoIdToIndex
    - NCCL_TOPO_ID_SYSTEM_ID
    - snprintf
    - ncclTopoRankToIndex
    - 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:524,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/graph/paths.cc:524,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:529,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/graph/paths.cc:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - system
    - rank
    - avail
    argTypes:
    - struct ncclTopoSystem*
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 518
    functionDepth: 4
    functionLinenumber: 518
    functionLinenumberEnd: 536
    functionName: ncclTopoIsGdrAvail
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - ncclTopoCheckGdr
    - NCCLCHECK
    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:545,1
    - Dst: struct ncclComm*::ncclNet::getProperties
      Src: /src/nccl/src/graph/paths.cc:545,1
    - Dst: ncclParamNetForceFlush
      Src: /src/nccl/src/graph/paths.cc:546,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:549,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:549,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:556,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/paths.cc:556,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:557,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/paths.cc:557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - comm
    - netId
    - netDev
    - rank
    - flush
    argTypes:
    - struct ncclComm*
    - int64_t
    - int
    - int
    - enum ncclTopoFlushType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 563
    functionName: ncclTopoNeedFlush
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 2
    functionsReached:
    - ncclParamNetForceFlush
    - ncclTopoIdToIndex
    - ncclGetLocalCpu
    - struct ncclComm*::ncclNet::getProperties
    - ncclTopoRankToIndex
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoNeedFlush(struct ncclComm* comm, int64_t netId,
      int netDev, int rank, enum ncclTopoFlushType* flush)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamNetDisableIntra
      Src: /src/nccl/src/graph/paths.cc:569,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:575,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:576,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: 597
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 597
    functionName: ncclTopoCheckNet
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 3
    functionsReached:
    - ncclTopoRankToIndex
    - ncclParamNetDisableIntra
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoCheckNet(struct ncclTopoSystem* system, int rank1,
      int rank2, int* net)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:602,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/paths.cc:602,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:603,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:603,1
    - Dst: WARN
      Src: /src/nccl/src/graph/paths.cc:622,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:625,1
    - Dst: ncclTopoDevToRank
      Src: /src/nccl/src/graph/paths.cc:625,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - system
    - rank
    - netId
    - intermediateRank
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 630
    functionName: ncclTopoGetIntermediateRank
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - ncclTopoDevToRank
    - ncclTopoIdToIndex
    - NCCL_TOPO_ID_SYSTEM_ID
    - WARN
    - 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:641,1
    - Dst: ncclParamPxnDisable
      Src: /src/nccl/src/graph/paths.cc:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 651
    functionName: ncclPxnDisable
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 2
    functionsReached:
    - ncclParamPxnDisable
    - INFO
    linkageType: ''
    returnType: int
    signature: int ncclPxnDisable(struct ncclComm* comm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:664,1
    - Dst: ncclTopoGetNetDev
      Src: /src/nccl/src/graph/paths.cc:664,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:667,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/graph/paths.cc:667,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:674,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/graph/paths.cc:674,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - comm
    - intermediateRanks
    - nranks
    argTypes:
    - struct ncclComm*
    - int**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 653
    functionDepth: 4
    functionLinenumber: 653
    functionLinenumberEnd: 681
    functionName: ncclTopoGetPxnRanks
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - ncclTopoGetNetDev
    - ncclTopoCheckGdr
    - ncclRealloc
    - NCCLCHECK
    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:689,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:693,1
    - Dst: ncclTopoSetPaths
      Src: /src/nccl/src/graph/paths.cc:693,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:698,1
    - Dst: ncclTopoSetPaths
      Src: /src/nccl/src/graph/paths.cc:698,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:703,1
    - Dst: ncclTopoSetPaths
      Src: /src/nccl/src/graph/paths.cc:703,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:708,1
    - Dst: ncclTopoSetPaths
      Src: /src/nccl/src/graph/paths.cc:708,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:713,1
    - Dst: ncclTopoSetPaths
      Src: /src/nccl/src/graph/paths.cc:713,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:718,1
    - Dst: ncclTopoSetPaths
      Src: /src/nccl/src/graph/paths.cc:718,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:725,1
    - Dst: ncclTopoCheckP2p
      Src: /src/nccl/src/graph/paths.cc:725,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:730,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/paths.cc:730,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:731,1
    - Dst: addInterStep
      Src: /src/nccl/src/graph/paths.cc:731,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:742,1
    - Dst: canConnect
      Src: /src/nccl/src/graph/paths.cc:742,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:745,1
    - Dst: canConnect
      Src: /src/nccl/src/graph/paths.cc:745,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:758,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/paths.cc:758,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:760,1
    - Dst: ncclTopoGetLocal
      Src: /src/nccl/src/graph/paths.cc:760,1
    - Dst: mergePathType
      Src: /src/nccl/src/graph/paths.cc:764,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:765,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:766,1
    - Dst: ncclPxnDisable
      Src: /src/nccl/src/graph/paths.cc:778,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:780,1
    - Dst: ncclTopoGetLocalGpu
      Src: /src/nccl/src/graph/paths.cc:780,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:785,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/graph/paths.cc:785,1
    - Dst: ncclParamPxnC2c
      Src: /src/nccl/src/graph/paths.cc:787,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:793,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:793,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:799,1
    - Dst: addInterStep
      Src: /src/nccl/src/graph/paths.cc:799,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:805,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/graph/paths.cc:805,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:809,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/paths.cc:809,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:810,1
    - Dst: addInterStep
      Src: /src/nccl/src/graph/paths.cc:810,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:811,1
    - Dst: addInterStep
      Src: /src/nccl/src/graph/paths.cc:811,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:820,1
    - Dst: ncclTopoGetLocalGpu
      Src: /src/nccl/src/graph/paths.cc:820,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 78
    argCount: 2
    argNames:
    - system
    - comm
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 685
    functionDepth: 5
    functionLinenumber: 685
    functionLinenumberEnd: 823
    functionName: ncclTopoComputePaths
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - canConnect
    - ncclPxnDisable
    - ncclTopoCheckGdr
    - ncclTopoGetLocalGpu
    - ncclTopoRemovePaths
    - ncclTopoGetLocal
    - min
    - ncclTopoSetPaths
    - ncclTopoCheckP2p
    - addInterStep
    - ncclParamPxnC2c
    - NCCL_TOPO_ID_SYSTEM_ID
    - ncclGetLocalCpu
    - mergePathType
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoComputePaths(struct ncclTopoSystem* system, struct
      ncclComm* comm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:831,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:831,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/paths.cc:832,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:832,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:839,1
    - Dst: WARN
      Src: /src/nccl/src/graph/paths.cc:854,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/paths.cc:858,1
    - Dst: ncclTopoRemoveNode
      Src: /src/nccl/src/graph/paths.cc:858,1
    - Dst: free
      Src: /src/nccl/src/graph/paths.cc:863,1
    - Dst: free
      Src: /src/nccl/src/graph/paths.cc:864,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - system
    - comm
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 868
    functionName: ncclTopoTrimSystem
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - ncclCalloc
    - min
    - free
    - NCCLCHECKGOTO
    - WARN
    - ncclTopoRemoveNode
    - 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:871,1
    - Dst: free
      Src: /src/nccl/src/graph/paths.cc:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: ncclTopoFree
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - ncclTopoRemovePaths
    - free
    linkageType: ''
    returnType: void
    signature: void ncclTopoFree(struct ncclTopoSystem* system)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:881,1
    - Dst: ncclTopoNVLinkBw
      Src: /src/nccl/src/graph/paths.cc:890,1
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:891,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:901,1
    - Dst: getLocalNetCountByBw
      Src: /src/nccl/src/graph/paths.cc:901,1
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:904,1
    - Dst: divUp
      Src: /src/nccl/src/graph/paths.cc:904,1
    - Dst: ncclParamP2pPerChannelNetBw
      Src: /src/nccl/src/graph/paths.cc:904,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - comm
    - g
    - peerRank
    - nChannels
    argTypes:
    - struct ncclComm*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 909
    functionName: ncclTopoGetNchannels
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - std::max
    - ncclTopoNVLinkBw
    - ncclParamP2pPerChannelNetBw
    - divUp
    - getLocalNetCountByBw
    - ncclTopoRankToIndex
    - 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: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:923,1
    - Dst: ncclTopoGetNchannels
      Src: /src/nccl/src/graph/paths.cc:923,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:924,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 915
    functionDepth: 3
    functionLinenumber: 915
    functionLinenumberEnd: 929
    functionName: ncclTopoComputeP2pChannelsPerPeer
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - min
    - ncclTopoGetNchannels
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoComputeP2pChannelsPerPeer(struct ncclComm* comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:934,1
    - Dst: ncclParamMaxP2pNChannels
      Src: /src/nccl/src/graph/paths.cc:934,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:935,1
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:935,1
    - Dst: ncclParamMinP2pNChannels
      Src: /src/nccl/src/graph/paths.cc:935,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:937,1
    - Dst: ncclParamMaxP2pNChannels
      Src: /src/nccl/src/graph/paths.cc:937,1
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:938,1
    - Dst: ncclParamMinP2pNChannels
      Src: /src/nccl/src/graph/paths.cc:938,1
    - Dst: pow2Up
      Src: /src/nccl/src/graph/paths.cc:942,1
    - Dst: pow2Up
      Src: /src/nccl/src/graph/paths.cc:943,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:944,1
    - Dst: pow2Down
      Src: /src/nccl/src/graph/paths.cc:944,1
    - Dst: ncclDevMaxChannelsForArgsBytes
      Src: /src/nccl/src/graph/paths.cc:944,1
    - Dst: ncclParamWorkArgsBytes
      Src: /src/nccl/src/graph/paths.cc:944,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:949,1
    - Dst: divUp
      Src: /src/nccl/src/graph/paths.cc:950,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:952,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:956,1
    - Dst: initChannel
      Src: /src/nccl/src/graph/paths.cc:956,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 959
    functionName: ncclTopoComputeP2pChannels
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - pow2Up
    - INFO
    - ncclParamMaxP2pNChannels
    - std::max
    - NCCLCHECK
    - ncclDevMaxChannelsForArgsBytes
    - divUp
    - min
    - pow2Down
    - initChannel
    - ncclParamMinP2pNChannels
    - ncclParamWorkArgsBytes
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoComputeP2pChannels(struct ncclComm* comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:963,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:963,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: 976
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 976
    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:985,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - system
    - type
    - min
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 990
    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:999,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - system
    - type
    - max
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 1004
    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:1010,1
    - Dst: ncclTopoGetGpuMaxPath
      Src: /src/nccl/src/graph/paths.cc:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - system
    - allNvLink
    argTypes:
    - struct ncclTopoSystem*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1013
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:1018,1
    - Dst: ncclTopoGetGpuMaxPath
      Src: /src/nccl/src/graph/paths.cc:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - system
    - directNvlink
    argTypes:
    - struct ncclTopoSystem*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1021
    functionName: ncclTopoPathAllDirectNVLink
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - ncclTopoGetGpuMaxPath
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPathAllDirectNVLink(struct ncclTopoSystem* system,
      bool* directNvlink)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/paths.cc:1030,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:1030,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/paths.cc:1042,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:1042,1
    - Dst: free
      Src: /src/nccl/src/graph/paths.cc:1053,1
    - Dst: free
      Src: /src/nccl/src/graph/paths.cc:1054,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - system
    - splitNvLink
    argTypes:
    - struct ncclTopoSystem*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1056
    functionName: ncclTopoSplitNvLink
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - free
    - ncclCalloc
    - NCCLCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSplitNvLink(struct ncclTopoSystem* system, int*
      splitNvLink)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:51,1
    - Dst: findLocalCpu
      Src: /src/nccl/src/graph/topo.cc:51,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: 56
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 56
    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: 85
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 85
    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: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - system
    - node
    - type
    - id
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoNode**
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 132
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:137,1
    - Dst: memmove
      Src: /src/nccl/src/graph/topo.cc:143,1
    - Dst: memmove
      Src: /src/nccl/src/graph/topo.cc:162,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - system
    - type
    - index
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 165
    functionName: ncclTopoRemoveNode
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - free
    - memmove
    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:174,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:184,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:187,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:190,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: 192
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 192
    functionName: ncclTopoConnectNodes
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - WARN
    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: 202
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 202
    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:207,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:212,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:212,1
    - Dst: getBcmGen
      Src: /src/nccl/src/graph/topo.cc:217,1
    - Dst: memmove
      Src: /src/nccl/src/graph/topo.cc:221,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:230,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/topo.cc:230,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:238,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:242,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:252,1
    - Dst: ncclTopoRemoveNode
      Src: /src/nccl/src/graph/topo.cc:252,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:256,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:261,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 266
    functionName: ncclTopoFlattenBcmSwitches
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - memmove
    - getBcmGen
    - memcpy
    - free
    - NCCLCHECKGOTO
    - ncclTopoIdToIndex
    - WARN
    - ncclTopoRemoveNode
    - 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:274,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:274,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:276,1
    - Dst: ncclTopoGetInterCpuBw
      Src: /src/nccl/src/graph/topo.cc:276,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:277,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 281
    functionName: ncclTopoConnectCpus
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - NCCL_TOPO_ID_SYSTEM_ID
    - ncclTopoConnectNodes
    - ncclTopoGetInterCpuBw
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoConnectCpus(struct ncclTopoSystem* system)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - 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: sprintf
      Src: /src/nccl/src/graph/topo.cc:287,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:287,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:287,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:289,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:289,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:289,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:291,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:291,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:291,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:295,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:301,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:301,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:301,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:302,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:304,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:305,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:307,1
    - Dst: ncclTopoPrintRec
      Src: /src/nccl/src/graph/topo.cc:307,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:310,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:310,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:310,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:312,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:312,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:312,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:314,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - node
    - prevNode
    - line
    - offset
    argTypes:
    - struct ncclTopoNode*
    - struct ncclTopoNode*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 319
    functionName: ncclTopoPrintRec
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - INFO
    - sprintf
    - ncclTopoPrintRec
    - strlen
    - NCCL_TOPO_ID_SYSTEM_ID
    - 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:322,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:324,1
    - Dst: ncclTopoPrintRec
      Src: /src/nccl/src/graph/topo.cc:324,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:325,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:326,1
    - Dst: ncclTopoPrintPaths
      Src: /src/nccl/src/graph/topo.cc:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: ncclTopoPrint
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - ncclTopoPrintRec
    - INFO
    - 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:336,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:338,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:341,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:347,1
    - Dst: ncclTopoSort
      Src: /src/nccl/src/graph/topo.cc:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - node
    - upNode
    argTypes:
    - struct ncclTopoNode*
    - struct ncclTopoNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 350
    functionName: ncclTopoSort
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - memcpy
    - ncclTopoSort
    - 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:358,1
    - Dst: ncclTopoSort
      Src: /src/nccl/src/graph/topo.cc:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 360
    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:374,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/topo.cc:374,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:375,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/topo.cc:375,1
    - Dst: min
      Src: /src/nccl/src/graph/topo.cc:379,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - system
    - rank
    - bw
    argTypes:
    - struct ncclTopoSystem*
    - int
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 384
    functionName: ncclTopoGetMinNetBw
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - ncclTopoIdToIndex
    - ncclTopoGetLocalNet
    - min
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetMinNetBw(struct ncclTopoSystem* system, int
      rank, float* bw)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:388,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:388,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:390,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:392,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:392,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:396,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:396,1
    - Dst: strtoull
      Src: /src/nccl/src/graph/topo.cc:397,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/graph/topo.cc:401,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:401,1
    - Dst: NOWARN
      Src: /src/nccl/src/graph/topo.cc:405,1
    - Dst: xmlGetAttrFloat
      Src: /src/nccl/src/graph/topo.cc:405,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/graph/topo.cc:407,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:407,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/graph/topo.cc:408,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:408,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/graph/topo.cc:409,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:409,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/graph/topo.cc:410,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:410,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:416,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:417,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:417,1
    - Dst: eatHash
      Src: /src/nccl/src/graph/topo.cc:419,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:419,1
    - Dst: eatHash
      Src: /src/nccl/src/graph/topo.cc:420,1
    - Dst: digestHash
      Src: /src/nccl/src/graph/topo.cc:421,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:423,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:423,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:424,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:424,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - xmlNet
    - system
    - nic
    - systemId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 426
    functionName: ncclTopoAddNet
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - eatHash
    - xmlGetAttr
    - NOWARN
    - xmlGetAttrIntDefault
    - xmlGetAttrInt
    - strlen
    - digestHash
    - NCCL_TOPO_ID
    - ncclTopoConnectNodes
    - strtoull
    - xmlGetAttrFloat
    - strcmp
    - ncclTopoCreateNode
    - NCCLCHECKNOWARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddNet(struct ncclXmlNode* xmlNet, struct ncclTopoSystem*
      system, struct ncclTopoNode* nic, int systemId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:430,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:430,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:432,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:434,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:434,1
    - Dst: NCCLCHECKNOWARN
      Src: /src/nccl/src/graph/topo.cc:438,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:438,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:442,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:442,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:443,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - xmlNet
    - system
    - nic
    - systemId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 445
    functionName: ncclTopoAddGin
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - xmlGetAttrIntDefault
    - xmlGetAttrInt
    - ncclTopoConnectNodes
    - NCCL_TOPO_ID
    - ncclTopoCreateNode
    - NCCLCHECKNOWARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddGin(struct ncclXmlNode* xmlNet, struct ncclTopoSystem*
      system, struct ncclTopoNode* nic, int systemId)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:451,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:453,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/topo.cc:453,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:459,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:459,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:460,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:460,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:461,1
    - Dst: ncclTopoAddNet
      Src: /src/nccl/src/graph/topo.cc:461,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:462,1
    - Dst: ncclTopoAddGin
      Src: /src/nccl/src/graph/topo.cc:462,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - xmlNic
    - system
    - nic
    - systemId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 465
    functionName: ncclTopoAddNic
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - xmlGetAttrIntDefault
    - ncclTopoAddGin
    - ncclTopoAddNet
    - strcmp
    - xmlGetAttrIndex
    - 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:468,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:468,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: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:470,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:471,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:471,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: 474
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 474
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:479,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:479,1
    - Dst: strtol
      Src: /src/nccl/src/graph/topo.cc:480,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:481,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:481,1
    - Dst: strtol
      Src: /src/nccl/src/graph/topo.cc:482,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:483,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:483,1
    - Dst: strtol
      Src: /src/nccl/src/graph/topo.cc:484,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:485,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:485,1
    - Dst: strtol
      Src: /src/nccl/src/graph/topo.cc:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - xmlPci
    - device
    argTypes:
    - struct ncclXmlNode*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 489
    functionName: ncclTopoGetIntDevice
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - xmlGetAttr
    - strtol
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetIntDevice(struct ncclXmlNode* xmlPci, uint64_t*
      device)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:502,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:502,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:503,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:503,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:506,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:506,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:507,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:507,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:514,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:517,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/topo.cc:517,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:524,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:524,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:524,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:527,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:527,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:527,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:528,1
    - Dst: ncclTopoGetIntDevice
      Src: /src/nccl/src/graph/topo.cc:528,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:529,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:529,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:530,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:530,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:531,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:531,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:535,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:535,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:535,1
    - Dst: NCCL_TOPO_GPU_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:535,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:536,1
    - Dst: ncclTopoAddGpu
      Src: /src/nccl/src/graph/topo.cc:536,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:538,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:538,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:539,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:539,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:545,1
    - Dst: xmlGetSub
      Src: /src/nccl/src/graph/topo.cc:545,1
    - Dst: NCCL_TOPO_LOCAL_NIC_ID
      Src: /src/nccl/src/graph/topo.cc:550,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:551,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:552,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:552,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:554,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:554,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:557,1
    - Dst: ncclTopoAddNic
      Src: /src/nccl/src/graph/topo.cc:557,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:559,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:559,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:559,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:560,1
    - Dst: ncclTopoGetIntDevice
      Src: /src/nccl/src/graph/topo.cc:560,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:564,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:565,1
    - Dst: ncclTopoAddPci
      Src: /src/nccl/src/graph/topo.cc:565,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:572,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:572,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:573,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:573,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:577,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:577,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:579,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:579,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:580,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:580,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 5
    argNames:
    - xmlPci
    - system
    - parent
    - systemId
    - numaId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 583
    functionName: ncclTopoAddPci
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - ncclTopoAddGpu
    - xmlGetAttrInt
    - ncclTopoAddNic
    - NCCL_TOPO_LOCAL_NIC_ID
    - kvConvertToInt
    - ncclTopoGetNode
    - xmlGetSub
    - ncclTopoConnectNodes
    - NCCL_TOPO_ID
    - ncclTopoAddPci
    - NCCL_TOPO_GPU_LOCAL_ID
    - strcmp
    - xmlGetAttrStr
    - ncclTopoCreateNode
    - xmlGetAttrIndex
    - ncclTopoGetIntDevice
    - busIdToInt64
    - 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:590,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:590,1
    - Dst: strtoull
      Src: /src/nccl/src/graph/topo.cc:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - system
    - xmlCpu
    - systemIdPtr
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclXmlNode*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 597
    functionName: ncclGetSystemId
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - xmlGetAttr
    - strtoull
    - 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:602,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:602,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:604,1
    - Dst: ncclGetSystemId
      Src: /src/nccl/src/graph/topo.cc:604,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:606,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:606,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:606,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:608,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:608,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:610,1
    - Dst: ncclStrToCpuset
      Src: /src/nccl/src/graph/topo.cc:610,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:613,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:613,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:614,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:614,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:616,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:616,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:617,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:617,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:620,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:620,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:621,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:621,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:629,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:629,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:630,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:630,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:636,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:636,1
    - Dst: ncclTopoAddPci
      Src: /src/nccl/src/graph/topo.cc:636,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:637,1
    - Dst: NCCL_TOPO_LOCAL_NIC_ID
      Src: /src/nccl/src/graph/topo.cc:639,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:640,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:641,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:641,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:643,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:643,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:644,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:644,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:645,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:645,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:647,1
    - Dst: ncclTopoAddNic
      Src: /src/nccl/src/graph/topo.cc:647,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - xmlCpu
    - system
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 600
    functionDepth: 5
    functionLinenumber: 600
    functionLinenumberEnd: 651
    functionName: ncclTopoAddCpu
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - xmlGetAttr
    - xmlGetAttrInt
    - NCCL_TOPO_LOCAL_NIC_ID
    - kvConvertToInt
    - ncclTopoGetNode
    - ncclTopoConnectNodes
    - NCCL_TOPO_ID
    - ncclTopoAddPci
    - ncclGetSystemId
    - strcmp
    - xmlGetAttrStr
    - ncclTopoCreateNode
    - ncclStrToCpuset
    - ncclTopoAddNic
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddCpu(struct ncclXmlNode* xmlCpu, struct ncclTopoSystem*
      system)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:658,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - xmlGpu
    argTypes:
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 661
    functionName: ncclTopoXmlIsPrimaryGpuForDev
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool ncclTopoXmlIsPrimaryGpuForDev(const struct ncclXmlNode* xmlGpu)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:664,1
    - Dst: ncclTopoXmlIsPrimaryGpuForDev
      Src: /src/nccl/src/graph/topo.cc:665,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:668,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:668,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:669,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:670,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:670,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:672,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:676,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:676,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:678,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:678,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:680,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:680,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:685,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:685,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:687,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:687,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:688,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:688,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:688,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:691,1
    - Dst: findLocalCpu
      Src: /src/nccl/src/graph/topo.cc:691,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:694,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:694,1
    - Dst: ncclTopoNVLinkBw
      Src: /src/nccl/src/graph/topo.cc:700,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:701,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:701,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:703,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:703,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:707,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:708,1
    - Dst: ncclGetSystemId
      Src: /src/nccl/src/graph/topo.cc:708,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:711,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:711,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:713,1
    - Dst: ncclTopoAddNvLinks
      Src: /src/nccl/src/graph/topo.cc:713,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 4
    argNames:
    - node
    - system
    - parentBusId
    - systemId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 717
    functionName: ncclTopoAddNvLinks
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - xmlGetAttr
    - xmlGetAttrInt
    - findLocalCpu
    - ncclTopoNVLinkBw
    - kvConvertToInt
    - ncclTopoGetNode
    - ncclTopoConnectNodes
    - NCCL_TOPO_ID
    - ncclTopoAddNvLinks
    - ncclGetSystemId
    - strcmp
    - xmlGetAttrStr
    - ncclTopoCreateNode
    - busIdToInt64
    - WARN
    - ncclTopoXmlIsPrimaryGpuForDev
    - 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:720,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:723,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:723,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:724,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:725,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:725,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:727,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:732,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:732,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:734,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:734,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:735,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:735,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:735,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:736,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:736,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:738,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:739,1
    - Dst: ncclGetSystemId
      Src: /src/nccl/src/graph/topo.cc:739,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:742,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:742,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:744,1
    - Dst: ncclTopoAddPciLinks
      Src: /src/nccl/src/graph/topo.cc:744,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: 748
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 748
    functionName: ncclTopoAddPciLinks
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - ncclTopoAddPciLinks
    - ncclTopoGetNode
    - ncclTopoConnectNodes
    - NCCL_TOPO_ID
    - ncclGetSystemId
    - strcmp
    - xmlGetAttrStr
    - xmlGetAttr
    - busIdToInt64
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddPciLinks(struct ncclXmlNode* node, struct ncclTopoSystem*
      system, const char* parentBusId, int systemId)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:752,1
    - Dst: ncclTopoXmlIsPrimaryGpuForDev
      Src: /src/nccl/src/graph/topo.cc:753,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:756,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:756,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:757,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:758,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:758,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:760,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:764,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:764,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:766,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:766,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:769,1
    - Dst: findLocalCpu
      Src: /src/nccl/src/graph/topo.cc:769,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:771,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:771,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:772,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:772,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:774,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:775,1
    - Dst: ncclGetSystemId
      Src: /src/nccl/src/graph/topo.cc:775,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:778,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:778,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:780,1
    - Dst: ncclTopoAddC2c
      Src: /src/nccl/src/graph/topo.cc:780,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - node
    - system
    - parentBusId
    - systemId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 784
    functionName: ncclTopoAddC2c
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - xmlGetAttrInt
    - findLocalCpu
    - ncclTopoGetNode
    - ncclTopoConnectNodes
    - NCCL_TOPO_ID
    - ncclTopoAddC2c
    - ncclGetSystemId
    - strcmp
    - xmlGetAttr
    - busIdToInt64
    - WARN
    - ncclTopoXmlIsPrimaryGpuForDev
    - 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:787,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:787,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:790,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/topo.cc:790,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:793,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:793,1
    - Dst: ncclTopoAddCpu
      Src: /src/nccl/src/graph/topo.cc:793,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:800,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:804,1
    - Dst: ncclTopoAddNvLinks
      Src: /src/nccl/src/graph/topo.cc:804,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:805,1
    - Dst: ncclTopoAddC2c
      Src: /src/nccl/src/graph/topo.cc:805,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:806,1
    - Dst: ncclTopoAddPciLinks
      Src: /src/nccl/src/graph/topo.cc:806,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:808,1
    - Dst: ncclTopoFlattenBcmSwitches
      Src: /src/nccl/src/graph/topo.cc:808,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:809,1
    - Dst: ncclTopoConnectCpus
      Src: /src/nccl/src/graph/topo.cc:809,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:810,1
    - Dst: ncclTopoSortSystem
      Src: /src/nccl/src/graph/topo.cc:810,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: 813
      start: 786
    functionDepth: 6
    functionLinenumber: 786
    functionLinenumberEnd: 813
    functionName: ncclTopoGetSystemFromXml
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - ncclTopoFlattenBcmSwitches
    - ncclTopoAddPciLinks
    - ncclTopoAddCpu
    - ncclTopoConnectCpus
    - ncclTopoAddC2c
    - strcmp
    - ncclTopoSortSystem
    - xmlFindTag
    - WARN
    - ncclTopoAddNvLinks
    - 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:820,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/topo.cc:820,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/topo.cc:823,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 828
    functionName: xmlInitAttrInt
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - xmlGetAttrIndex
    - snprintf
    - strncpy
    - NCCLCHECK
    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:831,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/topo.cc:831,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/topo.cc:834,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 839
    functionName: xmlInitAttrUint64
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - xmlGetAttrIndex
    - snprintf
    - strncpy
    - NCCLCHECK
    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:842,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/topo.cc:842,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/topo.cc:845,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 850
    functionName: xmlInitAttrFloat
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - xmlGetAttrIndex
    - snprintf
    - strncpy
    - NCCLCHECK
    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:854,1
    - Dst: fread
      Src: /src/nccl/src/graph/topo.cc:857,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:859,1
    - Dst: fclose
      Src: /src/nccl/src/graph/topo.cc:860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 863
    functionName: ncclTopoRefreshBcmP2pLinks
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - INFO
    - fread
    - fopen
    - fclose
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoRefreshBcmP2pLinks(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:869,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:869,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:871,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:876,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:879,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:883,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:884,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - common
    - nodes
    - nNodes
    argTypes:
    - ncclXmlNode*
    - ncclXmlNode**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 892
    functionName: ncclTopoCheckPix
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - strcmp
    - xmlGetAttrStr
    - NCCLCHECK
    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:900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 905
    functionName: top
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 5
    functionsReached:
    - empty
    linkageType: ''
    returnType: ncclXmlNode
    signature: ncclXmlNode * top()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: top
      Src: /src/nccl/src/graph/topo.cc:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 913
    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: 919
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 919
    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: 923
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 923
    functionName: empty
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:929,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - parent
    argTypes:
    - ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 936
    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:942,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:942,1
    - Dst: push
      Src: /src/nccl/src/graph/topo.cc:956,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:957,1
    - Dst: empty
      Src: /src/nccl/src/graph/topo.cc:964,1
    - Dst: top
      Src: /src/nccl/src/graph/topo.cc:965,1
    - Dst: empty
      Src: /src/nccl/src/graph/topo.cc:967,1
    - Dst: top
      Src: /src/nccl/src/graph/topo.cc:968,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:977,1
    - Dst: pop
      Src: /src/nccl/src/graph/topo.cc:979,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:987,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:987,1
    - Dst: empty
      Src: /src/nccl/src/graph/topo.cc:990,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:992,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:992,1
    - Dst: top
      Src: /src/nccl/src/graph/topo.cc:992,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:994,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:994,1
    - Dst: strncmp
      Src: /src/nccl/src/graph/topo.cc:998,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:998,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1021,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1023,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1025,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1027,1
    - Dst: ncclTopoCheckPix
      Src: /src/nccl/src/graph/topo.cc:1029,1
    - Dst: ncclFindFirstPciParent
      Src: /src/nccl/src/graph/topo.cc:1036,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1038,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 4
    argNames:
    - nodes
    - nNodes
    - path
    - parent
    argTypes:
    - ncclXmlNode**
    - int
    - int*
    - ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 1040
    functionName: ncclTopoGetPath
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclCalloc
    - push
    - top
    - pop
    - strncmp
    - ncclFindFirstPciParent
    - empty
    - strlen
    - free
    - strcmp
    - xmlGetAttr
    - ncclTopoCheckPix
    - 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:1045,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:1045,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1049,1
    - Dst: int64ToBusId
      Src: /src/nccl/src/graph/topo.cc:1050,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1052,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/topo.cc:1052,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1054,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/topo.cc:1054,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1055,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/topo.cc:1055,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1056,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1059,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1063,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: 1065
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1065
    functionName: ncclTopoMakeUniqueBusId
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - xmlSetAttr
    - int64ToBusId
    - xmlFindTagKv
    - xmlAddNode
    - busIdToInt64
    - WARN
    - 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:1073,1
    - Dst: memset
      Src: /src/nccl/src/graph/topo.cc:1075,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1078,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:1078,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:1079,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1080,1
    - Dst: ncclTopoMakeUniqueBusId
      Src: /src/nccl/src/graph/topo.cc:1080,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1082,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/topo.cc:1082,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1084,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/topo.cc:1084,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1092,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:1092,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1093,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: 1098
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1098
    functionName: ncclTopoMakePciParent
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - xmlSetAttr
    - memset
    - strcmp
    - xmlGetAttrStr
    - xmlGetAttr
    - ncclTopoMakeUniqueBusId
    - snprintf
    - WARN
    - NCCLCHECK
    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:1102,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1108,1
    - Dst: NOWARN
      Src: /src/nccl/src/graph/topo.cc:1115,1
    - Dst: struct ncclTopoNetInfo*::makeVDevice
      Src: /src/nccl/src/graph/topo.cc:1115,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1117,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1126,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1126,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - xml
    - netInfo
    - vProps
    - physNetNodes
    argTypes:
    - struct ncclXml*
    - struct ncclTopoNetInfo*
    - ncclNetVDeviceProps_t*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1131
    functionName: ncclTopoMakeVnic
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - NOWARN
    - INFO
    - xmlSetAttrInt
    - struct ncclTopoNetInfo*::makeVDevice
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoMakeVnic(struct ncclXml* xml, struct ncclTopoNetInfo*
      netInfo, ncclNetVDeviceProps_t* vProps, struct ncclXmlNode** physNetNodes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1136,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1138,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1138,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1138,1
    - Dst: strcpy
      Src: /src/nccl/src/graph/topo.cc:1139,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/topo.cc:1141,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1143,1
    - Dst: parseStringList
      Src: /src/nccl/src/graph/topo.cc:1145,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1147,1
    - Dst: matchIfList
      Src: /src/nccl/src/graph/topo.cc:1154,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1160,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1167,1
    - Dst: ncclTopoMakeVnic
      Src: /src/nccl/src/graph/topo.cc:1172,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1179,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/topo.cc:1184,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1188,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 6
    argNames:
    - xml
    - netInfo
    - placedDevs
    - propsList
    - physNetNodes
    - nPhysDevs
    argTypes:
    - struct ncclXml*
    - struct ncclTopoNetInfo*
    - int*
    - ncclNetProperties_t*
    - struct ncclXmlNode**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1133
    functionDepth: 2
    functionLinenumber: 1133
    functionLinenumberEnd: 1192
    functionName: ncclTopoForceMerge
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - matchIfList
    - TRACE
    - ncclCalloc
    - INFO
    - strlen
    - free
    - strcpy
    - strtok_r
    - ncclTopoMakeVnic
    - WARN
    - parseStringList
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoForceMerge(struct ncclXml* xml, struct ncclTopoNetInfo*
      netInfo, int* placedDevs, ncclNetProperties_t* propsList, struct ncclXmlNode**
      physNetNodes, int nPhysDevs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1198,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1199,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1206,1
    - Dst: ncclTopoGetPath
      Src: /src/nccl/src/graph/topo.cc:1206,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1219,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1228,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1234,1
    - Dst: ncclTopoMakeVnic
      Src: /src/nccl/src/graph/topo.cc:1238,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1244,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1246,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1252,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1260,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 6
    argNames:
    - xml
    - netInfo
    - placedDevs
    - propsList
    - physNetNodes
    - nPhysDevs
    argTypes:
    - struct ncclXml*
    - struct ncclTopoNetInfo*
    - int*
    - ncclNetProperties_t*
    - struct ncclXmlNode**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1194
    functionDepth: 4
    functionLinenumber: 1194
    functionLinenumberEnd: 1262
    functionName: ncclTopoAutoMerge
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclCalloc
    - INFO
    - ncclTopoGetPath
    - free
    - NCCLCHECKGOTO
    - ncclTopoMakeVnic
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAutoMerge(struct ncclXml* xml, struct ncclTopoNetInfo*
      netInfo, int* placedDevs, ncclNetProperties_t* propsList, struct ncclXmlNode**
      physNetNodes, int nPhysDevs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1279,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1280,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1280,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1283,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:1283,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1284,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:1284,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1285,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1299,1
    - Dst: ncclTopoFindLinkWidthRec
      Src: /src/nccl/src/graph/topo.cc:1299,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1309,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1313,1
    - Dst: min
      Src: /src/nccl/src/graph/topo.cc:1316,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - node
    - physNetNodes
    - ndevs
    - foundPhysNet
    - linkWidth
    argTypes:
    - ncclXmlNode*
    - ncclXmlNode**
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1321
    functionName: ncclTopoFindLinkWidthRec
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - TRACE
    - INFO
    - ncclTopoFindLinkWidthRec
    - xmlGetAttrInt
    - min
    - strcmp
    - xmlGetAttrStr
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoFindLinkWidthRec(ncclXmlNode* node, ncclXmlNode**
      physNetNodes, int ndevs, int* foundPhysNet, int* linkWidth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1331,1
    - Dst: ncclTopoFindLinkWidthRec
      Src: /src/nccl/src/graph/topo.cc:1331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - parent
    - physNetNodes
    - ndevs
    - linkWidth
    argTypes:
    - ncclXmlNode*
    - ncclXmlNode**
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1325
    functionDepth: 2
    functionLinenumber: 1325
    functionLinenumberEnd: 1338
    functionName: ncclTopoFindLinkWidth
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclTopoFindLinkWidthRec
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoFindLinkWidth(ncclXmlNode* parent, ncclXmlNode**
      physNetNodes, int ndevs, int* linkWidth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1342,1
    - Dst: ncclTopoFindLinkWidth
      Src: /src/nccl/src/graph/topo.cc:1342,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1346,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1347,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1347,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1348,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1354,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1355,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1355,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - physNetNodes
    - ndevs
    - parent
    argTypes:
    - ncclXmlNode**
    - int
    - ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1340
    functionDepth: 3
    functionLinenumber: 1340
    functionLinenumberEnd: 1360
    functionName: ncclTopoWidenLinks
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclTopoFindLinkWidth
    - xmlSetAttrInt
    - strcmp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoWidenLinks(ncclXmlNode** physNetNodes, int ndevs,
      ncclXmlNode* parent)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1366,1
    - Dst: getProperties
      Src: /src/nccl/src/graph/topo.cc:1366,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1368,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/topo.cc:1368,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1370,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1374,1
    - Dst: ncclTopoGetPath
      Src: /src/nccl/src/graph/topo.cc:1374,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1376,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1377,1
    - Dst: ncclTopoWidenLinks
      Src: /src/nccl/src/graph/topo.cc:1377,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1381,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1384,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:1384,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1385,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1387,1
    - Dst: ncclTopoMakePciParent
      Src: /src/nccl/src/graph/topo.cc:1387,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1389,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1391,1
    - Dst: ncclTopoMakePciParent
      Src: /src/nccl/src/graph/topo.cc:1391,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1395,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - xml
    - vProps
    - parent
    argTypes:
    - struct ncclXml*
    - ncclNetVDeviceProps_t*
    - ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1362
    functionDepth: 4
    functionLinenumber: 1362
    functionLinenumberEnd: 1397
    functionName: ncclTopoGetVNicParent
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - INFO
    - ncclTopoGetPath
    - ncclTopoMakePciParent
    - xmlFindTagKv
    - strcmp
    - xmlGetAttrStr
    - getProperties
    - ncclTopoWidenLinks
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetVNicParent(struct ncclXml* xml, ncclResult_t
      (*getProperties)(int, ncclNetProperties_t*), ncclNetVDeviceProps_t* vProps,
      ncclXmlNode** parent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1406,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1406,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1407,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1407,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1408,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1408,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1410,1
    - Dst: struct ncclTopoNetInfo*::getProperties
      Src: /src/nccl/src/graph/topo.cc:1410,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1412,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/topo.cc:1412,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1414,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1417,1
    - Dst: ncclTopoForceMerge
      Src: /src/nccl/src/graph/topo.cc:1417,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1418,1
    - Dst: ncclTopoAutoMerge
      Src: /src/nccl/src/graph/topo.cc:1418,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1421,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1422,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - xml
    - netInfo
    - physicalDevs
    argTypes:
    - struct ncclXml*
    - struct ncclTopoNetInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1399
    functionDepth: 5
    functionLinenumber: 1399
    functionLinenumberEnd: 1425
    functionName: ncclTopoMakeVNics
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclCalloc
    - ncclTopoAutoMerge
    - ncclTopoForceMerge
    - struct ncclTopoNetInfo*::getProperties
    - free
    - xmlFindTagKv
    - NCCLCHECKGOTO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoMakeVNics(struct ncclXml* xml, struct ncclTopoNetInfo*
      netInfo, int physicalDevs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1430,1
    - Dst: struct ncclTopoNetInfo*::getProperties
      Src: /src/nccl/src/graph/topo.cc:1430,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1435,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/topo.cc:1435,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1438,1
    - Dst: ncclTopoGetVNicParent
      Src: /src/nccl/src/graph/topo.cc:1438,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1441,1
    - Dst: ncclTopoFillNet
      Src: /src/nccl/src/graph/topo.cc:1441,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1444,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:1444,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1446,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1446,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:1448,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1449,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1450,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1450,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1451,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1451,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1452,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1452,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1453,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1453,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1454,1
    - Dst: xmlInitAttrUint64
      Src: /src/nccl/src/graph/topo.cc:1454,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1455,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1455,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1457,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1458,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1458,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1463,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:1463,1
    - Dst: strtol
      Src: /src/nccl/src/graph/topo.cc:1464,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1465,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1465,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1467,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1467,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1468,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1468,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1471,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:1471,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1472,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:1472,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1473,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:1473,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1474,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:1474,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1475,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 5
    argNames:
    - xml
    - startIndex
    - endIndex
    - netInfo
    - virtualNics
    argTypes:
    - ncclXml*
    - int
    - int
    - struct ncclTopoNetInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1427
    functionDepth: 5
    functionLinenumber: 1427
    functionLinenumberEnd: 1479
    functionName: ncclTopoPopulateNics
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclTopoFillNet
    - xmlInitAttrInt
    - xmlInitAttrUint64
    - INFO
    - xmlGetAttrIntDefault
    - ncclTopoGetVNicParent
    - struct ncclTopoNetInfo*::getProperties
    - xmlSetAttrInt
    - xmlFindTagKv
    - xmlGetAttr
    - strtol
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPopulateNics(ncclXml* xml, int startIndex, int
      endIndex, struct ncclTopoNetInfo* netInfo, int virtualNics)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1485,1
    - Dst: struct ncclTopoNetInfo*::getDevCount
      Src: /src/nccl/src/graph/topo.cc:1485,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1487,1
    - Dst: ncclTopoPopulateNics
      Src: /src/nccl/src/graph/topo.cc:1487,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1491,1
    - Dst: ncclTopoMakeVNics
      Src: /src/nccl/src/graph/topo.cc:1491,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1495,1
    - Dst: struct ncclTopoNetInfo*::devices
      Src: /src/nccl/src/graph/topo.cc:1495,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1497,1
    - Dst: struct ncclTopoNetInfo*::setVirtDevCount
      Src: /src/nccl/src/graph/topo.cc:1497,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1501,1
    - Dst: ncclTopoPopulateNics
      Src: /src/nccl/src/graph/topo.cc:1501,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - xml
    - dumpXmlFile
    - net
    argTypes:
    - ncclXml*
    - char*
    - struct ncclTopoNetInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1482
    functionDepth: 6
    functionLinenumber: 1482
    functionLinenumberEnd: 1506
    functionName: ncclTopoProcessNet
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - struct ncclTopoNetInfo*::setVirtDevCount
    - struct ncclTopoNetInfo*::devices
    - struct ncclTopoNetInfo*::getDevCount
    - ncclTopoPopulateNics
    - ncclTopoMakeVNics
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoProcessNet(ncclXml* xml, const char* dumpXmlFile,
      struct ncclTopoNetInfo* net)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/topo.cc:1509,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/topo.cc:1510,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:1512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mergeLevel
    - forceMerge
    argTypes:
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1508
    functionDepth: 2
    functionLinenumber: 1508
    functionLinenumberEnd: 1517
    functionName: ncclTopoGetFusionEnv
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - kvConvertToInt
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetFusionEnv(int* mergeLevel, const char** forceMerge)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1529,1
    - Dst: xmlAlloc
      Src: /src/nccl/src/graph/topo.cc:1529,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/topo.cc:1530,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1532,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1533,1
    - Dst: ncclTopoGetXmlFromFile
      Src: /src/nccl/src/graph/topo.cc:1533,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1536,1
    - Dst: ncclTopoGetXmlFromFile
      Src: /src/nccl/src/graph/topo.cc:1536,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1542,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/topo.cc:1542,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1544,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/topo.cc:1544,1
    - Dst: getHostHash
      Src: /src/nccl/src/graph/topo.cc:1544,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1545,1
    - Dst: xmlFindNextTag
      Src: /src/nccl/src/graph/topo.cc:1545,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1550,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/topo.cc:1550,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1551,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1551,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1554,1
    - Dst: ncclTopoRefreshBcmP2pLinks
      Src: /src/nccl/src/graph/topo.cc:1554,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1558,1
    - Dst: int64ToBusId
      Src: /src/nccl/src/graph/topo.cc:1558,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1559,1
    - Dst: ncclTopoFillGpu
      Src: /src/nccl/src/graph/topo.cc:1559,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1561,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1561,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1562,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1562,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1563,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1563,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1570,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1583,1
    - Dst: ncclTopoProcessNet
      Src: /src/nccl/src/graph/topo.cc:1583,1
    - Dst: collNetSupport
      Src: /src/nccl/src/graph/topo.cc:1585,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1598,1
    - Dst: ncclTopoGetFusionEnv
      Src: /src/nccl/src/graph/topo.cc:1598,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1599,1
    - Dst: ncclTopoProcessNet
      Src: /src/nccl/src/graph/topo.cc:1599,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1614,1
    - Dst: ncclTopoGetFusionEnv
      Src: /src/nccl/src/graph/topo.cc:1614,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1615,1
    - Dst: ncclTopoProcessNet
      Src: /src/nccl/src/graph/topo.cc:1615,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1619,1
    - Dst: ncclTopoTrimXml
      Src: /src/nccl/src/graph/topo.cc:1619,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1629,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1629,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1638,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1638,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/topo.cc:1638,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/topo.cc:1639,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:1640,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/topo.cc:1640,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1641,1
    - Dst: ncclTopoConvertXml
      Src: /src/nccl/src/graph/topo.cc:1641,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1644,1
    - Dst: bootstrapIntraNodeAllGather
      Src: /src/nccl/src/graph/topo.cc:1644,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/topo.cc:1644,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1647,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1649,1
    - Dst: xmlAlloc
      Src: /src/nccl/src/graph/topo.cc:1649,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/topo.cc:1655,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1656,1
    - Dst: ncclTopoConvertXml
      Src: /src/nccl/src/graph/topo.cc:1656,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1657,1
    - Dst: ncclTopoFuseXml
      Src: /src/nccl/src/graph/topo.cc:1657,1
    - Dst: ncclParamTopoDumpFileRank
      Src: /src/nccl/src/graph/topo.cc:1660,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1661,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1662,1
    - Dst: ncclTopoDumpXmlToFile
      Src: /src/nccl/src/graph/topo.cc:1662,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1666,1
    - Dst: ncclTopoGetSystemFromXml
      Src: /src/nccl/src/graph/topo.cc:1666,1
    - Dst: getHostHash
      Src: /src/nccl/src/graph/topo.cc:1666,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1669,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1670,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1671,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 119
    argCount: 3
    argNames:
    - comm
    - system
    - dumpXmlFile
    argTypes:
    - struct ncclComm*
    - struct ncclTopoSystem**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1521
    functionDepth: 7
    functionLinenumber: 1521
    functionLinenumberEnd: 1675
    functionName: ncclTopoGetSystem
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - memcpy
    - ncclTopoTrimXml
    - ncclParamTopoDumpFileRank
    - NCCLCHECKGOTO
    - ncclTopoConvertXml
    - ncclGetEnv
    - xmlInitAttrInt
    - ncclCalloc
    - ncclTopoFuseXml
    - free
    - xmlFindTag
    - INFO
    - xmlFindNextTag
    - ncclTopoProcessNet
    - ncclTopoGetXmlFromFile
    - int64ToBusId
    - xmlSetAttrLong
    - ncclTopoFillGpu
    - xmlAddNode
    - NCCLCHECK
    - xmlMemSize
    - getHostHash
    - ncclTopoGetFusionEnv
    - ncclTopoDumpXmlToFile
    - ncclTopoGetSystemFromXml
    - xmlSetAttrInt
    - xmlAlloc
    - bootstrapIntraNodeAllGather
    - collNetSupport
    - ncclTopoRefreshBcmP2pLinks
    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:1693,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: 1703
      start: 1677
    functionDepth: 1
    functionLinenumber: 1677
    functionLinenumberEnd: 1703
    functionName: ncclTopoGetLocal
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1709,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/topo.cc:1709,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1719,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/topo.cc:1719,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1720,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/topo.cc:1720,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - system
    - gpu
    - count
    - bw
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1705
    functionDepth: 2
    functionLinenumber: 1705
    functionLinenumberEnd: 1731
    functionName: getLocalNetCountByBw
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - ncclTopoIdToIndex
    - ncclTopoGetLocalNet
    - ncclGetLocalCpu
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getLocalNetCountByBw(struct ncclTopoSystem* system, int
      gpu, int *count, float* bw)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/topo.cc:1736,1
    - Dst: strcasecmp
      Src: /src/nccl/src/graph/topo.cc:1738,1
    - Dst: strcasecmp
      Src: /src/nccl/src/graph/topo.cc:1740,1
    - Dst: strncasecmp
      Src: /src/nccl/src/graph/topo.cc:1742,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1742,1
    - Dst: atoi
      Src: /src/nccl/src/graph/topo.cc:1743,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1743,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1750,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1752,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1735
    functionDepth: 2
    functionLinenumber: 1735
    functionLinenumberEnd: 1755
    functionName: getNetDevsPolicyOnce
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - INFO
    - strncasecmp
    - strlen
    - strcasecmp
    - atoi
    linkageType: ''
    returnType: void
    signature: void getNetDevsPolicyOnce()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/nccl/src/graph/topo.cc:1759,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1761,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - policy
    - policyNum
    argTypes:
    - enum netDevsPolicy*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1757
    functionDepth: 1
    functionLinenumber: 1757
    functionLinenumberEnd: 1767
    functionName: ncclTopoGetNetDevsPolicy
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - WARN
    - std::call_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetNetDevsPolicy(enum netDevsPolicy* policy, int*
      policyNum)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1771,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/topo.cc:1771,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1775,1
    - Dst: ncclTopoGetLocal
      Src: /src/nccl/src/graph/topo.cc:1775,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1777,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1784,1
    - Dst: ncclTopoGetNetDevsPolicy
      Src: /src/nccl/src/graph/topo.cc:1784,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1788,1
    - Dst: ncclTopoGetLocal
      Src: /src/nccl/src/graph/topo.cc:1788,1
    - Dst: DIVUP
      Src: /src/nccl/src/graph/topo.cc:1789,1
    - Dst: min
      Src: /src/nccl/src/graph/topo.cc:1793,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1795,1
    - Dst: isPow2
      Src: /src/nccl/src/graph/topo.cc:1800,1
    - Dst: mirrorBits
      Src: /src/nccl/src/graph/topo.cc:1800,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - system
    - type
    - rank
    - channelId
    - id
    - dev
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    - int
    - int64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1769
    functionDepth: 2
    functionLinenumber: 1769
    functionLinenumberEnd: 1805
    functionName: ncclTopoGetLocalNetType
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - mirrorBits
    - isPow2
    - ncclTopoGetLocal
    - min
    - DIVUP
    - ncclTopoGetNetDevsPolicy
    - WARN
    - ncclTopoRankToIndex
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetLocalNetType(struct ncclTopoSystem* system,
      int type, int rank, int channelId, int64_t* id, int* dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclTopoGetLocalNetType
      Src: /src/nccl/src/graph/topo.cc:1807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - system
    - rank
    - channelId
    - id
    - dev
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    - int64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1806
    functionDepth: 3
    functionLinenumber: 1806
    functionLinenumberEnd: 1808
    functionName: ncclTopoGetLocalNet
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 2
    functionsReached:
    - ncclTopoGetLocalNetType
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetLocalNet(struct ncclTopoSystem* system, int
      rank, int channelId, int64_t* id, int* dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclTopoGetLocalNetType
      Src: /src/nccl/src/graph/topo.cc:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - system
    - rank
    - channelId
    - id
    - dev
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    - int64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1809
    functionDepth: 3
    functionLinenumber: 1809
    functionLinenumberEnd: 1811
    functionName: ncclTopoGetLocalGinDev
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclTopoGetLocalNetType
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetLocalGinDev(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:1815,1
    - Dst: ncclTopoGetLocalGinDev
      Src: /src/nccl/src/graph/topo.cc:1815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - comm
    - localGinDevs
    - localGinCount
    argTypes:
    - struct ncclComm*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1813
    functionDepth: 4
    functionLinenumber: 1813
    functionLinenumberEnd: 1822
    functionName: ncclTopoGetLocalGinDevs
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - ncclTopoGetLocalGinDev
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetLocalGinDevs(struct ncclComm* comm, int* localGinDevs,
      int* localGinCount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1827,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/topo.cc:1827,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1831,1
    - Dst: ncclTopoGetLocal
      Src: /src/nccl/src/graph/topo.cc:1831,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1839,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/topo.cc:1839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - system
    - netId
    - gpuIndex
    argTypes:
    - struct ncclTopoSystem*
    - int64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1824
    functionDepth: 4
    functionLinenumber: 1824
    functionLinenumberEnd: 1849
    functionName: ncclTopoGetLocalGpu
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - ncclTopoIdToIndex
    - ncclTopoGetLocal
    - ncclTopoGetLocalNet
    - NCCLCHECK
    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: 1860
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1860
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1867,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/topo.cc:1867,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1868,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/topo.cc:1868,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1874,1
    - Dst: ncclOsGetAffinity
      Src: /src/nccl/src/graph/topo.cc:1874,1
    - Dst: ncclParamIgnoreCpuAffinity
      Src: /src/nccl/src/graph/topo.cc:1881,1
    - Dst: ncclOsCpuAnd
      Src: /src/nccl/src/graph/topo.cc:1886,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:1888,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:1892,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1892,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1892,1
    - Dst: ncclOsCpuCount
      Src: /src/nccl/src/graph/topo.cc:1893,1
    - Dst: ncclCpusetToRangeStr
      Src: /src/nccl/src/graph/topo.cc:1894,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1894,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1894,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:1896,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1896,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1896,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:1898,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1898,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1898,1
    - Dst: ncclCpusetToRangeStr
      Src: /src/nccl/src/graph/topo.cc:1899,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1899,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1899,1
    - Dst: ncclParamIgnoreCpuAffinity
      Src: /src/nccl/src/graph/topo.cc:1900,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:1901,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1901,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1901,1
    - Dst: ncclCpusetToRangeStr
      Src: /src/nccl/src/graph/topo.cc:1902,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1902,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1902,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:1904,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1904,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1904,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - system
    - rank
    - affinity
    argTypes:
    - struct ncclTopoSystem*
    - int
    - ncclAffinity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1864
    functionDepth: 2
    functionLinenumber: 1864
    functionLinenumberEnd: 1907
    functionName: ncclTopoGetCpuAffinity
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - snprintf
    - ncclOsCpuAnd
    - INFO
    - ncclOsGetAffinity
    - memcpy
    - strlen
    - ncclParamIgnoreCpuAffinity
    - ncclGetLocalCpu
    - ncclOsCpuCount
    - ncclCpusetToRangeStr
    - ncclTopoRankToIndex
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetCpuAffinity(struct ncclTopoSystem* system,
      int rank, ncclAffinity* 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: 1912
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1912
    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: 1917
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1917
    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: 1922
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 1922
    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:1929,1
    - Dst: std::max
      Src: /src/nccl/src/graph/topo.cc:1930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - system
    - ccMin
    - ccMax
    argTypes:
    - struct ncclTopoSystem*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 1935
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1960,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1967,1
    - Dst: ncclParamMultiRankGpuEnable
      Src: /src/nccl/src/graph/topo.cc:1976,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1977,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1939
    functionDepth: 1
    functionLinenumber: 1939
    functionLinenumberEnd: 1983
    functionName: ncclCheckMultiRank
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - ncclParamMultiRankGpuEnable
    - INFO
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCheckMultiRank(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - maxNodes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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:75,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/xml.h:75,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/xml.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - xml
    - maxNodes
    argTypes:
    - struct ncclXml**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: xmlAlloc
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 1
    functionsReached:
    - xmlMemSize
    - ncclCalloc
    - 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:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - index
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 91
    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:95,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: xmlGetAttr
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 17
    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:101,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:101,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: xmlGetAttrStr
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 9
    functionsReached:
    - xmlGetAttr
    - WARN
    - 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:110,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/xml.h:110,1
    - Dst: strtol
      Src: /src/nccl/src/graph/xml.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: xmlGetAttrInt
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 11
    functionsReached:
    - strtol
    - xmlGetAttrStr
    - NCCLCHECK
    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:117,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:117,1
    - Dst: strtol
      Src: /src/nccl/src/graph/xml.h:118,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: 120
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: xmlGetAttrIntDefault
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 4
    functionsReached:
    - xmlGetAttr
    - strtol
    - 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:124,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/xml.h:124,1
    - Dst: strtoull
      Src: /src/nccl/src/graph/xml.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: xmlGetAttrUint64
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - strtoull
    - xmlGetAttrStr
    - NCCLCHECK
    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:131,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:131,1
    - Dst: strtoull
      Src: /src/nccl/src/graph/xml.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - node
    - attrName
    - value
    - defaultValue
    argTypes:
    - struct ncclXmlNode*
    - char*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: xmlGetAttrUint64Default
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - xmlGetAttr
    - strtoull
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetAttrUint64Default(struct ncclXmlNode* node, const
      char* attrName, uint64_t* value, uint64_t defaultValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:138,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/xml.h:138,1
    - Dst: strtol
      Src: /src/nccl/src/graph/xml.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: xmlGetAttrLong
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - strtol
    - xmlGetAttrStr
    - NCCLCHECK
    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:145,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/xml.h:145,1
    - Dst: strtof
      Src: /src/nccl/src/graph/xml.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: xmlGetAttrFloat
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 1
    functionsReached:
    - strtof
    - xmlGetAttrStr
    - NCCLCHECK
    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:152,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:152,1
    - Dst: strtof
      Src: /src/nccl/src/graph/xml.h:153,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: 155
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 155
    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:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - xml
    - tagName
    - node
    argTypes:
    - struct ncclXml*
    - char*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    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:173,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: 179
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 179
    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:185,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:187,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:187,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:188,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: 195
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 195
    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:202,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:207,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:207,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:208,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: 218
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 218
    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:222,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:222,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:225,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: xmlSetAttr
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 8
    functionsReached:
    - xmlGetAttrIndex
    - strncpy
    - 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:237,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.h:239,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:240,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.h:242,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:243,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.h:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - node
    - name
    argTypes:
    - struct ncclXmlNode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: xmlPrintNodeRecursive
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - INFO
    - snprintf
    - strlen
    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:253,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:253,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:256,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: xmlSetAttrIfUnset
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 2
    functionsReached:
    - xmlGetAttrIndex
    - strncpy
    - 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:265,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:265,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:268,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: xmlSetAttrInt
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 7
    functionsReached:
    - xmlGetAttrIndex
    - snprintf
    - strncpy
    - NCCLCHECK
    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:277,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:277,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:280,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: xmlSetAttrFloat
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - xmlGetAttrIndex
    - snprintf
    - strncpy
    - NCCLCHECK
    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:289,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:289,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:292,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: xmlSetAttrLong
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 2
    functionsReached:
    - xmlGetAttrIndex
    - snprintf
    - strncpy
    - NCCLCHECK
    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:301,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:301,1
    - Dst: strcpy
      Src: /src/nccl/src/graph/xml.h:304,1
    - Dst: strcpy
      Src: /src/nccl/src/graph/xml.h:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - node
    - attrName
    argTypes:
    - struct ncclXmlNode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 309
    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:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - node
    - subName
    - sub
    argTypes:
    - struct ncclXmlNode*
    - char*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 320
    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:326,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:328,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:328,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:329,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: 336
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 336
    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:339,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:340,1
    - Dst: xmlGetSubKv
      Src: /src/nccl/src/graph/xml.h:340,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: 342
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 342
    functionName: xmlGetSubKvInt
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - snprintf
    - xmlGetSubKv
    - NCCLCHECK
    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:346,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.h:356,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:361,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: 364
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 364
    functionName: xmlAddNode
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 6
    functionsReached:
    - strncpy
    - WARN
    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: 377
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 377
    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:381,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.h:389,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:397,1
    - Dst: xmlAddTree
      Src: /src/nccl/src/graph/xml.h:397,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: 399
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 399
    functionName: xmlAddTree
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 3
    functionsReached:
    - xmlAddTree
    - WARN
    - 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:412,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.h:412,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.h:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - str
    - value
    - dict
    argTypes:
    - char*
    - int*
    - struct kvDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 421
    functionName: kvConvertToInt
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 4
    functionsReached:
    - strncmp
    - INFO
    - 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:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - value
    - str
    - dict
    argTypes:
    - int
    - char**
    - struct kvDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 433
    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:73,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:90,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 3
    argNames:
    - comm
    - graphs
    - topoRanks
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph**
    - struct ncclTopoRanks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 93
    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: 113
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 113
    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: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    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: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    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:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - tree
    - indexes
    - d
    argTypes:
    - struct ncclTree*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 136
    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:143,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:147,1
    - Dst: ncclGetDtree
      Src: /src/nccl/src/graph/connect.cc:147,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:155,1
    - Dst: setTreeUp
      Src: /src/nccl/src/graph/connect.cc:155,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:156,1
    - Dst: setTreeUp
      Src: /src/nccl/src/graph/connect.cc:156,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:159,1
    - Dst: setTreeDown
      Src: /src/nccl/src/graph/connect.cc:159,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:160,1
    - Dst: setTreeDown
      Src: /src/nccl/src/graph/connect.cc:160,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:163,1
    - Dst: setTreeDown
      Src: /src/nccl/src/graph/connect.cc:163,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:164,1
    - Dst: setTreeDown
      Src: /src/nccl/src/graph/connect.cc:164,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:169,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:170,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: 175
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 175
    functionName: connectTrees
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - INFO
    - setTreeDown
    - setTreeUp
    - log2i
    - ncclGetDtree
    - 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:182,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/connect.cc:182,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:195,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:202,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:202,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:208,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:208,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:214,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:214,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:220,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:220,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:226,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:226,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:234,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:234,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:235,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:235,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:236,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:238,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 2
    argNames:
    - comm
    - collNetGraph
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 240
    functionName: connectCollNet
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclCalloc
    - sprintf
    - strlen
    - free
    - 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:269,1
    - Dst: ncclGetDtree
      Src: /src/nccl/src/graph/connect.cc:269,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:281,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:284,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:284,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:286,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:316,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 3
    argNames:
    - comm
    - nvlsHeads
    - nHeads
    argTypes:
    - struct ncclComm*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 320
    functionName: connectNvls
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - INFO
    - sprintf
    - strlen
    - ncclGetDtree
    - 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:331,1
    - Dst: ncclParamMinNrings
      Src: /src/nccl/src/graph/connect.cc:331,1
    - Dst: ncclParamMinNchannels
      Src: /src/nccl/src/graph/connect.cc:332,1
    - Dst: ncclParamMinNchannels
      Src: /src/nccl/src/graph/connect.cc:332,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 339
    functionName: ncclMinNchannels
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclParamMinNrings
    - ncclParamMinNchannels
    linkageType: ''
    returnType: int
    signature: int ncclMinNchannels()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamMaxNrings
      Src: /src/nccl/src/graph/connect.cc:345,1
    - Dst: ncclParamMaxNrings
      Src: /src/nccl/src/graph/connect.cc:345,1
    - Dst: ncclParamMaxNchannels
      Src: /src/nccl/src/graph/connect.cc:346,1
    - Dst: ncclParamMaxNchannels
      Src: /src/nccl/src/graph/connect.cc:346,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:347,1
    - Dst: ncclDevMaxChannelsForArgsBytes
      Src: /src/nccl/src/graph/connect.cc:347,1
    - Dst: ncclParamWorkArgsBytes
      Src: /src/nccl/src/graph/connect.cc:347,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: ncclMaxNchannels
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclDevMaxChannelsForArgsBytes
    - ncclParamMaxNchannels
    - min
    - ncclParamMaxNrings
    - ncclParamWorkArgsBytes
    linkageType: ''
    returnType: int
    signature: int ncclMaxNchannels()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:360,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:361,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:362,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: 365
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 365
    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: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: exchangeValues
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exchangeValues(int* v0, int* v1)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      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: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:391,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/connect.cc:391,1
    - Dst: exchangeValues
      Src: /src/nccl/src/graph/connect.cc:400,1
    - Dst: exchangeValues
      Src: /src/nccl/src/graph/connect.cc:401,1
    - Dst: exchangeValues
      Src: /src/nccl/src/graph/connect.cc:402,1
    - Dst: exchangeValues
      Src: /src/nccl/src/graph/connect.cc:403,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:437,1
    - Dst: connectRings
      Src: /src/nccl/src/graph/connect.cc:437,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:438,1
    - Dst: connectTrees
      Src: /src/nccl/src/graph/connect.cc:438,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:441,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:442,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:453,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:460,1
    - Dst: copyChannels
      Src: /src/nccl/src/graph/connect.cc:461,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:469,1
    - Dst: connectCollNet
      Src: /src/nccl/src/graph/connect.cc:469,1
    - Dst: copyChannels
      Src: /src/nccl/src/graph/connect.cc:475,1
    - Dst: ncclParamUnpackDoubleNChannels
      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:488,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:488,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:488,1
    - Dst: ncclMaxNchannels
      Src: /src/nccl/src/graph/connect.cc:488,1
    - Dst: copyChannels
      Src: /src/nccl/src/graph/connect.cc:489,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:489,1
    - Dst: std::max
      Src: /src/nccl/src/graph/connect.cc:489,1
    - Dst: ncclMinNchannels
      Src: /src/nccl/src/graph/connect.cc:489,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:491,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:491,1
    - Dst: ncclMaxNchannels
      Src: /src/nccl/src/graph/connect.cc:491,1
    - Dst: copyChannels
      Src: /src/nccl/src/graph/connect.cc:492,1
    - Dst: std::max
      Src: /src/nccl/src/graph/connect.cc:492,1
    - Dst: ncclMinNchannels
      Src: /src/nccl/src/graph/connect.cc:492,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:501,1
    - Dst: connectNvls
      Src: /src/nccl/src/graph/connect.cc:501,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:505,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:509,1
    - Dst: ncclBuildRings
      Src: /src/nccl/src/graph/connect.cc:509,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
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:515,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:516,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:517,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:518,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:519,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    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: 523
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 523
    functionName: ncclTopoPostset
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 1
    functionsReached:
    - copyChannels
    - ncclCalloc
    - ncclBuildRings
    - connectCollNet
    - ncclMaxNchannels
    - std::max
    - ncclParamUnpackDoubleNChannels
    - connectTrees
    - memcpy
    - min
    - ncclMinNchannels
    - connectNvls
    - exchangeValues
    - free
    - NCCLCHECKGOTO
    - connectRings
    - 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: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    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: 66
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 66
    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:91,1
    - Dst: ncclGetBtree
      Src: /src/nccl/src/graph/trees.cc:97,1
    - Dst: ncclGetBtree
      Src: /src/nccl/src/graph/trees.cc:104,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: 110
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 110
    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:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - system
    - dev
    - type
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    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*
      dev, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/graph/search.cc:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - system
    - dev
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 38
    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*
      dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/graph/search.cc:50,1
    - Dst: getMaxBw
      Src: /src/nccl/src/graph/search.cc:50,1
    - Dst: std::max
      Src: /src/nccl/src/graph/search.cc:51,1
    - Dst: getTotalBw
      Src: /src/nccl/src/graph/search.cc:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 54
    functionName: ncclTopoSearchInit
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - getMaxBw
    - getTotalBw
    - std::max
    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: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    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:73,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: 75
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 75
    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: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    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:89,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:101,1
    - Dst: findRevLink
      Src: /src/nccl/src/graph/search.cc:101,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:105,1
    - Dst: findRevLink
      Src: /src/nccl/src/graph/search.cc:105,1
    - Dst: SUB_ROUND
      Src: /src/nccl/src/graph/search.cc:112,1
    - Dst: SUB_ROUND
      Src: /src/nccl/src/graph/search.cc:113,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: 118
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 118
    functionName: followPath
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - INTEL_P2P_OVERHEAD
    - SUB_ROUND
    - findRevLink
    - 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:131,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:152,1
    - Dst: followPath
      Src: /src/nccl/src/graph/search.cc:152,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:162,1
    - Dst: followPath
      Src: /src/nccl/src/graph/search.cc:162,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: 164
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 164
    functionName: ncclTopoFollowPath
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - followPath
    - WARN
    - 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:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - gpu
    argTypes:
    - struct ncclTopoNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 179
    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: 203
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 203
    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: 212
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 212
    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:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - system
    - rank
    - index
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 223
    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:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - system
    - id
    - index
    argTypes:
    - struct ncclTopoSystem*
    - int64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 234
    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:239,1
    - Dst: getNetIndex
      Src: /src/nccl/src/graph/search.cc:239,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: 242
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 242
    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:249,1
    - Dst: getNetPaths
      Src: /src/nccl/src/graph/search.cc:249,1
    - Dst: memset
      Src: /src/nccl/src/graph/search.cc:252,1
    - Dst: gpuPciBw
      Src: /src/nccl/src/graph/search.cc:265,1
    - Dst: qsort
      Src: /src/nccl/src/graph/search.cc:272,1
    - Dst: cmpIntraScores
      Src: /src/nccl/src/graph/search.cc:275,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: 312
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 312
    functionName: ncclTopoSearchNextGpuSort
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - qsort
    - getNetPaths
    - gpuPciBw
    - cmpIntraScores
    - memset
    - NCCLCHECK
    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: 335
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 335
    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:342,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:342,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:345,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:345,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:347,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:347,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: 350
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 350
    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:358,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:358,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:363,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:363,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:374,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:374,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:378,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:378,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:383,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:383,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: 386
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 386
    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:393,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:393,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:401,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:401,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:407,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:407,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:411,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:411,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:416,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:416,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: 419
      start: 388
    functionDepth: 4
    functionLinenumber: 388
    functionLinenumberEnd: 419
    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: 440
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 440
    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:457,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/search.cc:457,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:458,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/search.cc:458,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: 475
      start: 443
    functionDepth: 4
    functionLinenumber: 443
    functionLinenumberEnd: 475
    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:485,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/search.cc:485,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:486,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/search.cc:486,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: 499
      start: 478
    functionDepth: 4
    functionLinenumber: 478
    functionLinenumberEnd: 499
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamScatterEnable
      Src: /src/nccl/src/graph/search.cc:515,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:517,1
    - Dst: ncclTopoPrefNetsGpuFirst
      Src: /src/nccl/src/graph/search.cc:517,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:520,1
    - Dst: ncclTopoPrefNetsChannelFirst
      Src: /src/nccl/src/graph/search.cc:520,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:527,1
    - Dst: ncclTopoGetNetDevsPolicy
      Src: /src/nccl/src/graph/search.cc:527,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 37
    argCount: 5
    argNames:
    - system
    - typeInter
    - gpu
    - nets
    - netCountRet
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    - int[]
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 510
    functionDepth: 5
    functionLinenumber: 510
    functionLinenumberEnd: 557
    functionName: ncclTopoSelectNets
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - ncclTopoPrefNetsChannelFirst
    - ncclParamScatterEnable
    - ncclTopoGetNetDevsPolicy
    - 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamMnnvlRailPerHost
      Src: /src/nccl/src/graph/search.cc:567,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:567,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:567,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 19
    argCount: 5
    argNames:
    - system
    - graph
    - startNet
    - n
    - step
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - struct ncclTopoNode*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 576
    functionName: ncclTopoSearchCheckNet
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - NCCL_TOPO_ID_SYSTEM_ID
    - ncclParamMnnvlRailPerHost
    linkageType: ''
    returnType: bool
    signature: bool ncclTopoSearchCheckNet(struct ncclTopoSystem* system, struct ncclTopoGraph*
      graph, struct ncclTopoNode* startNet, int n, int step)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:587,1
    - Dst: ncclTopoCompareGraphs
      Src: /src/nccl/src/graph/search.cc:587,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:589,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:593,1
    - Dst: ncclTopoSearchRec
      Src: /src/nccl/src/graph/search.cc:593,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:605,1
    - Dst: getNetIndex
      Src: /src/nccl/src/graph/search.cc:605,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:608,1
    - Dst: ncclTopoSelectNets
      Src: /src/nccl/src/graph/search.cc:608,1
    - Dst: ncclTopoSearchCheckNet
      Src: /src/nccl/src/graph/search.cc:611,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:622,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:622,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:626,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:626,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:629,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:629,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:635,1
    - Dst: ncclTopoSearchTryNvls
      Src: /src/nccl/src/graph/search.cc:635,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:637,1
    - Dst: ncclTopoSearchTryCollnetDirect
      Src: /src/nccl/src/graph/search.cc:637,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:646,1
    - Dst: ncclTopoReplayGetGpu
      Src: /src/nccl/src/graph/search.cc:646,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:649,1
    - Dst: ncclTopoSearchNextGpuSort
      Src: /src/nccl/src/graph/search.cc:649,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:652,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:652,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:657,1
    - Dst: getGpuIndex
      Src: /src/nccl/src/graph/search.cc:657,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:659,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:659,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:661,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:661,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:662,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:662,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:666,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:666,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 76
    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: 669
      start: 578
    functionDepth: 6
    functionLinenumber: 578
    functionLinenumberEnd: 669
    functionName: ncclTopoSearchRecGpu
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 4
    functionsReached:
    - ncclTopoReplayGetGpu
    - ncclTopoSelectNets
    - ncclTopoSearchRecGpu
    - NCCLCHECK
    - memcpy
    - ncclTopoSearchRec
    - ncclTopoSearchTryGpu
    - ncclTopoSearchNextGpuSort
    - ncclTopoSearchCheckNet
    - ncclTopoFollowPath
    - ncclTopoSearchTryNvls
    - ncclTopoSearchTryCollnetDirect
    - getNetIndex
    - getGpuIndex
    - ncclTopoCompareGraphs
    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:676,1
    - Dst: ncclTopoSelectNets
      Src: /src/nccl/src/graph/search.cc:676,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:710,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:710,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:719,1
    - Dst: ncclTopoReplayGetGpu
      Src: /src/nccl/src/graph/search.cc:719,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:720,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:720,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:725,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:725,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:732,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:732,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:735,1
    - Dst: ncclTopoGetLocal
      Src: /src/nccl/src/graph/search.cc:735,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:740,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:740,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: 753
      start: 671
    functionDepth: 6
    functionLinenumber: 671
    functionLinenumberEnd: 753
    functionName: ncclTopoSearchRecNet
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - ncclTopoSelectNets
    - ncclTopoGetLocal
    - ncclTopoSearchTryGpu
    - ncclTopoReplayGetGpu
    - 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: 784
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 784
    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:788,1
    - Dst: ncclTopoSearchParams
      Src: /src/nccl/src/graph/search.cc:788,1
    - Dst: ncclTopoSearchRecNet
      Src: /src/nccl/src/graph/search.cc:791,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:795,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:795,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:799,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:799,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:803,1
    - Dst: ncclTopoReplayGetGpu
      Src: /src/nccl/src/graph/search.cc:803,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:804,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:804,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:809,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:809,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: 814
      start: 786
    functionDepth: 7
    functionLinenumber: 786
    functionLinenumberEnd: 814
    functionName: ncclTopoSearchRec
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - ncclTopoSearchRecNet
    - ncclTopoSearchTryGpu
    - ncclTopoReplayGetGpu
    - ncclTopoSearchParams
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSearchRec(struct ncclTopoSystem* system, struct
      ncclTopoGraph* graph, struct ncclTopoGraph* saveGraph, int* time)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:842,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/search.cc:842,1
    - Dst: strtol
      Src: /src/nccl/src/graph/search.cc:843,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/search.cc:844,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/search.cc:846,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:849,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/search.cc:849,1
    - Dst: strtol
      Src: /src/nccl/src/graph/search.cc:851,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:854,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/search.cc:855,1
    - Dst: WARN
      Src: /src/nccl/src/graph/search.cc:858,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - xmlChannel
    - c
    - system
    - graph
    argTypes:
    - struct ncclXmlNode*
    - int
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 833
    functionDepth: 3
    functionLinenumber: 833
    functionLinenumberEnd: 866
    functionName: ncclTopoGetChannelFromXml
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - NCCL_TOPO_ID_SYSTEM_ID
    - NCCL_TOPO_ID
    - strcmp
    - xmlGetAttrStr
    - xmlGetAttrIndex
    - WARN
    - 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:869,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/search.cc:869,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:873,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/search.cc:873,1
    - Dst: ncclParamCrossNic
      Src: /src/nccl/src/graph/search.cc:874,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:877,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/search.cc:877,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:878,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/search.cc:878,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:879,1
    - Dst: xmlGetAttrFloat
      Src: /src/nccl/src/graph/search.cc:879,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:880,1
    - Dst: xmlGetAttrFloat
      Src: /src/nccl/src/graph/search.cc:880,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:882,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/search.cc:882,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:883,1
    - Dst: strtof
      Src: /src/nccl/src/graph/search.cc:884,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:885,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/search.cc:885,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:886,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/search.cc:886,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:887,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/search.cc:887,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:888,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/search.cc:888,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:889,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/search.cc:889,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:891,1
    - Dst: ncclTopoGetChannelFromXml
      Src: /src/nccl/src/graph/search.cc:891,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: 895
      start: 867
    functionDepth: 4
    functionLinenumber: 867
    functionLinenumberEnd: 895
    functionName: ncclTopoGetGraphFromXmlSub
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - strtof
    - INFO
    - xmlGetAttrInt
    - ncclParamCrossNic
    - kvConvertToInt
    - xmlGetAttrFloat
    - xmlGetAttr
    - ncclTopoGetChannelFromXml
    - 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:898,1
    - Dst: ncclTopoGetGraphFromXmlSub
      Src: /src/nccl/src/graph/search.cc:898,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: 901
      start: 896
    functionDepth: 5
    functionLinenumber: 896
    functionLinenumberEnd: 901
    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:909,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:909,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:912,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:912,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:913,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/search.cc:913,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:916,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:916,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:920,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/search.cc:921,1
    - Dst: WARN
      Src: /src/nccl/src/graph/search.cc:925,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:928,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/search.cc:928,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:929,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:929,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:933,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:933,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:934,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/search.cc:934,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - graph
    - c
    - system
    - xml
    - parent
    argTypes:
    - struct ncclTopoGraph*
    - int
    - struct ncclTopoSystem*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 937
    functionName: ncclTopoGetXmlFromChannel
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - xmlSetAttrInt
    - NCCL_TOPO_ID
    - xmlSetAttrLong
    - xmlAddNode
    - NCCL_TOPO_ID_SYSTEM_ID
    - WARN
    - 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:940,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:940,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:941,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:941,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:942,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:942,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:943,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:943,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:944,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:944,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:945,1
    - Dst: xmlSetAttrFloat
      Src: /src/nccl/src/graph/search.cc:945,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:946,1
    - Dst: xmlSetAttrFloat
      Src: /src/nccl/src/graph/search.cc:946,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:947,1
    - Dst: xmlSetAttrFloat
      Src: /src/nccl/src/graph/search.cc:947,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:949,1
    - Dst: kvConvertToStr
      Src: /src/nccl/src/graph/search.cc:949,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:950,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/search.cc:950,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:951,1
    - Dst: kvConvertToStr
      Src: /src/nccl/src/graph/search.cc:951,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:952,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/search.cc:952,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:953,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:953,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:955,1
    - Dst: ncclTopoGetXmlFromChannel
      Src: /src/nccl/src/graph/search.cc:955,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: 958
      start: 938
    functionDepth: 3
    functionLinenumber: 938
    functionLinenumberEnd: 958
    functionName: ncclTopoGetXmlFromGraph
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - xmlSetAttr
    - xmlSetAttrFloat
    - ncclTopoGetXmlFromChannel
    - kvConvertToStr
    - xmlSetAttrInt
    - xmlAddNode
    - 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:962,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:962,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:963,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:963,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:965,1
    - Dst: ncclTopoGetXmlFromGraph
      Src: /src/nccl/src/graph/search.cc:965,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: 968
      start: 959
    functionDepth: 4
    functionLinenumber: 959
    functionLinenumberEnd: 968
    functionName: ncclTopoGetXmlFromGraphs
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - ncclTopoGetXmlFromGraph
    - xmlSetAttrInt
    - xmlAddNode
    - 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:976,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:977,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:978,1
    - Dst: DIVUP
      Src: /src/nccl/src/graph/search.cc:979,1
    - Dst: DIVUP
      Src: /src/nccl/src/graph/search.cc:980,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - graph
    - ccMin
    - ngpus
    argTypes:
    - struct ncclTopoGraph*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 983
    functionName: ncclTopoDupChannels
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - min
    - DIVUP
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoDupChannels(struct ncclTopoGraph* graph, int ccMin,
      int ngpus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamCrossNic
      Src: /src/nccl/src/graph/search.cc:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - supported
    argTypes:
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1003
    functionName: ncclTopoCheckCrossNicSupport
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - ncclParamCrossNic
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoCheckCrossNicSupport(bool* supported)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1010,1
    - Dst: struct ncclComm*::ncclNet::devices
      Src: /src/nccl/src/graph/search.cc:1010,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1012,1
    - Dst: struct ncclComm*::ncclNet::getProperties
      Src: /src/nccl/src/graph/search.cc:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - comm
    - fused
    argTypes:
    - struct ncclComm*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1021
    functionName: ncclTopoCheckNicFused
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - struct ncclComm*::ncclNet::devices
    - struct ncclComm*::ncclNet::getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoCheckNicFused(struct ncclComm* comm, bool* fused)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1025,1
    - Dst: ncclTopoGetCompCap
      Src: /src/nccl/src/graph/search.cc:1025,1
    - Dst: ncclParamCrossNic
      Src: /src/nccl/src/graph/search.cc:1032,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1039,1
    - Dst: ncclTopoGetGpuMinPath
      Src: /src/nccl/src/graph/search.cc:1039,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1040,1
    - Dst: ncclTopoGetGpuMaxPath
      Src: /src/nccl/src/graph/search.cc:1040,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1043,1
    - Dst: ncclTopoGetGpuMinPath
      Src: /src/nccl/src/graph/search.cc:1043,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1044,1
    - Dst: ncclTopoGetGpuMaxPath
      Src: /src/nccl/src/graph/search.cc:1044,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1057,1
    - Dst: ncclTopoCpuType
      Src: /src/nccl/src/graph/search.cc:1057,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/search.cc:1059,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:1061,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1063,1
    - Dst: xmlAlloc
      Src: /src/nccl/src/graph/search.cc:1063,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1064,1
    - Dst: ncclTopoGetXmlGraphFromFile
      Src: /src/nccl/src/graph/search.cc:1064,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1066,1
    - Dst: ncclTopoGetGraphFromXml
      Src: /src/nccl/src/graph/search.cc:1066,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:1067,1
    - Dst: free
      Src: /src/nccl/src/graph/search.cc:1068,1
    - Dst: min
      Src: /src/nccl/src/graph/search.cc:1074,1
    - Dst: min
      Src: /src/nccl/src/graph/search.cc:1075,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1085,1
    - Dst: ncclTopoSplitNvLink
      Src: /src/nccl/src/graph/search.cc:1085,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:1094,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1124,1
    - Dst: ncclTopoSearchRec
      Src: /src/nccl/src/graph/search.cc:1124,1
    - Dst: printf
      Src: /src/nccl/src/graph/search.cc:1126,1
    - Dst: printf
      Src: /src/nccl/src/graph/search.cc:1128,1
    - Dst: printf
      Src: /src/nccl/src/graph/search.cc:1130,1
    - Dst: printf
      Src: /src/nccl/src/graph/search.cc:1132,1
    - Dst: printf
      Src: /src/nccl/src/graph/search.cc:1133,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1198,1
    - Dst: ncclTopoDupChannels
      Src: /src/nccl/src/graph/search.cc:1198,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:1199,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:1225,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:1232,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1237,1
    - Dst: ncclTopoSelectNets
      Src: /src/nccl/src/graph/search.cc:1237,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1239,1
    - Dst: ncclTopoSelectNets
      Src: /src/nccl/src/graph/search.cc:1239,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 186
    argCount: 2
    argNames:
    - system
    - graph
    argTypes:
    - ncclTopoSystem*
    - struct ncclTopoGraph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1023
    functionDepth: 8
    functionLinenumber: 1023
    functionLinenumberEnd: 1252
    functionName: ncclTopoCompute
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - ncclTopoDupChannels
    - memcpy
    - ncclTopoSearchRec
    - ncclTopoGetCompCap
    - ncclGetEnv
    - ncclTopoGetGpuMaxPath
    - ncclTopoGetGraphFromXml
    - free
    - ncclTopoGetXmlGraphFromFile
    - INFO
    - ncclParamCrossNic
    - min
    - ncclTopoGetGpuMinPath
    - NCCLCHECK
    - ncclTopoSelectNets
    - ncclTopoCpuType
    - xmlAlloc
    - printf
    - ncclTopoSplitNvLink
    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:1258,1
    - Dst: malloc
      Src: /src/nccl/src/graph/search.cc:1261,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/search.cc:1263,1
    - Dst: strlen
      Src: /src/nccl/src/graph/search.cc:1264,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/search.cc:1266,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:1266,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/search.cc:1266,1
    - Dst: strlen
      Src: /src/nccl/src/graph/search.cc:1267,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/search.cc:1271,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/search.cc:1273,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:1273,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/search.cc:1273,1
    - Dst: strlen
      Src: /src/nccl/src/graph/search.cc:1274,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/search.cc:1278,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:1278,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/search.cc:1278,1
    - Dst: strlen
      Src: /src/nccl/src/graph/search.cc:1279,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:1281,1
    - Dst: free
      Src: /src/nccl/src/graph/search.cc:1283,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - system
    - graph
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1257
    functionDepth: 2
    functionLinenumber: 1257
    functionLinenumberEnd: 1285
    functionName: ncclTopoPrintGraph
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclTopoRankToIndex
    - sprintf
    - strlen
    - free
    - NCCL_TOPO_ID_SYSTEM_ID
    - malloc
    - 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:1289,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:1292,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1293,1
    - Dst: xmlAlloc
      Src: /src/nccl/src/graph/search.cc:1293,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/search.cc:1294,1
    - Dst: ncclTopoGetXmlFromGraphs
      Src: /src/nccl/src/graph/search.cc:1294,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/search.cc:1295,1
    - Dst: ncclTopoDumpXmlToFile
      Src: /src/nccl/src/graph/search.cc:1295,1
    - Dst: free
      Src: /src/nccl/src/graph/search.cc:1298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - system
    - ngraphs
    - graphs
    argTypes:
    - struct ncclTopoSystem*
    - int
    - struct ncclTopoGraph**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1287
    functionDepth: 5
    functionLinenumber: 1287
    functionLinenumberEnd: 1302
    functionName: ncclTopoDumpGraphs
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - ncclGetEnv
    - INFO
    - ncclTopoDumpXmlToFile
    - ncclTopoGetXmlFromGraphs
    - xmlAlloc
    - free
    - NCCLCHECKGOTO
    - 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:1327,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: 1329
      start: 1306
    functionDepth: 1
    functionLinenumber: 1306
    functionLinenumberEnd: 1329
    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:1345,1
    - Dst: getNvlsNetDev
      Src: /src/nccl/src/graph/search.cc:1345,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1347,1
    - Dst: ncclTopoIdToNetDev
      Src: /src/nccl/src/graph/search.cc:1347,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1350,1
    - Dst: ncclTopoGetIntermediateRank
      Src: /src/nccl/src/graph/search.cc:1350,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1355,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/search.cc:1355,1
    - Dst: ncclPxnDisable
      Src: /src/nccl/src/graph/search.cc:1360,1
    - Dst: ncclParamP2pPxnLevel
      Src: /src/nccl/src/graph/search.cc:1360,1
    - Dst: ncclParamCrossNic
      Src: /src/nccl/src/graph/search.cc:1362,1
    - Dst: ncclTopoDevToRank
      Src: /src/nccl/src/graph/search.cc:1366,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1367,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/search.cc:1367,1
    - Dst: ncclParamCrossNic
      Src: /src/nccl/src/graph/search.cc:1370,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1376,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/search.cc:1376,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1377,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/search.cc:1377,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1383,1
    - Dst: ncclTopoGetIntermediateRank
      Src: /src/nccl/src/graph/search.cc:1383,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1388,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/search.cc:1388,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1389,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/search.cc:1389,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1390,1
    - Dst: ncclTopoGetLocalGpu
      Src: /src/nccl/src/graph/search.cc:1390,1
    - Dst: ncclParamPxnC2c
      Src: /src/nccl/src/graph/search.cc:1393,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1395,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/graph/search.cc:1395,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    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: 1407
      start: 1334
    functionDepth: 5
    functionLinenumber: 1334
    functionLinenumberEnd: 1407
    functionName: ncclTopoGetNetDev
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 5
    functionsReached:
    - ncclPxnDisable
    - ncclTopoCheckGdr
    - ncclParamP2pPxnLevel
    - ncclTopoGetLocalGpu
    - ncclTopoGetLocalNet
    - ncclTopoGetIntermediateRank
    - ncclParamCrossNic
    - ncclTopoDevToRank
    - ncclTopoIdToNetDev
    - ncclParamPxnC2c
    - ncclTopoIdToIndex
    - getNvlsNetDev
    - ncclTopoRankToIndex
    - NCCLCHECK
    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:
    - Dst: memset
      Src: /src/nccl/src/nccl_device/gin_barrier.cc:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - comm
    - team
    - nBarriers
    - outHandle
    - outReq
    argTypes:
    - ncclComm_t
    - ncclTeam_t
    - int
    - ncclGinBarrierHandle_t*
    - ncclDevResourceRequirements_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 20
    functionName: ncclGinBarrierCreateRequirement
    functionSourceFile: /src/nccl/src/nccl_device/gin_barrier.cc
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinBarrierCreateRequirement(\n    ncclComm_t comm,
      ncclTeam_t team, int nBarriers,\n    ncclGinBarrierHandle_t* outHandle, ncclDevResourceRequirements_t*
      outReq\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/nccl_device/lsa_barrier.cc:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - team
    - nBarriers
    - outHandle
    - outReq
    argTypes:
    - ncclTeam_t
    - int
    - ncclLsaBarrierHandle_t*
    - ncclDevResourceRequirements_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: ncclLsaBarrierCreateRequirement
    functionSourceFile: /src/nccl/src/nccl_device/lsa_barrier.cc
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclLsaBarrierCreateRequirement(\n    ncclTeam_t team,
      int nBarriers, ncclLsaBarrierHandle_t* outHandle,\n    ncclDevResourceRequirements_t*
      outReq\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: ncclTeamWorld
    functionSourceFile: /src/nccl/src/nccl_device/core.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ncclTeam_t
    signature: ncclTeam_t ncclTeamWorld(ncclComm_t comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclDevrInitOnce
      Src: /src/nccl/src/nccl_device/core.cc:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: ncclTeamLsa
    functionSourceFile: /src/nccl/src/nccl_device/core.cc
    functionUses: 11
    functionsReached:
    - ncclDevrInitOnce
    linkageType: ''
    returnType: ncclTeam_t
    signature: ncclTeam_t ncclTeamLsa(ncclComm_t comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclDevrInitOnce
      Src: /src/nccl/src/nccl_device/core.cc:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: ncclTeamRail
    functionSourceFile: /src/nccl/src/nccl_device/core.cc
    functionUses: 7
    functionsReached:
    - ncclDevrInitOnce
    linkageType: ''
    returnType: ncclTeam_t
    signature: ncclTeam_t ncclTeamRail(ncclComm_t comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - comm
    - team
    - rank
    argTypes:
    - ncclComm_t
    - ncclTeam_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: ncclTeamRankToWorld
    functionSourceFile: /src/nccl/src/nccl_device/core.cc
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclTeamRankToWorld(ncclComm_t comm, ncclTeam_t team, int rank)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclDevrInitOnce
      Src: /src/nccl/src/nccl_device/core.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - comm
    - team
    - rank
    argTypes:
    - ncclComm_t
    - ncclTeam_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: ncclTeamRankToLsa
    functionSourceFile: /src/nccl/src/nccl_device/core.cc
    functionUses: 0
    functionsReached:
    - ncclDevrInitOnce
    linkageType: ''
    returnType: int
    signature: int ncclTeamRankToLsa(ncclComm_t comm, ncclTeam_t team, int rank)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/nccl_device/gin_scratch.cc:20,1
    - Dst: std::max<int>
      Src: /src/nccl/src/nccl_device/gin_scratch.cc:21,1
    - Dst: alignUp
      Src: /src/nccl/src/nccl_device/gin_scratch.cc:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - nBlocks
    - size_log2
    - outHandle
    - outReq
    argTypes:
    - int
    - int
    - ncclGinOutboxHandle*
    - ncclDevResourceRequirements*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: ncclGinOutboxCreateRequirement
    functionSourceFile: /src/nccl/src/nccl_device/gin_scratch.cc
    functionUses: 1
    functionsReached:
    - std::max<int>
    - memset
    - alignUp
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinOutboxCreateRequirement(\n    int nBlocks, int
      size_log2,\n    ncclGinOutboxHandle* outHandle, ncclDevResourceRequirements*
      outReq\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/nccl_device/gin_scratch.cc:41,1
    - Dst: idivRcp32
      Src: /src/nccl/src/nccl_device/gin_scratch.cc:43,1
    - Dst: alignUp
      Src: /src/nccl/src/nccl_device/gin_scratch.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - peers
    - nBlocks
    - size_log2
    - outHandle
    - outReq
    argTypes:
    - ncclTeam
    - int
    - int
    - ncclGinInboxA2AHandle*
    - ncclDevResourceRequirements*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: ncclGinInboxA2ACreateRequirement
    functionSourceFile: /src/nccl/src/nccl_device/gin_scratch.cc
    functionUses: 1
    functionsReached:
    - memset
    - idivRcp32
    - alignUp
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinInboxA2ACreateRequirement(\n    ncclTeam peers,
      int nBlocks, int size_log2,\n    ncclGinInboxA2AHandle* outHandle, ncclDevResourceRequirements*
      outReq\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: divUp
      Src: /src/nccl/src/nccl_device/ll_a2a.cc:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - maxElts
    - maxEltSize
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: ncclLLA2ACalcSlots
    functionSourceFile: /src/nccl/src/nccl_device/ll_a2a.cc
    functionUses: 1
    functionsReached:
    - divUp
    linkageType: ''
    returnType: int
    signature: int ncclLLA2ACalcSlots(int maxElts, int maxEltSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/nccl_device/ll_a2a.cc:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - nBlocks
    - nSlots
    - outHandle
    - outReq
    argTypes:
    - int
    - int
    - ncclLLA2AHandle_t*
    - ncclDevResourceRequirements_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: ncclLLA2ACreateRequirement
    functionSourceFile: /src/nccl/src/nccl_device/ll_a2a.cc
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclLLA2ACreateRequirement(\n    int nBlocks, int nSlots,
      ncclLLA2AHandle_t* outHandle,\n    ncclDevResourceRequirements_t* outReq\n  )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows.cc:50,1
    - Dst: FormatMessageA
      Src: /src/nccl/src/os/windows.cc:52,1
    - Dst: MAKELANGID
      Src: /src/nccl/src/os/windows.cc:53,1
    - Dst: snprintf
      Src: /src/nccl/src/os/windows.cc:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: saveDlError
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 0
    functionsReached:
    - FormatMessageA
    - MAKELANGID
    - snprintf
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void saveDlError()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryA
      Src: /src/nccl/src/os/windows.cc:64,1
    - Dst: saveDlError
      Src: /src/nccl/src/os/windows.cc:66,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: ncclOsDlopen
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 3
    functionsReached:
    - INFO
    - LoadLibraryA
    - saveDlError
    linkageType: ''
    returnType: ncclOsLibraryHandle
    signature: ncclOsLibraryHandle ncclOsDlopen(const char* filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddress
      Src: /src/nccl/src/os/windows.cc:73,1
    - Dst: saveDlError
      Src: /src/nccl/src/os/windows.cc:75,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - handle
    - symbol
    argTypes:
    - ncclOsLibraryHandle
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: ncclOsDlsym
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 26
    functionsReached:
    - INFO
    - saveDlError
    - GetProcAddress
    linkageType: ''
    returnType: void
    signature: void * ncclOsDlsym(ncclOsLibraryHandle handle, const char* symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: ncclOsDlerror
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclOsDlerror()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryA
      Src: /src/nccl/src/os/windows.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: ncclOsDlopen
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 3
    functionsReached:
    - LoadLibraryA
    linkageType: ''
    returnType: ncclOsLibraryHandle
    signature: ncclOsLibraryHandle ncclOsDlopen(const char* path, int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FreeLibrary
      Src: /src/nccl/src/os/windows.cc:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclOsLibraryHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: ncclOsDlclose
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 2
    functionsReached:
    - FreeLibrary
    linkageType: ''
    returnType: void
    signature: void ncclOsDlclose(ncclOsLibraryHandle handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcessId
      Src: /src/nccl/src/os/windows.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: ncclOsGetPid
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 6
    functionsReached:
    - GetCurrentProcessId
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ncclOsGetPid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localtime_s
      Src: /src/nccl/src/os/windows.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - timer
    - buf
    argTypes:
    - time_t*
    - std::tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: ncclOsLocaltime
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - localtime_s
    linkageType: ''
    returnType: std::tm
    signature: std::tm * ncclOsLocaltime(const time_t* timer, std::tm* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/nccl/src/os/windows.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: ncclOsGetTid
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 2
    functionsReached:
    - GetCurrentThreadId
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ncclOsGetTid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/nccl/src/os/windows.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: ncclOsGetPageSize
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 3
    functionsReached:
    - GetSystemInfo
    linkageType: ''
    returnType: size_t
    signature: size_t ncclOsGetPageSize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _aligned_malloc
      Src: /src/nccl/src/os/windows.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: ncclOsAlignedAlloc
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - _aligned_malloc
    linkageType: ''
    returnType: void
    signature: void * ncclOsAlignedAlloc(size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _aligned_free
      Src: /src/nccl/src/os/windows.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: ncclOsAlignedFree
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 3
    functionsReached:
    - _aligned_free
    linkageType: ''
    returnType: void
    signature: void ncclOsAlignedFree(void* ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariableA
      Src: /src/nccl/src/os/windows.cc:125,1
    - Dst: SetEnvironmentVariableA
      Src: /src/nccl/src/os/windows.cc:127,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:129,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows.cc:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: ncclOsSetEnv
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - WARN
    - GetEnvironmentVariableA
    - SetEnvironmentVariableA
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void ncclOsSetEnv(const char* name, const char* value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/nccl/src/os/windows.cc:137,1
    - Dst: MAKEWORD
      Src: /src/nccl/src/os/windows.cc:137,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:139,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:142,1
    - Dst: LOBYTE
      Src: /src/nccl/src/os/windows.cc:143,1
    - Dst: HIBYTE
      Src: /src/nccl/src/os/windows.cc:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: ncclOsInitialize
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - LOBYTE
    - INFO
    - MAKEWORD
    - HIBYTE
    - WARN
    - WSAStartup
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsInitialize()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: ncclOsSetFilesLimit
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSetFilesLimit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sockDescriptor
    argTypes:
    - ncclSocketDescriptor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: ncclOsSocketDescriptorIsValid
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclOsSocketDescriptorIsValid(ncclSocketDescriptor sockDescriptor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsSocketDescriptorIsValid
      Src: /src/nccl/src/os/windows.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: ncclOsSocketIsValid
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 3
    functionsReached:
    - ncclOsSocketDescriptorIsValid
    linkageType: ''
    returnType: bool
    signature: bool ncclOsSocketIsValid(struct ncclSocket* sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/os/windows.cc:164,1
    - Dst: WSAPoll
      Src: /src/nccl/src/os/windows.cc:167,1
    - Dst: ncclParamPollTimeOut
      Src: /src/nccl/src/os/windows.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - sock
    - op
    argTypes:
    - SOCKET
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: ncclOsPollSocket
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - ncclParamPollTimeOut
    - memset
    - WSAPoll
    linkageType: ''
    returnType: void
    signature: void ncclOsPollSocket(SOCKET sock, int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FormatMessageA
      Src: /src/nccl/src/os/windows.cc:172,1
    - Dst: MAKELANGID
      Src: /src/nccl/src/os/windows.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: getWSAErrorMessage
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 0
    functionsReached:
    - MAKELANGID
    - FormatMessageA
    linkageType: ''
    returnType: char
    signature: char * getWSAErrorMessage(int error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/nccl/src/os/windows.cc:182,1
    - Dst: ncclOsSocketIsValid
      Src: /src/nccl/src/os/windows.cc:183,1
    - Dst: WSAGetLastError
      Src: /src/nccl/src/os/windows.cc:186,1
    - Dst: ncclParamRetryCnt
      Src: /src/nccl/src/os/windows.cc:189,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:190,1
    - Dst: getWSAErrorMessage
      Src: /src/nccl/src/os/windows.cc:190,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:193,1
    - Dst: getWSAErrorMessage
      Src: /src/nccl/src/os/windows.cc:193,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:197,1
    - Dst: getWSAErrorMessage
      Src: /src/nccl/src/os/windows.cc:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 202
    functionName: ncclOsSocketTryAccept
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - ncclOsSocketIsValid
    - INFO
    - accept
    - ncclParamRetryCnt
    - WSAGetLastError
    - getWSAErrorMessage
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketTryAccept(struct ncclSocket* sock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsSocketIsValid
      Src: /src/nccl/src/os/windows.cc:212,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:213,1
    - Dst: ioctlsocket
      Src: /src/nccl/src/os/windows.cc:219,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:221,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/windows.cc:227,1
    - Dst: setsockopt
      Src: /src/nccl/src/os/windows.cc:227,1
    - Dst: ncclParamSocketMaxRecvBuff
      Src: /src/nccl/src/os/windows.cc:229,1
    - Dst: ncclParamSocketMaxSendBuff
      Src: /src/nccl/src/os/windows.cc:230,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/windows.cc:231,1
    - Dst: setsockopt
      Src: /src/nccl/src/os/windows.cc:231,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/windows.cc:232,1
    - Dst: setsockopt
      Src: /src/nccl/src/os/windows.cc:232,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 237
    functionName: ncclOsSocketSetFlags
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - ncclOsSocketIsValid
    - setsockopt
    - ioctlsocket
    - ncclParamSocketMaxSendBuff
    - ncclParamSocketMaxRecvBuff
    - SYSCHECKGOTO
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketSetFlags(struct ncclSocket* sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:241,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/windows.cc:242,1
    - Dst: closesocket
      Src: /src/nccl/src/os/windows.cc:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: ncclOsSocketResetAccept
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - INFO
    - closesocket
    - ncclSocketToString
    linkageType: ''
    returnType: void
    signature: void ncclOsSocketResetAccept(struct ncclSocket* sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/nccl/src/os/windows.cc:254,1
    - Dst: WSAGetLastError
      Src: /src/nccl/src/os/windows.cc:256,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:257,1
    - Dst: getWSAErrorMessage
      Src: /src/nccl/src/os/windows.cc:257,1
    - Dst: ncclOsSocketIsValid
      Src: /src/nccl/src/os/windows.cc:263,1
    - Dst: closesocket
      Src: /src/nccl/src/os/windows.cc:264,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/os/windows.cc:267,1
    - Dst: ncclOsSocketSetFlags
      Src: /src/nccl/src/os/windows.cc:267,1
    - Dst: closesocket
      Src: /src/nccl/src/os/windows.cc:273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 276
    functionName: ncclOsSocketResetFd
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - ncclOsSocketIsValid
    - closesocket
    - ncclOsSocketSetFlags
    - socket
    - WSAGetLastError
    - getWSAErrorMessage
    - NCCLCHECKGOTO
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketResetFd(struct ncclSocket* sock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamRetryCnt
      Src: /src/nccl/src/os/windows.cc:289,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:291,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/windows.cc:292,1
    - Dst: getWSAErrorMessage
      Src: /src/nccl/src/os/windows.cc:292,1
    - Dst: ncclParamRetryTimeOut
      Src: /src/nccl/src/os/windows.cc:295,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:296,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/windows.cc:297,1
    - Dst: getWSAErrorMessage
      Src: /src/nccl/src/os/windows.cc:297,1
    - Dst: ncclParamRetryCnt
      Src: /src/nccl/src/os/windows.cc:298,1
    - Dst: std::this_thread::sleep_for
      Src: /src/nccl/src/os/windows.cc:299,1
    - Dst: std::chrono::milliseconds
      Src: /src/nccl/src/os/windows.cc:299,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/os/windows.cc:301,1
    - Dst: ncclOsSocketResetFd
      Src: /src/nccl/src/os/windows.cc:301,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:305,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/windows.cc:305,1
    - Dst: getWSAErrorMessage
      Src: /src/nccl/src/os/windows.cc:305,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - sock
    - errCode
    - funcName
    argTypes:
    - struct ncclSocket*
    - int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 309
    functionName: socketConnectCheck
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 0
    functionsReached:
    - INFO
    - std::this_thread::sleep_for
    - std::chrono::milliseconds
    - ncclParamRetryCnt
    - ncclOsSocketResetFd
    - getWSAErrorMessage
    - ncclParamRetryTimeOut
    - WARN
    - ncclSocketToString
    - NCCLCHECK
    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/os/windows.cc:313,1
    - Dst: socketConnectCheck
      Src: /src/nccl/src/os/windows.cc:314,1
    - Dst: WSAGetLastError
      Src: /src/nccl/src/os/windows.cc:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: ncclOsSocketStartConnect
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - connect
    - socketConnectCheck
    - WSAGetLastError
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketStartConnect(struct ncclSocket* sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/os/windows.cc:323,1
    - Dst: WSAPoll
      Src: /src/nccl/src/os/windows.cc:326,1
    - Dst: WSAGetLastError
      Src: /src/nccl/src/os/windows.cc:328,1
    - Dst: WSAGetLastError
      Src: /src/nccl/src/os/windows.cc:331,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:332,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/windows.cc:332,1
    - Dst: getWSAErrorMessage
      Src: /src/nccl/src/os/windows.cc:332,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/os/windows.cc:337,1
    - Dst: getsockopt
      Src: /src/nccl/src/os/windows.cc:337,1
    - Dst: socketConnectCheck
      Src: /src/nccl/src/os/windows.cc:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 339
    functionName: ncclOsSocketPollConnect
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 2
    functionsReached:
    - WSAPoll
    - getsockopt
    - socketConnectCheck
    - WSAGetLastError
    - getWSAErrorMessage
    - memset
    - SYSCHECK
    - WARN
    - ncclSocketToString
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketPollConnect(struct ncclSocket* sock)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ioctlsocket
      Src: /src/nccl/src/os/windows.cc:349,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:351,1
    - Dst: recv
      Src: /src/nccl/src/os/windows.cc:357,1
    - Dst: send
      Src: /src/nccl/src/os/windows.cc:358,1
    - Dst: WSAGetLastError
      Src: /src/nccl/src/os/windows.cc:364,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:373,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/windows.cc:374,1
    - Dst: getWSAErrorMessage
      Src: /src/nccl/src/os/windows.cc:374,1
    - Dst: std::atomic_load_explicit
      Src: /src/nccl/src/os/windows.cc:381,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:382,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 7
    argNames:
    - op
    - sock
    - ptr
    - size
    - offset
    - block
    - closed
    argTypes:
    - int
    - struct ncclSocket*
    - void*
    - int
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 387
    functionName: ncclOsSocketProgressOpt
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 2
    functionsReached:
    - send
    - INFO
    - ioctlsocket
    - std::atomic_load_explicit
    - WSAGetLastError
    - getWSAErrorMessage
    - recv
    - WARN
    - ncclSocketToString
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketProgressOpt(int op, struct ncclSocket* sock,
      void* ptr, int size, int* offset, int block, int* closed)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: parseStringList
      Src: /src/nccl/src/os/windows.cc:399,1
    - Dst: GetAdaptersAddresses
      Src: /src/nccl/src/os/windows.cc:405,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:407,1
    - Dst: malloc
      Src: /src/nccl/src/os/windows.cc:412,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:414,1
    - Dst: GetAdaptersAddresses
      Src: /src/nccl/src/os/windows.cc:419,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:421,1
    - Dst: IN6_IS_ADDR_LOOPBACK
      Src: /src/nccl/src/os/windows.cc:450,1
    - Dst: WideCharToMultiByte
      Src: /src/nccl/src/os/windows.cc:455,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows.cc:457,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/windows.cc:457,1
    - Dst: matchIfList
      Src: /src/nccl/src/os/windows.cc:460,1
    - Dst: strcmp
      Src: /src/nccl/src/os/windows.cc:467,1
    - Dst: strncpy
      Src: /src/nccl/src/os/windows.cc:475,1
    - Dst: memset
      Src: /src/nccl/src/os/windows.cc:478,1
    - Dst: memcpy
      Src: /src/nccl/src/os/windows.cc:479,1
    - Dst: free
      Src: /src/nccl/src/os/windows.cc:485,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 64
    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: 487
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 487
    functionName: ncclOsFindInterfaces
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - matchIfList
    - TRACE
    - WideCharToMultiByte
    - IN6_IS_ADDR_LOOPBACK
    - memcpy
    - free
    - strncpy
    - ncclSocketToString
    - strcmp
    - memset
    - malloc
    - GetAdaptersAddresses
    - WARN
    - parseStringList
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclOsFindInterfaces(const char* prefixList, char* names,
      union ncclSocketAddress *addrs, int sock_family,\n  int maxIfNameSize, int maxIfs,
      int* found)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/nccl/src/os/windows.cc:512,1
    - Dst: htonl
      Src: /src/nccl/src/os/windows.cc:513,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:552,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - local_addr
    - remote
    argTypes:
    - IP_ADAPTER_UNICAST_ADDRESS*
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 555
    functionName: matchSubnet
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 0
    functionsReached:
    - INFO
    - htonl
    linkageType: ''
    returnType: bool
    signature: bool matchSubnet(IP_ADAPTER_UNICAST_ADDRESS* local_addr, union ncclSocketAddress*
      remote)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GetAdaptersAddresses
      Src: /src/nccl/src/os/windows.cc:568,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:570,1
    - Dst: malloc
      Src: /src/nccl/src/os/windows.cc:575,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:577,1
    - Dst: GetAdaptersAddresses
      Src: /src/nccl/src/os/windows.cc:582,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:584,1
    - Dst: free
      Src: /src/nccl/src/os/windows.cc:585,1
    - Dst: IN6_IS_ADDR_LOOPBACK
      Src: /src/nccl/src/os/windows.cc:611,1
    - Dst: matchSubnet
      Src: /src/nccl/src/os/windows.cc:615,1
    - Dst: memcpy
      Src: /src/nccl/src/os/windows.cc:621,1
    - Dst: WideCharToMultiByte
      Src: /src/nccl/src/os/windows.cc:624,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows.cc:626,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/windows.cc:627,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/windows.cc:627,1
    - Dst: free
      Src: /src/nccl/src/os/windows.cc:632,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 5
    argNames:
    - ifName
    - localAddr
    - remoteAddr
    - ifNameMaxSize
    - found
    argTypes:
    - char*
    - union ncclSocketAddress*
    - union ncclSocketAddress*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 634
    functionName: ncclFindInterfaceMatchSubnet
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 2
    functionsReached:
    - TRACE
    - WideCharToMultiByte
    - IN6_IS_ADDR_LOOPBACK
    - memcpy
    - free
    - matchSubnet
    - malloc
    - GetAdaptersAddresses
    - WARN
    - ncclSocketToString
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclFindInterfaceMatchSubnet(char* ifName, union ncclSocketAddress*
      localAddr,\n                                          union ncclSocketAddress*
      remoteAddr, int ifNameMaxSize, int* found)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsSocketIsValid
      Src: /src/nccl/src/os/windows.cc:638,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/os/windows.cc:644,1
    - Dst: shutdown
      Src: /src/nccl/src/os/windows.cc:651,1
    - Dst: closesocket
      Src: /src/nccl/src/os/windows.cc:652,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - sock
    - wait
    argTypes:
    - struct ncclSocket*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 658
    functionName: ncclSocketClose
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 26
    functionsReached:
    - ncclSocketProgress
    - ncclOsSocketIsValid
    - shutdown
    - closesocket
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketClose(struct ncclSocket* sock, bool wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mutex
    - cond
    argTypes:
    - std::mutex
    - std::condition_variable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 662
    functionName: ncclOsSetMutexCondShared
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclOsSetMutexCondShared(std::mutex &mutex, std::condition_variable
      &cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' affinity'
    argTypes:
    - ncclAffinity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 666
    functionName: ncclOsCpuZero
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclOsCpuZero(ncclAffinity& affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_popcnt_u64
      Src: /src/nccl/src/os/windows.cc:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' affinity'
    argTypes:
    - ncclAffinity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 670
    functionName: ncclOsCpuCount
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 7
    functionsReached:
    - _mm_popcnt_u64
    linkageType: ''
    returnType: int
    signature: int ncclOsCpuCount(const ncclAffinity& affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' affinity'
    - cpu
    argTypes:
    - ncclAffinity
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 674
    functionName: ncclOsCpuSet
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclOsCpuSet(ncclAffinity& affinity, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' affinity'
    - cpu
    argTypes:
    - ncclAffinity
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 678
    functionName: ncclOsCpuIsSet
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclOsCpuIsSet(const ncclAffinity& affinity, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ncclAffinity
    - ncclAffinity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 682
    functionName: ncclOsCpuAnd
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclAffinity
    signature: ncclAffinity ncclOsCpuAnd(const ncclAffinity& a, const ncclAffinity&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessAffinityMask
      Src: /src/nccl/src/os/windows.cc:686,1
    - Dst: GetCurrentProcess
      Src: /src/nccl/src/os/windows.cc:686,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:688,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows.cc:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - affinity
    argTypes:
    - ncclAffinity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 693
    functionName: ncclOsGetAffinity
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 3
    functionsReached:
    - GetProcessAffinityMask
    - WARN
    - GetLastError
    - GetCurrentProcess
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsGetAffinity(ncclAffinity* affinity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetProcessAffinityMask
      Src: /src/nccl/src/os/windows.cc:696,1
    - Dst: GetCurrentProcess
      Src: /src/nccl/src/os/windows.cc:696,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:698,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows.cc:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' affinity'
    argTypes:
    - ncclAffinity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 702
    functionName: ncclOsSetAffinity
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 6
    functionsReached:
    - GetCurrentProcess
    - WARN
    - GetLastError
    - SetProcessAffinityMask
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSetAffinity(const ncclAffinity& affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcessorNumber
      Src: /src/nccl/src/os/windows.cc:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: ncclOsGetCpu
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 3
    functionsReached:
    - GetCurrentProcessorNumber
    linkageType: ''
    returnType: int
    signature: int ncclOsGetCpu()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlopen
      Src: /src/nccl/src/os/windows.cc:719,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:721,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows.cc:726,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclOsLibraryHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 732
    functionName: ncclOsNvmlOpen
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - INFO
    - WARN
    - ncclOsDlopen
    - GetLastError
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsNvmlOpen(ncclOsLibraryHandle* handle)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/src/os/windows.cc:744,1
    - Dst: _fullpath
      Src: /src/nccl/src/os/windows.cc:752,1
    - Dst: free
      Src: /src/nccl/src/os/windows.cc:756,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - path
    - resolved_path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 763
    functionName: ncclOsRealpath
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 3
    functionsReached:
    - _fullpath
    - malloc
    - free
    linkageType: ''
    returnType: char
    signature: char * ncclOsRealpath(const char* path, char* resolved_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/os/windows.cc:780,1
    - Dst: malloc
      Src: /src/nccl/src/os/windows.cc:781,1
    - Dst: memcpy
      Src: /src/nccl/src/os/windows.cc:782,1
    - Dst: memset
      Src: /src/nccl/src/os/windows.cc:783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 8
    argNames:
    - shmDesc
    - shmPath
    - shmSize
    - realShmSize
    - hptr
    - dptr
    - create
    - handle
    argTypes:
    - ncclShmDescriptor
    - char*
    - size_t
    - size_t
    - char*
    - void*
    - bool
    - struct ncclShmHandleInternal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 787
    functionName: ncclOsShmHandleInit
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - memset
    - strlen
    linkageType: ''
    returnType: void
    signature: "void ncclOsShmHandleInit(ncclShmDescriptor shmDesc, char* shmPath,
      size_t shmSize, size_t realShmSize,\n                         char* hptr, void*
      dptr, bool create,\n                         struct ncclShmHandleInternal* handle)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EQCHECKGOTO
      Src: /src/nccl/src/os/windows.cc:803,1
    - Dst: calloc
      Src: /src/nccl/src/os/windows.cc:803,1
    - Dst: clockNano
      Src: /src/nccl/src/os/windows.cc:808,1
    - Dst: snprintf
      Src: /src/nccl/src/os/windows.cc:809,1
    - Dst: GetCurrentProcessId
      Src: /src/nccl/src/os/windows.cc:810,1
    - Dst: CreateFileMappingA
      Src: /src/nccl/src/os/windows.cc:815,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:824,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows.cc:824,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:829,1
    - Dst: OpenFileMappingA
      Src: /src/nccl/src/os/windows.cc:832,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:838,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows.cc:838,1
    - Dst: MapViewOfFile
      Src: /src/nccl/src/os/windows.cc:845,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:853,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows.cc:853,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/os/windows.cc:861,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:863,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:868,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/os/windows.cc:870,1
    - Dst: cudaHostRegister
      Src: /src/nccl/src/os/windows.cc:872,1
    - Dst: cudaHostGetDevicePointer
      Src: /src/nccl/src/os/windows.cc:874,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/os/windows.cc:876,1
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:880,1
    - Dst: cudaGetErrorString
      Src: /src/nccl/src/os/windows.cc:880,1
    - Dst: ncclOsShmHandleInit
      Src: /src/nccl/src/os/windows.cc:885,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:892,1
    - Dst: ncclOsShmHandleInit
      Src: /src/nccl/src/os/windows.cc:895,1
    - Dst: ncclOsShmClose
      Src: /src/nccl/src/os/windows.cc:896,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 7
    argNames:
    - shmPath
    - shmPathSize
    - shmSize
    - shmPtr
    - devShmPtr
    - refcount
    - handle
    argTypes:
    - char*
    - size_t
    - size_t
    - void**
    - void**
    - int
    - struct ncclShmHandleInternal**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 902
    functionName: ncclOsShmOpen
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - calloc
    - cudaHostGetDevicePointer
    - INFO
    - clockNano
    - OpenFileMappingA
    - cudaHostRegister
    - GetLastError
    - ncclOsShmHandleInit
    - CreateFileMappingA
    - ncclAtomicRefCountDecrement
    - cudaThreadExchangeStreamCaptureMode
    - ncclOsShmClose
    - cudaGetErrorString
    - GetCurrentProcessId
    - MapViewOfFile
    - snprintf
    - WARN
    - EQCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclOsShmOpen(char* shmPath, size_t shmPathSize, size_t
      shmSize,\n                           void** shmPtr, void** devShmPtr, int refcount,\n
      \                          struct ncclShmHandleInternal** handle)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UnmapViewOfFile
      Src: /src/nccl/src/os/windows.cc:909,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:910,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows.cc:911,1
    - Dst: CloseHandle
      Src: /src/nccl/src/os/windows.cc:917,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows.cc:918,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows.cc:919,1
    - Dst: free
      Src: /src/nccl/src/os/windows.cc:922,1
    - Dst: free
      Src: /src/nccl/src/os/windows.cc:925,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct ncclShmHandleInternal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 928
    functionName: ncclOsShmClose
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 2
    functionsReached:
    - GetLastError
    - UnmapViewOfFile
    - CloseHandle
    - free
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsShmClose(struct ncclShmHandleInternal* handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/os/windows.cc:935,1
    - Dst: free
      Src: /src/nccl/src/os/windows.cc:936,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct ncclShmHandleInternal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 941
    functionName: ncclOsShmUnlink
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 1
    functionsReached:
    - free
    - INFO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsShmUnlink(struct ncclShmHandleInternal* handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/nccl/src/os/windows.cc:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - tv
    - tz
    argTypes:
    - struct timeval*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 956
    functionName: gettimeofday
    functionSourceFile: /src/nccl/src/os/windows.cc
    functionUses: 2
    functionsReached:
    - GetSystemTimeAsFileTime
    linkageType: ''
    returnType: int
    signature: int gettimeofday(struct timeval* tv, void* tz)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/nccl/src/os/linux_ipcsocket.cc:39,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux_ipcsocket.cc:40,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux_ipcsocket.cc:40,1
    - Dst: memset
      Src: /src/nccl/src/os/linux_ipcsocket.cc:44,1
    - Dst: snprintf
      Src: /src/nccl/src/os/linux_ipcsocket.cc:48,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux_ipcsocket.cc:50,1
    - Dst: close
      Src: /src/nccl/src/os/linux_ipcsocket.cc:51,1
    - Dst: ncclParamIpcUseAbstractSocket
      Src: /src/nccl/src/os/linux_ipcsocket.cc:55,1
    - Dst: unlink
      Src: /src/nccl/src/os/linux_ipcsocket.cc:58,1
    - Dst: TRACE
      Src: /src/nccl/src/os/linux_ipcsocket.cc:61,1
    - Dst: strcpy
      Src: /src/nccl/src/os/linux_ipcsocket.cc:63,1
    - Dst: bind
      Src: /src/nccl/src/os/linux_ipcsocket.cc:67,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux_ipcsocket.cc:68,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux_ipcsocket.cc:68,1
    - Dst: close
      Src: /src/nccl/src/os/linux_ipcsocket.cc:69,1
    - Dst: strcpy
      Src: /src/nccl/src/os/linux_ipcsocket.cc:74,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/os/linux_ipcsocket.cc:80,1
    - Dst: fcntl
      Src: /src/nccl/src/os/linux_ipcsocket.cc:80,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/os/linux_ipcsocket.cc:81,1
    - Dst: fcntl
      Src: /src/nccl/src/os/linux_ipcsocket.cc:81,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 4
    argNames:
    - handle
    - rank
    - hash
    - abortFlag
    argTypes:
    - ncclIpcSocket*
    - int
    - uint64_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 85
    functionName: ncclIpcSocketInit
    functionSourceFile: /src/nccl/src/os/linux_ipcsocket.cc
    functionUses: 4
    functionsReached:
    - TRACE
    - close
    - socket
    - fcntl
    - strerror
    - unlink
    - bind
    - memset
    - strcpy
    - ncclParamIpcUseAbstractSocket
    - SYSCHECK
    - snprintf
    - WARN
    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/os/linux_ipcsocket.cc:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - fd
    argTypes:
    - struct ncclIpcSocket*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: ncclIpcSocketGetFd
    functionSourceFile: /src/nccl/src/os/linux_ipcsocket.cc
    functionUses: 2
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketGetFd(struct ncclIpcSocket* handle, int*
      fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIpcUseAbstractSocket
      Src: /src/nccl/src/os/linux_ipcsocket.cc:103,1
    - Dst: unlink
      Src: /src/nccl/src/os/linux_ipcsocket.cc:105,1
    - Dst: close
      Src: /src/nccl/src/os/linux_ipcsocket.cc:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclIpcSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 110
    functionName: ncclIpcSocketClose
    functionSourceFile: /src/nccl/src/os/linux_ipcsocket.cc
    functionUses: 4
    functionsReached:
    - unlink
    - ncclParamIpcUseAbstractSocket
    - close
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketClose(ncclIpcSocket *handle)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/nccl/src/os/linux_ipcsocket.cc:119,1
    - Dst: recvmsg
      Src: /src/nccl/src/os/linux_ipcsocket.cc:140,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux_ipcsocket.cc:142,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/os/linux_ipcsocket.cc:145,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/nccl/src/os/linux_ipcsocket.cc:149,1
    - Dst: CMSG_LEN
      Src: /src/nccl/src/os/linux_ipcsocket.cc:149,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux_ipcsocket.cc:151,1
    - Dst: memmove
      Src: /src/nccl/src/os/linux_ipcsocket.cc:155,1
    - Dst: CMSG_DATA
      Src: /src/nccl/src/os/linux_ipcsocket.cc:155,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux_ipcsocket.cc:157,1
    - Dst: TRACE
      Src: /src/nccl/src/os/linux_ipcsocket.cc:160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - handle
    - hdr
    - hdrLen
    - recvFd
    argTypes:
    - ncclIpcSocket*
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 164
    functionName: ncclIpcSocketRecvMsg
    functionSourceFile: /src/nccl/src/os/linux_ipcsocket.cc
    functionUses: 2
    functionsReached:
    - TRACE
    - memmove
    - CMSG_FIRSTHDR
    - CMSG_DATA
    - recvmsg
    - CMSG_SPACE
    - COMPILER_ATOMIC_LOAD
    - CMSG_LEN
    - WARN
    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/os/linux_ipcsocket.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - recvFd
    argTypes:
    - ncclIpcSocket*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: ncclIpcSocketRecvFd
    functionSourceFile: /src/nccl/src/os/linux_ipcsocket.cc
    functionUses: 0
    functionsReached:
    - ncclIpcSocketRecvMsg
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketRecvFd(ncclIpcSocket *handle, int *recvFd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/nccl/src/os/linux_ipcsocket.cc:177,1
    - Dst: memset
      Src: /src/nccl/src/os/linux_ipcsocket.cc:185,1
    - Dst: snprintf
      Src: /src/nccl/src/os/linux_ipcsocket.cc:188,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux_ipcsocket.cc:190,1
    - Dst: strcpy
      Src: /src/nccl/src/os/linux_ipcsocket.cc:193,1
    - Dst: ncclParamIpcUseAbstractSocket
      Src: /src/nccl/src/os/linux_ipcsocket.cc:195,1
    - Dst: TRACE
      Src: /src/nccl/src/os/linux_ipcsocket.cc:200,1
    - Dst: memset
      Src: /src/nccl/src/os/linux_ipcsocket.cc:203,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/nccl/src/os/linux_ipcsocket.cc:207,1
    - Dst: CMSG_LEN
      Src: /src/nccl/src/os/linux_ipcsocket.cc:208,1
    - Dst: memmove
      Src: /src/nccl/src/os/linux_ipcsocket.cc:211,1
    - Dst: CMSG_DATA
      Src: /src/nccl/src/os/linux_ipcsocket.cc:211,1
    - Dst: sendmsg
      Src: /src/nccl/src/os/linux_ipcsocket.cc:229,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux_ipcsocket.cc:231,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux_ipcsocket.cc:231,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/os/linux_ipcsocket.cc:234,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 6
    argNames:
    - handle
    - hdr
    - hdrLen
    - sendFd
    - rank
    - hash
    argTypes:
    - ncclIpcSocket*
    - void*
    - int
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 238
    functionName: ncclIpcSocketSendMsg
    functionSourceFile: /src/nccl/src/os/linux_ipcsocket.cc
    functionUses: 2
    functionsReached:
    - TRACE
    - memmove
    - CMSG_FIRSTHDR
    - strerror
    - CMSG_DATA
    - memset
    - CMSG_SPACE
    - strcpy
    - ncclParamIpcUseAbstractSocket
    - CMSG_LEN
    - COMPILER_ATOMIC_LOAD
    - sendmsg
    - snprintf
    - WARN
    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/os/linux_ipcsocket.cc:241,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: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: ncclIpcSocketSendFd
    functionSourceFile: /src/nccl/src/os/linux_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: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlerror
      Src: /src/nccl/src/os/linux.cc:36,1
    - Dst: snprintf
      Src: /src/nccl/src/os/linux.cc:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: saveDlError
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached:
    - snprintf
    - dlerror
    linkageType: ''
    returnType: void
    signature: void saveDlError()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/nccl/src/os/linux.cc:45,1
    - Dst: saveDlError
      Src: /src/nccl/src/os/linux.cc:47,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: ncclOsDlopen
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 4
    functionsReached:
    - dlopen
    - INFO
    - saveDlError
    linkageType: ''
    returnType: ncclOsLibraryHandle
    signature: ncclOsLibraryHandle ncclOsDlopen(const char* filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/os/linux.cc:54,1
    - Dst: saveDlError
      Src: /src/nccl/src/os/linux.cc:56,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - handle
    - symbol
    argTypes:
    - ncclOsLibraryHandle
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: ncclOsDlsym
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 26
    functionsReached:
    - INFO
    - saveDlError
    - dlsym
    linkageType: ''
    returnType: void
    signature: void * ncclOsDlsym(ncclOsLibraryHandle handle, const char* symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: ncclOsDlerror
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclOsDlerror()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/nccl/src/os/linux.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: ncclOsDlopen
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 4
    functionsReached:
    - dlopen
    linkageType: ''
    returnType: ncclOsLibraryHandle
    signature: ncclOsLibraryHandle ncclOsDlopen(const char* path, int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlclose
      Src: /src/nccl/src/os/linux.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclOsLibraryHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: ncclOsDlclose
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached:
    - dlclose
    linkageType: ''
    returnType: void
    signature: void ncclOsDlclose(ncclOsLibraryHandle handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/nccl/src/os/linux.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: ncclOsGetPid
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 6
    functionsReached:
    - getpid
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ncclOsGetPid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localtime_r
      Src: /src/nccl/src/os/linux.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - timer
    - buf
    argTypes:
    - time_t*
    - std::tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: ncclOsLocaltime
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - localtime_r
    linkageType: ''
    returnType: std::tm
    signature: std::tm * ncclOsLocaltime(const time_t* timer, std::tm* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/nccl/src/os/linux.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: ncclOsGetTid
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached:
    - syscall
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ncclOsGetTid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/nccl/src/os/linux.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: ncclOsGetPageSize
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 3
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: size_t
    signature: size_t ncclOsGetPageSize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aligned_alloc
      Src: /src/nccl/src/os/linux.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: ncclOsAlignedAlloc
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - aligned_alloc
    linkageType: ''
    returnType: void
    signature: void * ncclOsAlignedAlloc(size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/os/linux.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: ncclOsAlignedFree
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 3
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ncclOsAlignedFree(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/nccl/src/os/linux.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: ncclOsSetEnv
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - setenv
    linkageType: ''
    returnType: void
    signature: void ncclOsSetEnv(const char* name, const char* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realpath
      Src: /src/nccl/src/os/linux.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - resolved_path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: ncclOsRealpath
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 3
    functionsReached:
    - realpath
    linkageType: ''
    returnType: char
    signature: char * ncclOsRealpath(const char* path, char* resolved_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/os/linux.cc:114,1
    - Dst: pthread_attr_init
      Src: /src/nccl/src/os/linux.cc:114,1
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/os/linux.cc:115,1
    - Dst: pthread_attr_getstacksize
      Src: /src/nccl/src/os/linux.cc:115,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/os/linux.cc:124,1
    - Dst: getrlimit
      Src: /src/nccl/src/os/linux.cc:124,1
    - Dst: strcpy
      Src: /src/nccl/src/os/linux.cc:126,1
    - Dst: snprintf
      Src: /src/nccl/src/os/linux.cc:128,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:129,1
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/os/linux.cc:133,1
    - Dst: pthread_attr_setstacksize
      Src: /src/nccl/src/os/linux.cc:133,1
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/os/linux.cc:134,1
    - Dst: pthread_setattr_default_np
      Src: /src/nccl/src/os/linux.cc:134,1
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/os/linux.cc:137,1
    - Dst: pthread_attr_destroy
      Src: /src/nccl/src/os/linux.cc:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: setCpuStackSize
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 0
    functionsReached:
    - pthread_attr_init
    - INFO
    - PTHREADCHECK
    - pthread_attr_getstacksize
    - pthread_attr_setstacksize
    - pthread_setattr_default_np
    - getrlimit
    - strcpy
    - pthread_attr_destroy
    - SYSCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t setCpuStackSize()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamSetCpuStackSize
      Src: /src/nccl/src/os/linux.cc:144,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/os/linux.cc:145,1
    - Dst: setCpuStackSize
      Src: /src/nccl/src/os/linux.cc:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: ncclOsInitialize
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - setCpuStackSize
    - ncclParamSetCpuStackSize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsInitialize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SYSCHECK
      Src: /src/nccl/src/os/linux.cc:152,1
    - Dst: getrlimit
      Src: /src/nccl/src/os/linux.cc:152,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/os/linux.cc:154,1
    - Dst: setrlimit
      Src: /src/nccl/src/os/linux.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: ncclOsSetFilesLimit
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - getrlimit
    - SYSCHECK
    - setrlimit
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSetFilesLimit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sockDescriptor
    argTypes:
    - ncclSocketDescriptor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: ncclOsSocketDescriptorIsValid
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclOsSocketDescriptorIsValid(ncclSocketDescriptor sockDescriptor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsSocketDescriptorIsValid
      Src: /src/nccl/src/os/linux.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: ncclOsSocketIsValid
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 7
    functionsReached:
    - ncclOsSocketDescriptorIsValid
    linkageType: ''
    returnType: bool
    signature: bool ncclOsSocketIsValid(struct ncclSocket* sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/os/linux.cc:171,1
    - Dst: poll
      Src: /src/nccl/src/os/linux.cc:174,1
    - Dst: ncclParamPollTimeOut
      Src: /src/nccl/src/os/linux.cc:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - socketDescriptor
    - op
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: ncclOsPollSocket
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - ncclParamPollTimeOut
    - poll
    - memset
    linkageType: ''
    returnType: void
    signature: void ncclOsPollSocket(int socketDescriptor, int op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/nccl/src/os/linux.cc:181,1
    - Dst: ncclOsSocketIsValid
      Src: /src/nccl/src/os/linux.cc:182,1
    - Dst: ncclParamRetryCnt
      Src: /src/nccl/src/os/linux.cc:189,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:190,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:190,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:193,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:193,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:195,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:195,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 199
    functionName: ncclOsSocketTryAccept
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - ncclOsSocketIsValid
    - INFO
    - accept
    - ncclParamRetryCnt
    - strerror
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketTryAccept(struct ncclSocket* sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsSocketIsValid
      Src: /src/nccl/src/os/linux.cc:209,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:210,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:216,1
    - Dst: fcntl
      Src: /src/nccl/src/os/linux.cc:216,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:217,1
    - Dst: fcntl
      Src: /src/nccl/src/os/linux.cc:217,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:219,1
    - Dst: setsockopt
      Src: /src/nccl/src/os/linux.cc:219,1
    - Dst: ncclParamSocketMaxRecvBuff
      Src: /src/nccl/src/os/linux.cc:221,1
    - Dst: ncclParamSocketMaxSendBuff
      Src: /src/nccl/src/os/linux.cc:222,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:223,1
    - Dst: setsockopt
      Src: /src/nccl/src/os/linux.cc:223,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:224,1
    - Dst: setsockopt
      Src: /src/nccl/src/os/linux.cc:224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 229
    functionName: ncclOsSocketSetFlags
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached:
    - ncclOsSocketIsValid
    - setsockopt
    - fcntl
    - ncclParamSocketMaxSendBuff
    - ncclParamSocketMaxRecvBuff
    - SYSCHECKGOTO
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketSetFlags(struct ncclSocket* sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:233,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/linux.cc:234,1
    - Dst: close
      Src: /src/nccl/src/os/linux.cc:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: ncclOsSocketResetAccept
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - close
    linkageType: ''
    returnType: void
    signature: void ncclOsSocketResetAccept(struct ncclSocket* sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:245,1
    - Dst: socket
      Src: /src/nccl/src/os/linux.cc:245,1
    - Dst: ncclOsSocketIsValid
      Src: /src/nccl/src/os/linux.cc:247,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:248,1
    - Dst: dup2
      Src: /src/nccl/src/os/linux.cc:248,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:249,1
    - Dst: close
      Src: /src/nccl/src/os/linux.cc:249,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:253,1
    - Dst: ncclOsSocketSetFlags
      Src: /src/nccl/src/os/linux.cc:253,1
    - Dst: close
      Src: /src/nccl/src/os/linux.cc:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: ncclOsSocketResetFd
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached:
    - ncclOsSocketIsValid
    - close
    - ncclOsSocketSetFlags
    - socket
    - dup2
    - NCCLCHECKGOTO
    - SYSCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketResetFd(struct ncclSocket* sock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamRetryCnt
      Src: /src/nccl/src/os/linux.cc:273,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:275,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/linux.cc:276,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:276,1
    - Dst: ncclParamRetryTimeOut
      Src: /src/nccl/src/os/linux.cc:279,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:280,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/linux.cc:281,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:281,1
    - Dst: ncclParamRetryCnt
      Src: /src/nccl/src/os/linux.cc:282,1
    - Dst: std::this_thread::sleep_for
      Src: /src/nccl/src/os/linux.cc:283,1
    - Dst: std::chrono::milliseconds
      Src: /src/nccl/src/os/linux.cc:283,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/os/linux.cc:285,1
    - Dst: ncclOsSocketResetFd
      Src: /src/nccl/src/os/linux.cc:285,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:289,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/linux.cc:289,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:289,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - sock
    - errCode
    - funcName
    argTypes:
    - struct ncclSocket*
    - int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 293
    functionName: socketConnectCheck
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached:
    - INFO
    - std::this_thread::sleep_for
    - std::chrono::milliseconds
    - ncclParamRetryCnt
    - strerror
    - ncclOsSocketResetFd
    - ncclParamRetryTimeOut
    - WARN
    - ncclSocketToString
    - NCCLCHECK
    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/os/linux.cc:297,1
    - Dst: socketConnectCheck
      Src: /src/nccl/src/os/linux.cc:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: ncclOsSocketStartConnect
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - connect
    - socketConnectCheck
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketStartConnect(struct ncclSocket* sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/os/linux.cc:307,1
    - Dst: poll
      Src: /src/nccl/src/os/linux.cc:310,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:315,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/linux.cc:315,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:315,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/os/linux.cc:320,1
    - Dst: getsockopt
      Src: /src/nccl/src/os/linux.cc:320,1
    - Dst: socketConnectCheck
      Src: /src/nccl/src/os/linux.cc:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 322
    functionName: ncclOsSocketPollConnect
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached:
    - socketConnectCheck
    - getsockopt
    - strerror
    - poll
    - memset
    - SYSCHECK
    - WARN
    - ncclSocketToString
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketPollConnect(struct ncclSocket* sock)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/nccl/src/os/linux.cc:331,1
    - Dst: send
      Src: /src/nccl/src/os/linux.cc:332,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:343,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/linux.cc:344,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:344,1
    - Dst: std::atomic_load_explicit
      Src: /src/nccl/src/os/linux.cc:351,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:352,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 32
    argCount: 7
    argNames:
    - op
    - sock
    - ptr
    - size
    - offset
    - block
    - closed
    argTypes:
    - int
    - struct ncclSocket*
    - void*
    - int
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 357
    functionName: ncclOsSocketProgressOpt
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached:
    - send
    - INFO
    - strerror
    - std::atomic_load_explicit
    - recv
    - WARN
    - ncclSocketToString
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSocketProgressOpt(int op, struct ncclSocket* sock,
      void* ptr, int size, int* offset, int block, int* closed)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: parseStringList
      Src: /src/nccl/src/os/linux.cc:369,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/os/linux.cc:373,1
    - Dst: getifaddrs
      Src: /src/nccl/src/os/linux.cc:373,1
    - Dst: TRACE
      Src: /src/nccl/src/os/linux.cc:385,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/linux.cc:385,1
    - Dst: IN6_IS_ADDR_LOOPBACK
      Src: /src/nccl/src/os/linux.cc:394,1
    - Dst: matchIfList
      Src: /src/nccl/src/os/linux.cc:398,1
    - Dst: strcmp
      Src: /src/nccl/src/os/linux.cc:406,1
    - Dst: strncpy
      Src: /src/nccl/src/os/linux.cc:411,1
    - Dst: memset
      Src: /src/nccl/src/os/linux.cc:414,1
    - Dst: memcpy
      Src: /src/nccl/src/os/linux.cc:415,1
    - Dst: freeifaddrs
      Src: /src/nccl/src/os/linux.cc:419,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 39
    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: 421
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 421
    functionName: ncclOsFindInterfaces
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - matchIfList
    - TRACE
    - IN6_IS_ADDR_LOOPBACK
    - memcpy
    - strncpy
    - memset
    - strcmp
    - parseStringList
    - freeifaddrs
    - SYSCHECK
    - getifaddrs
    - ncclSocketToString
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclOsFindInterfaces(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/os/linux.cc:461,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - local_if
    - remote
    argTypes:
    - struct ifaddrs
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 464
    functionName: matchSubnet
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    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/os/linux.cc:474,1
    - Dst: getifaddrs
      Src: /src/nccl/src/os/linux.cc:474,1
    - Dst: matchSubnet
      Src: /src/nccl/src/os/linux.cc:484,1
    - Dst: memcpy
      Src: /src/nccl/src/os/linux.cc:490,1
    - Dst: strncpy
      Src: /src/nccl/src/os/linux.cc:493,1
    - Dst: TRACE
      Src: /src/nccl/src/os/linux.cc:495,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/linux.cc:496,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/os/linux.cc:496,1
    - Dst: freeifaddrs
      Src: /src/nccl/src/os/linux.cc:500,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: 502
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 502
    functionName: ncclFindInterfaceMatchSubnet
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached:
    - TRACE
    - getifaddrs
    - memcpy
    - freeifaddrs
    - matchSubnet
    - SYSCHECK
    - strncpy
    - ncclSocketToString
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclFindInterfaceMatchSubnet(char* ifName, union ncclSocketAddress*
      localAddr,\n                                          union ncclSocketAddress*
      remoteAddr, int ifNameMaxSize, int* found)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsSocketIsValid
      Src: /src/nccl/src/os/linux.cc:506,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/os/linux.cc:512,1
    - Dst: shutdown
      Src: /src/nccl/src/os/linux.cc:519,1
    - Dst: close
      Src: /src/nccl/src/os/linux.cc:520,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - sock
    - wait
    argTypes:
    - struct ncclSocket*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 526
    functionName: ncclSocketClose
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 26
    functionsReached:
    - ncclSocketProgress
    - ncclOsSocketIsValid
    - shutdown
    - close
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketClose(struct ncclSocket* sock, bool wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutexattr_init
      Src: /src/nccl/src/os/linux.cc:530,1
    - Dst: pthread_mutexattr_setpshared
      Src: /src/nccl/src/os/linux.cc:531,1
    - Dst: std::mutex::native_handle
      Src: /src/nccl/src/os/linux.cc:532,1
    - Dst: pthread_mutex_init
      Src: /src/nccl/src/os/linux.cc:533,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/nccl/src/os/linux.cc:534,1
    - Dst: pthread_condattr_init
      Src: /src/nccl/src/os/linux.cc:537,1
    - Dst: pthread_condattr_setpshared
      Src: /src/nccl/src/os/linux.cc:538,1
    - Dst: std::condition_variable::native_handle
      Src: /src/nccl/src/os/linux.cc:539,1
    - Dst: pthread_cond_init
      Src: /src/nccl/src/os/linux.cc:540,1
    - Dst: pthread_condattr_destroy
      Src: /src/nccl/src/os/linux.cc:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - mutex
    - cond
    argTypes:
    - std::mutex
    - std::condition_variable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 542
    functionName: ncclOsSetMutexCondShared
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - pthread_mutex_init
    - pthread_condattr_setpshared
    - std::condition_variable::native_handle
    - pthread_mutexattr_init
    - pthread_condattr_init
    - pthread_mutexattr_destroy
    - pthread_cond_init
    - std::mutex::native_handle
    - pthread_condattr_destroy
    - pthread_mutexattr_setpshared
    linkageType: ''
    returnType: void
    signature: void ncclOsSetMutexCondShared(std::mutex &mutex, std::condition_variable
      &cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_ZERO
      Src: /src/nccl/src/os/linux.cc:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' affinity'
    argTypes:
    - ncclAffinity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 546
    functionName: ncclOsCpuZero
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 3
    functionsReached:
    - CPU_ZERO
    linkageType: ''
    returnType: void
    signature: void ncclOsCpuZero(ncclAffinity& affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_COUNT
      Src: /src/nccl/src/os/linux.cc:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' affinity'
    argTypes:
    - ncclAffinity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 550
    functionName: ncclOsCpuCount
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 7
    functionsReached:
    - CPU_COUNT
    linkageType: ''
    returnType: int
    signature: int ncclOsCpuCount(const ncclAffinity& affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_SET
      Src: /src/nccl/src/os/linux.cc:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' affinity'
    - cpu
    argTypes:
    - ncclAffinity
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 554
    functionName: ncclOsCpuSet
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached:
    - CPU_SET
    linkageType: ''
    returnType: void
    signature: void ncclOsCpuSet(ncclAffinity& affinity, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_ISSET
      Src: /src/nccl/src/os/linux.cc:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' affinity'
    - cpu
    argTypes:
    - ncclAffinity
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 558
    functionName: ncclOsCpuIsSet
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 2
    functionsReached:
    - CPU_ISSET
    linkageType: ''
    returnType: bool
    signature: bool ncclOsCpuIsSet(const ncclAffinity& affinity, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_AND
      Src: /src/nccl/src/os/linux.cc:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - ncclAffinity
    - ncclAffinity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 564
    functionName: ncclOsCpuAnd
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - CPU_AND
    linkageType: ''
    returnType: ncclAffinity
    signature: ncclAffinity ncclOsCpuAnd(const ncclAffinity& a, const ncclAffinity&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_getaffinity
      Src: /src/nccl/src/os/linux.cc:567,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:569,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - affinity
    argTypes:
    - ncclAffinity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 573
    functionName: ncclOsGetAffinity
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 3
    functionsReached:
    - strerror
    - WARN
    - sched_getaffinity
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsGetAffinity(ncclAffinity* affinity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_setaffinity
      Src: /src/nccl/src/os/linux.cc:576,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:578,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' affinity'
    argTypes:
    - ncclAffinity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 582
    functionName: ncclOsSetAffinity
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 6
    functionsReached:
    - sched_setaffinity
    - strerror
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsSetAffinity(const ncclAffinity& affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sched_getcpu
      Src: /src/nccl/src/os/linux.cc:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 586
    functionName: ncclOsGetCpu
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 3
    functionsReached:
    - sched_getcpu
    linkageType: ''
    returnType: int
    signature: int ncclOsGetCpu()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclOsDlopen
      Src: /src/nccl/src/os/linux.cc:591,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:593,1
    - Dst: ncclOsDlerror
      Src: /src/nccl/src/os/linux.cc:593,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclOsLibraryHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 599
    functionName: ncclOsNvmlOpen
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - ncclOsDlerror
    - INFO
    - WARN
    - ncclOsDlopen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsNvmlOpen(ncclOsLibraryHandle* handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/os/linux.cc:621,1
    - Dst: malloc
      Src: /src/nccl/src/os/linux.cc:622,1
    - Dst: memcpy
      Src: /src/nccl/src/os/linux.cc:623,1
    - Dst: memset
      Src: /src/nccl/src/os/linux.cc:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 8
    argNames:
    - shmDesc
    - shmPath
    - shmSize
    - realShmSize
    - hptr
    - dptr
    - create
    - handle
    argTypes:
    - ncclShmDescriptor
    - char*
    - size_t
    - size_t
    - char*
    - void*
    - bool
    - struct ncclShmHandleInternal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 628
    functionName: ncclOsShmHandleInit
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - malloc
    - memcpy
    - memset
    - strlen
    linkageType: ''
    returnType: void
    signature: "void ncclOsShmHandleInit(ncclShmDescriptor shmDesc, char* shmPath,
      size_t shmSize, size_t realShmSize,\n                         char* hptr, void*
      dptr, bool create,\n                         struct ncclShmHandleInternal* handle)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EQCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:644,1
    - Dst: calloc
      Src: /src/nccl/src/os/linux.cc:644,1
    - Dst: snprintf
      Src: /src/nccl/src/os/linux.cc:648,1
    - Dst: mkstemp
      Src: /src/nccl/src/os/linux.cc:650,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:653,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:653,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:656,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:656,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:661,1
    - Dst: open
      Src: /src/nccl/src/os/linux.cc:661,1
    - Dst: fallocate
      Src: /src/nccl/src/os/linux.cc:665,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:667,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:667,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:670,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:670,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:674,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/os/linux.cc:676,1
    - Dst: open
      Src: /src/nccl/src/os/linux.cc:676,1
    - Dst: mmap
      Src: /src/nccl/src/os/linux.cc:679,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:681,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:681,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/os/linux.cc:690,1
    - Dst: unlink
      Src: /src/nccl/src/os/linux.cc:692,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:693,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:693,1
    - Dst: INFO
      Src: /src/nccl/src/os/linux.cc:699,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/os/linux.cc:701,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/os/linux.cc:701,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/os/linux.cc:702,1
    - Dst: cudaHostRegister
      Src: /src/nccl/src/os/linux.cc:702,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/os/linux.cc:703,1
    - Dst: cudaHostGetDevicePointer
      Src: /src/nccl/src/os/linux.cc:703,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/os/linux.cc:704,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/os/linux.cc:704,1
    - Dst: ncclOsShmHandleInit
      Src: /src/nccl/src/os/linux.cc:707,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:714,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:715,1
    - Dst: ncclOsShmHandleInit
      Src: /src/nccl/src/os/linux.cc:717,1
    - Dst: ncclOsShmClose
      Src: /src/nccl/src/os/linux.cc:718,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 85
    argCount: 7
    argNames:
    - shmPath
    - shmPathSize
    - shmSize
    - shmPtr
    - devShmPtr
    - refcount
    - handle
    argTypes:
    - char*
    - size_t
    - size_t
    - void**
    - void**
    - int
    - struct ncclShmHandleInternal**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 724
    functionName: ncclOsShmOpen
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - calloc
    - open
    - cudaHostRegister
    - mmap
    - WARN
    - cudaHostGetDevicePointer
    - ncclAtomicRefCountDecrement
    - INFO
    - mkstemp
    - ncclOsShmHandleInit
    - unlink
    - cudaThreadExchangeStreamCaptureMode
    - ncclOsShmClose
    - fallocate
    - CUDACHECKGOTO
    - SYSCHECKGOTO
    - strerror
    - snprintf
    - EQCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclOsShmOpen(char* shmPath, size_t shmPathSize, size_t
      shmSize,\n                           void** shmPtr, void** devShmPtr, int refcount,\n
      \                          struct ncclShmHandleInternal** handle)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/nccl/src/os/linux.cc:730,1
    - Dst: unlink
      Src: /src/nccl/src/os/linux.cc:732,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:733,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:733,1
    - Dst: free
      Src: /src/nccl/src/os/linux.cc:737,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/os/linux.cc:741,1
    - Dst: cudaHostUnregister
      Src: /src/nccl/src/os/linux.cc:741,1
    - Dst: munmap
      Src: /src/nccl/src/os/linux.cc:742,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:743,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:743,1
    - Dst: free
      Src: /src/nccl/src/os/linux.cc:747,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct ncclShmHandleInternal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 750
    functionName: ncclOsShmClose
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 3
    functionsReached:
    - close
    - cudaHostUnregister
    - munmap
    - strerror
    - unlink
    - free
    - CUDACHECK
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsShmClose(struct ncclShmHandleInternal* handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/nccl/src/os/linux.cc:756,1
    - Dst: WARN
      Src: /src/nccl/src/os/linux.cc:757,1
    - Dst: strerror
      Src: /src/nccl/src/os/linux.cc:757,1
    - Dst: free
      Src: /src/nccl/src/os/linux.cc:760,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct ncclShmHandleInternal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 765
    functionName: ncclOsShmUnlink
    functionSourceFile: /src/nccl/src/os/linux.cc
    functionUses: 1
    functionsReached:
    - free
    - strerror
    - WARN
    - unlink
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclOsShmUnlink(struct ncclShmHandleInternal* handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/os/windows_ipcsocket.cc:44,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:46,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows_ipcsocket.cc:50,1
    - Dst: CreateNamedPipeA
      Src: /src/nccl/src/os/windows_ipcsocket.cc:53,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:67,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows_ipcsocket.cc:67,1
    - Dst: strncpy
      Src: /src/nccl/src/os/windows_ipcsocket.cc:73,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows_ipcsocket.cc:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - handle
    - rank
    - hash
    - abortFlag
    argTypes:
    - ncclIpcSocket*
    - int
    - uint64_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 78
    functionName: ncclIpcSocketInit
    functionSourceFile: /src/nccl/src/os/windows_ipcsocket.cc
    functionUses: 4
    functionsReached:
    - TRACE
    - GetLastError
    - CreateNamedPipeA
    - strncpy
    - snprintf
    - WARN
    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/os/windows_ipcsocket.cc:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - fd
    argTypes:
    - struct ncclIpcSocket*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: ncclIpcSocketGetFd
    functionSourceFile: /src/nccl/src/os/windows_ipcsocket.cc
    functionUses: 2
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketGetFd(struct ncclIpcSocket* handle, int*
      fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DisconnectNamedPipe
      Src: /src/nccl/src/os/windows_ipcsocket.cc:95,1
    - Dst: CloseHandle
      Src: /src/nccl/src/os/windows_ipcsocket.cc:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclIpcSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: ncclIpcSocketClose
    functionSourceFile: /src/nccl/src/os/windows_ipcsocket.cc
    functionUses: 4
    functionsReached:
    - DisconnectNamedPipe
    - CloseHandle
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketClose(ncclIpcSocket *handle)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:104,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows_ipcsocket.cc:113,1
    - Dst: ConnectNamedPipe
      Src: /src/nccl/src/os/windows_ipcsocket.cc:116,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows_ipcsocket.cc:117,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:118,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows_ipcsocket.cc:118,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows_ipcsocket.cc:122,1
    - Dst: ReadFile
      Src: /src/nccl/src/os/windows_ipcsocket.cc:126,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows_ipcsocket.cc:132,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/os/windows_ipcsocket.cc:135,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:136,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:142,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows_ipcsocket.cc:146,1
    - Dst: memcpy
      Src: /src/nccl/src/os/windows_ipcsocket.cc:150,1
    - Dst: DuplicateHandle
      Src: /src/nccl/src/os/windows_ipcsocket.cc:156,1
    - Dst: GetCurrentProcess
      Src: /src/nccl/src/os/windows_ipcsocket.cc:159,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:167,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows_ipcsocket.cc:167,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows_ipcsocket.cc:172,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 4
    argNames:
    - handle
    - hdr
    - hdrLen
    - recvFd
    argTypes:
    - ncclIpcSocket*
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 176
    functionName: ncclIpcSocketRecvMsg
    functionSourceFile: /src/nccl/src/os/windows_ipcsocket.cc
    functionUses: 3
    functionsReached:
    - DuplicateHandle
    - TRACE
    - GetLastError
    - memcpy
    - COMPILER_ATOMIC_LOAD
    - ReadFile
    - GetCurrentProcess
    - WARN
    - ConnectNamedPipe
    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/os/windows_ipcsocket.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - fd
    argTypes:
    - ncclIpcSocket*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: ncclIpcSocketRecvFd
    functionSourceFile: /src/nccl/src/os/windows_ipcsocket.cc
    functionUses: 0
    functionsReached:
    - ncclIpcSocketRecvMsg
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketRecvFd(ncclIpcSocket *handle, int *fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/os/windows_ipcsocket.cc:185,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:187,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows_ipcsocket.cc:191,1
    - Dst: CreateFileA
      Src: /src/nccl/src/os/windows_ipcsocket.cc:197,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows_ipcsocket.cc:211,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:213,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/os/windows_ipcsocket.cc:218,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:219,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows_ipcsocket.cc:224,1
    - Dst: SetNamedPipeHandleState
      Src: /src/nccl/src/os/windows_ipcsocket.cc:228,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:229,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows_ipcsocket.cc:229,1
    - Dst: CloseHandle
      Src: /src/nccl/src/os/windows_ipcsocket.cc:230,1
    - Dst: memset
      Src: /src/nccl/src/os/windows_ipcsocket.cc:236,1
    - Dst: GetCurrentProcess
      Src: /src/nccl/src/os/windows_ipcsocket.cc:238,1
    - Dst: memcpy
      Src: /src/nccl/src/os/windows_ipcsocket.cc:243,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows_ipcsocket.cc:246,1
    - Dst: WriteFile
      Src: /src/nccl/src/os/windows_ipcsocket.cc:250,1
    - Dst: WARN
      Src: /src/nccl/src/os/windows_ipcsocket.cc:253,1
    - Dst: GetLastError
      Src: /src/nccl/src/os/windows_ipcsocket.cc:253,1
    - Dst: CloseHandle
      Src: /src/nccl/src/os/windows_ipcsocket.cc:254,1
    - Dst: FlushFileBuffers
      Src: /src/nccl/src/os/windows_ipcsocket.cc:259,1
    - Dst: TRACE
      Src: /src/nccl/src/os/windows_ipcsocket.cc:261,1
    - Dst: CloseHandle
      Src: /src/nccl/src/os/windows_ipcsocket.cc:263,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 6
    argNames:
    - handle
    - hdr
    - hdrLen
    - sendFd
    - rank
    - hash
    argTypes:
    - ncclIpcSocket*
    - void*
    - int
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 265
    functionName: ncclIpcSocketSendMsg
    functionSourceFile: /src/nccl/src/os/windows_ipcsocket.cc
    functionUses: 3
    functionsReached:
    - TRACE
    - GetLastError
    - CreateFileA
    - memcpy
    - SetNamedPipeHandleState
    - WriteFile
    - CloseHandle
    - COMPILER_ATOMIC_LOAD
    - memset
    - FlushFileBuffers
    - GetCurrentProcess
    - snprintf
    - WARN
    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/os/windows_ipcsocket.cc:268,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: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: ncclIpcSocketSendFd
    functionSourceFile: /src/nccl/src/os/windows_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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - myRank
    argTypes:
    - struct ncclComm*
    - struct rasRankInit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: ncclRasCommInit
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRasCommInit(struct ncclComm* comm, struct rasRankInit*
      myRank)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ranks
    - nranks
    argTypes:
    - struct rasRankInit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: ncclRasAddRanks
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRasAddRanks(struct rasRankInit* ranks, int nranks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: ncclRasCommFini
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRasCommFini(const struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: ncclNetInit
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetInit(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - parent
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: ncclNetInitFromParent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetInitFromParent(struct ncclComm* comm, struct ncclComm*
      parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/os/windows_stubs.cc:64,1
    - Dst: struct ncclComm*::ncclNet::finalize
      Src: /src/nccl/src/os/windows_stubs.cc:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: ncclNetFinalize
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached:
    - struct ncclComm*::ncclNet::finalize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetFinalize(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - gdrSupport
    argTypes:
    - struct ncclComm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ncclGpuGdrSupport
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGpuGdrSupport(struct ncclComm* comm, int* gdrSupport)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: ncclEnvPluginInitialized
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclEnvPluginInitialized(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: ncclEnvPluginInit
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclEnvPluginInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/nccl/src/os/windows_stubs.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: ncclEnvPluginGetEnv
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached:
    - std::getenv
    linkageType: ''
    returnType: char
    signature: char * ncclEnvPluginGetEnv(const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - netPluginIndex
    - nPhysDev
    - nVirtDev
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: ncclNetGetDevCount
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetGetDevCount(int netPluginIndex, int* nPhysDev,
      int* nVirtDev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - netPluginIndex
    - nVirtDev
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: ncclNetSetVirtDevCount
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSetVirtDevCount(int netPluginIndex, int nVirtDev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - netPluginIndex
    - nPhysDev
    - nVirtDev
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: ncclCollNetGetDevCount
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNetGetDevCount(int netPluginIndex, int* nPhysDev,
      int* nVirtDev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - netPluginIndex
    - nVirtDev
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: ncclCollNetSetVirtDevCount
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNetSetVirtDevCount(int netPluginIndex, int nVirtDev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - ginType
    argTypes:
    - struct ncclComm*
    - ncclGinType_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: getGlobalGinType
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getGlobalGinType(struct ncclComm* comm, ncclGinType_t*
      ginType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/os/windows_stubs.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - comm
    - team
    - nBarriers
    - outHandle
    - outReq
    argTypes:
    - ncclComm_t
    - ncclTeam_t
    - int
    - ncclGinBarrierHandle_t*
    - ncclDevResourceRequirements_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: ncclGinBarrierCreateRequirement
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinBarrierCreateRequirement(ncclComm_t comm, ncclTeam_t
      team, int nBarriers,\n                                            ncclGinBarrierHandle_t*
      outHandle, ncclDevResourceRequirements_t* outReq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/os/windows_stubs.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - nBlocks
    - size_log2
    - outHandle
    - outReq
    argTypes:
    - int
    - int
    - ncclGinOutboxHandle*
    - ncclDevResourceRequirements_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: ncclGinOutboxCreateRequirement
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinOutboxCreateRequirement(int nBlocks, int size_log2,\n
      \                                           ncclGinOutboxHandle* outHandle,
      ncclDevResourceRequirements_t* outReq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/os/windows_stubs.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - peers
    - nBlocks
    - size_log2
    - outHandle
    - outReq
    argTypes:
    - ncclTeam
    - int
    - int
    - ncclGinInboxA2AHandle*
    - ncclDevResourceRequirements_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: ncclGinInboxA2ACreateRequirement
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinInboxA2ACreateRequirement(ncclTeam peers, int
      nBlocks, int size_log2,\n                                              ncclGinInboxA2AHandle*
      outHandle, ncclDevResourceRequirements_t* outReq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - ginType
    argTypes:
    - struct ncclComm*
    - ncclGinType_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: getGlobalRailedGinType
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getGlobalRailedGinType(struct ncclComm* comm, ncclGinType_t*
      ginType)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ncclGinConnectOnce
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinConnectOnce(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - comm
    - reqs
    - devComm
    argTypes:
    - struct ncclComm*
    - struct ncclDevCommRequirements*
    - struct ncclDevComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: ncclGinDevCommSetup
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinDevCommSetup(struct ncclComm* comm, struct ncclDevCommRequirements
      const* reqs, struct ncclDevComm* devComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - devComm
    argTypes:
    - struct ncclComm*
    - struct ncclDevComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: ncclGinDevCommFree
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinDevCommFree(struct ncclComm* comm, struct ncclDevComm
      const* devComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 8
    argNames:
    - comm
    - address
    - size
    - ginHostWins
    - ginDevWins
    - winFlags
    - multiSegment
    - memType
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - void*[]
    - ncclGinWindow_t[]
    - int
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 194
    functionName: ncclGinRegister
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclGinRegister(struct ncclComm* comm, void* address,
      size_t size,\n                             void* ginHostWins[NCCL_GIN_MAX_CONNECTIONS],\n
      \                            ncclGinWindow_t ginDevWins[NCCL_GIN_MAX_CONNECTIONS],
      int winFlags,\n                             bool multiSegment, int memType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - ginHostWins
    argTypes:
    - struct ncclComm*
    - void*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: ncclGinDeregister
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinDeregister(struct ncclComm* comm, void* ginHostWins[NCCL_GIN_MAX_CONNECTIONS])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ginPluginIndex
    - nPhysDev
    - nVirtDev
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: ncclGinGetDevCount
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinGetDevCount(int ginPluginIndex, int* nPhysDev,
      int* nVirtDev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: ncclParamPollTimeOut
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclParamPollTimeOut(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: ncclParamRetryTimeOut
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclParamRetryTimeOut(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: ncclParamRetryCnt
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long ncclParamRetryCnt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: ncclParamSocketMaxRecvBuff
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclParamSocketMaxRecvBuff(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: ncclParamSocketMaxSendBuff
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclParamSocketMaxSendBuff(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: ncclParamIbDataDirect
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t ncclParamIbDataDirect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: ncclParamGinEnable
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t ncclParamGinEnable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: ncclProfilerPluginLoaded
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclProfilerPluginLoaded(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: ncclProfilerPluginInit
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerPluginInit(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: ncclProfilerPluginFinalize
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerPluginFinalize(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - info
    - isGraphCaptured
    argTypes:
    - struct ncclInfo*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: ncclProfilerStartGroupApiEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartGroupApiEvent(struct ncclInfo* info,
      bool isGraphCaptured)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: ncclProfilerStopGroupApiEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopGroupApiEvent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - eState
    argTypes:
    - ncclProfilerEventState_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: ncclProfilerRecordGroupApiEventState
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerRecordGroupApiEventState(ncclProfilerEventState_t
      eState)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - info
    - isGraphCaptured
    argTypes:
    - struct ncclInfo*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: ncclProfilerStartP2pApiEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartP2pApiEvent(struct ncclInfo* info, bool
      isGraphCaptured)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: ncclProfilerStopP2pApiEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopP2pApiEvent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - info
    - isGraphCaptured
    argTypes:
    - struct ncclInfo*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: ncclProfilerStartCollApiEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartCollApiEvent(struct ncclInfo* info, bool
      isGraphCaptured)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: ncclProfilerStopCollApiEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopCollApiEvent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - plan
    - stream
    argTypes:
    - struct ncclKernelPlan*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: ncclProfilerStartKernelLaunchEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartKernelLaunchEvent(struct ncclKernelPlan*
      plan, cudaStream_t stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: ncclProfilerStopKernelLaunchEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopKernelLaunchEvent(struct ncclKernelPlan*
      plan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: ncclProfilerStartGroupEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartGroupEvent(struct ncclKernelPlan* plan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: ncclProfilerStopGroupEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopGroupEvent(struct ncclKernelPlan* plan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: ncclProfilerStartTaskEvents
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartTaskEvents(struct ncclKernelPlan* plan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: ncclProfilerStopTaskEvents
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopTaskEvents(struct ncclKernelPlan* plan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: ncclProfilerAddPidToProxyOp
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerAddPidToProxyOp(struct ncclProxyOp* op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sub
    - args
    argTypes:
    - int
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: ncclProfilerStartProxyOpEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartProxyOpEvent(int sub, struct ncclProxyArgs*
      args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sub
    - args
    argTypes:
    - int
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: ncclProfilerStopProxyOpEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopProxyOpEvent(int sub, struct ncclProxyArgs*
      args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sub
    - args
    - stepId
    argTypes:
    - int
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: ncclProfilerStartSendProxyStepEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartSendProxyStepEvent(int sub, struct ncclProxyArgs*
      args, int stepId)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sub
    - args
    - stepId
    argTypes:
    - int
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: ncclProfilerStartRecvProxyStepEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartRecvProxyStepEvent(int sub, struct ncclProxyArgs*
      args, int stepId)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sub
    - args
    - stepId
    argTypes:
    - int
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: ncclProfilerStopProxyStepEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopProxyStepEvent(int sub, struct ncclProxyArgs*
      args, int stepId)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - profilerContext
    - eHandle
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: ncclProfilerStartProxyCtrlEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartProxyCtrlEvent(void* profilerContext,
      void** eHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - eHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: ncclProfilerStopProxyCtrlEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopProxyCtrlEvent(void* eHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - s
    - start
    argTypes:
    - struct ncclProxyArgs*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: ncclProfilerStartKernelChEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartKernelChEvent(struct ncclProxyArgs* args,
      int s, uint64_t start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - s
    - stop
    argTypes:
    - struct ncclProxyArgs*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: ncclProfilerStopKernelChEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopKernelChEvent(struct ncclProxyArgs* args,
      int s, uint64_t stop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sub
    - args
    - eState
    argTypes:
    - int
    - struct ncclProxyArgs*
    - ncclProfilerEventState_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: ncclProfilerRecordProxyOpEventState
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerRecordProxyOpEventState(int sub, struct ncclProxyArgs*
      args, ncclProfilerEventState_t eState)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - sub
    - args
    - stepId
    - eState
    argTypes:
    - int
    - struct ncclProxyArgs*
    - int
    - ncclProfilerEventState_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: ncclProfilerRecordProxyStepEventState
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerRecordProxyStepEventState(int sub, struct
      ncclProxyArgs* args, int stepId, ncclProfilerEventState_t eState)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - eHandle
    - appended
    - eState
    argTypes:
    - void*
    - int
    - ncclProfilerEventState_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 412
    functionName: ncclProfilerRecordProxyCtrlEventState
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerRecordProxyCtrlEventState(void* eHandle, int
      appended, ncclProfilerEventState_t eState)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - op
    argTypes:
    - struct ncclComm*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 418
    functionName: ncclProfilerNeedsProxy
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclProfilerNeedsProxy(struct ncclComm* comm, struct ncclProxyOp*
      op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - comm
    - args
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 426
    functionName: ncclProfilerStartCeCollEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartCeCollEvent(struct ncclComm* comm, struct
      ncclCeCollArgs* args, cudaStream_t stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - comm
    - args
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 433
    functionName: ncclProfilerStopCeCollEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopCeCollEvent(struct ncclComm* comm, struct
      ncclCeCollArgs* args, cudaStream_t stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - comm
    - args
    - stream
    - ceSyncHandle
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - cudaStream_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 441
    functionName: ncclProfilerStartCeSyncEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartCeSyncEvent(struct ncclComm* comm, struct
      ncclCeCollArgs* args, cudaStream_t stream, void** ceSyncHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - comm
    - ceSyncHandle
    - stream
    argTypes:
    - struct ncclComm*
    - void*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: ncclProfilerStopCeSyncEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopCeSyncEvent(struct ncclComm* comm, void*
      ceSyncHandle, cudaStream_t stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - comm
    - args
    - params
    - stream
    - ceBatchHandle
    argTypes:
    - struct ncclComm*
    - struct ncclCeCollArgs*
    - struct ncclCeBatchOpsParams*
    - cudaStream_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 457
    functionName: ncclProfilerStartCeBatchEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartCeBatchEvent(struct ncclComm* comm, struct
      ncclCeCollArgs* args, struct ncclCeBatchOpsParams* params, cudaStream_t stream,
      void** ceBatchHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - comm
    - ceBatchHandle
    - stream
    argTypes:
    - struct ncclComm*
    - void*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: ncclProfilerStopCeBatchEvent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopCeBatchEvent(struct ncclComm* comm, void*
      ceBatchHandle, cudaStream_t stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: ncclTunerPluginLoad
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTunerPluginLoad(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: ncclTunerPluginUnload
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTunerPluginUnload(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: ncclGinHostFinalize
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinHostFinalize(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ginState
    - hasError
    argTypes:
    - struct ncclGinState*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 491
    functionName: ncclGinQueryLastError
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinQueryLastError(struct ncclGinState* ginState, bool*
      hasError)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 496
    functionName: ncclGinInit
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinInit(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - parent
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: ncclGinInitFromParent
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinInitFromParent(struct ncclComm* comm, struct ncclComm*
      parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: ncclGinFinalize
    functionSourceFile: /src/nccl/src/os/windows_stubs.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGinFinalize(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/devcomm/devcomm_v22907.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - props
    argTypes:
    - ncclComm_t
    - struct ncclCommProperties*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: ncclCommPropertiesFilter_v22907
    functionSourceFile: /src/nccl/src/devcomm/devcomm_v22907.cc
    functionUses: 0
    functionsReached:
    - ncclTeamLsa
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommPropertiesFilter_v22907(ncclComm_t comm, struct
      ncclCommProperties* props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/devcomm/devcomm_v22907.cc:90,1
    - Dst: ncclVersionToString
      Src: /src/nccl/src/devcomm/devcomm_v22907.cc:91,1
    - Dst: ncclVersionToString
      Src: /src/nccl/src/devcomm/devcomm_v22907.cc:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 2
    argNames:
    - comm
    - reqs
    argTypes:
    - ncclComm_t
    - ncclDevCommRequirements_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 97
    functionName: ncclDevCommRequirementsFilter_v22907
    functionSourceFile: /src/nccl/src/devcomm/devcomm_v22907.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclVersionToString
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDevCommRequirementsFilter_v22907(ncclComm_t comm,
      ncclDevCommRequirements_t* reqs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/devcomm/devcomm_v22907.cc:103,1
    - Dst: ncclDevCommCopyLsaData
      Src: /src/nccl/src/devcomm/devcomm_v22907.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - comm
    - oldDevComm
    - newDevComm
    argTypes:
    - ncclComm_t
    - void*
    - struct ncclDevComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: ncclDevCommCopyNewToOld_v22907
    functionSourceFile: /src/nccl/src/devcomm/devcomm_v22907.cc
    functionUses: 0
    functionsReached:
    - ncclDevCommCopyLsaData
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclDevCommCopyNewToOld_v22907(ncclComm_t comm, void*
      oldDevComm,\n                                                   struct ncclDevComm
      const* newDevComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclTeamLsa
      Src: /src/nccl/src/devcomm/devcomm_v22902.cc:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - props
    argTypes:
    - ncclComm_t
    - struct ncclCommProperties*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: ncclCommPropertiesFilter_v22902
    functionSourceFile: /src/nccl/src/devcomm/devcomm_v22902.cc
    functionUses: 0
    functionsReached:
    - ncclTeamLsa
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommPropertiesFilter_v22902(ncclComm_t comm, struct
      ncclCommProperties* props)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/devcomm/devcomm_v22902.cc:111,1
    - Dst: ncclVersionToString
      Src: /src/nccl/src/devcomm/devcomm_v22902.cc:112,1
    - Dst: ncclVersionToString
      Src: /src/nccl/src/devcomm/devcomm_v22902.cc:113,1
    - Dst: std::max
      Src: /src/nccl/src/devcomm/devcomm_v22902.cc:119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - comm
    - reqs
    argTypes:
    - ncclComm_t
    - ncclDevCommRequirements_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 126
    functionName: ncclDevCommRequirementsFilter_v22902
    functionSourceFile: /src/nccl/src/devcomm/devcomm_v22902.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclVersionToString
    - std::max
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDevCommRequirementsFilter_v22902(ncclComm_t comm,
      ncclDevCommRequirements_t* reqs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/devcomm/devcomm_v22902.cc:132,1
    - Dst: ncclDevCommCopyLsaData
      Src: /src/nccl/src/devcomm/devcomm_v22902.cc:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - comm
    - oldDevComm
    - newDevComm
    argTypes:
    - ncclComm_t
    - void*
    - struct ncclDevComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: ncclDevCommCopyNewToOld_v22902
    functionSourceFile: /src/nccl/src/devcomm/devcomm_v22902.cc
    functionUses: 0
    functionsReached:
    - ncclDevCommCopyLsaData
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclDevCommCopyNewToOld_v22902(ncclComm_t comm, void*
      oldDevComm,\n                                                   struct ncclDevComm
      const* newDevComm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclDevCommCopyLsaData
      Src: /src/nccl/src/devcomm/devcomm_v22902.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - comm
    - newDevComm
    - oldDevComm
    argTypes:
    - ncclComm_t
    - struct ncclDevComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: ncclDevCommCopyOldToNew_v22902
    functionSourceFile: /src/nccl/src/devcomm/devcomm_v22902.cc
    functionUses: 0
    functionsReached:
    - ncclDevCommCopyLsaData
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclDevCommCopyOldToNew_v22902(ncclComm_t comm, struct
      ncclDevComm* newDevComm,\n                                                   void
      const* oldDevComm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:18,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:22,1
    - Dst: ncclGin_t*::test
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:22,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:24,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:28,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:30,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:31,1
    - Dst: ncclRmaProxyDestroyDescNonPersistent
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ncclGin
    - ctx
    - peer
    argTypes:
    - ncclGin_t*
    - struct ncclRmaProxyCtx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 38
    functionName: ncclRmaProxyPollNonPersistCompletion
    functionSourceFile: /src/nccl/src/rma/rma_proxy_progress.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclRmaProxyDestroyDescNonPersistent
    - COMPILER_ATOMIC_STORE
    - ncclGin_t*::test
    - ncclIntruQueueHead
    - ncclIntruQueueDequeue
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyPollNonPersistCompletion(ncclGin_t *ncclGin,
      struct ncclRmaProxyCtx *ctx, int peer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclRmaProxyCircularBufEmpty
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:44,1
    - Dst: COMPILER_ATOMIC_LOAD_32
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:46,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:51,1
    - Dst: COMPILER_ATOMIC_STORE_32
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:54,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:59,1
    - Dst: ncclGin_t*::iput
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:59,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:65,1
    - Dst: ncclGin_t*::iputSignal
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:65,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:73,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - ncclGin
    - ctx
    - peer
    argTypes:
    - ncclGin_t*
    - struct ncclRmaProxyCtx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 83
    functionName: ncclRmaProxyPollNonPersistDesc
    functionSourceFile: /src/nccl/src/rma/rma_proxy_progress.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclRmaProxyCircularBufEmpty
    - ncclGin_t*::iput
    - INFO
    - COMPILER_ATOMIC_LOAD_32
    - COMPILER_ATOMIC_STORE_32
    - COMPILER_ATOMIC_LOAD
    - ncclGin_t*::iputSignal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyPollNonPersistDesc(ncclGin_t *ncclGin, struct
      ncclRmaProxyCtx *ctx, int peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:92,1
    - Dst: ncclGin_t*::iput
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:92,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:96,1
    - Dst: ncclGin_t*::test
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ncclGin
    - ctx
    argTypes:
    - ncclGin_t*
    - struct ncclRmaProxyCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: ncclRmaProxyFlushNicGpuPath
    functionSourceFile: /src/nccl/src/rma/rma_proxy_progress.cc
    functionUses: 0
    functionsReached:
    - ncclGin_t*::test
    - ncclGin_t*::iput
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyFlushNicGpuPath(ncclGin_t *ncclGin, struct
      ncclRmaProxyCtx *ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:103,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:105,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:112,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:114,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:117,1
    - Dst: ncclGin_t*::iput
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:117,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:122,1
    - Dst: ncclGin_t*::iputSignal
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:122,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:130,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:135,1
    - Dst: ncclGin_t*::test
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:135,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:138,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:140,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:147,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:149,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:151,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:159,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:168,1
    - Dst: ncclRmaProxyFlushNicGpuPath
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:168,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:176,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:178,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 3
    argNames:
    - ncclGin
    - ctx
    - peer
    argTypes:
    - ncclGin_t*
    - struct ncclRmaProxyCtx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 187
    functionName: ncclRmaProxyPollPersistDesc
    functionSourceFile: /src/nccl/src/rma/rma_proxy_progress.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclGin_t*::iput
    - COMPILER_ATOMIC_STORE
    - ncclRmaProxyFlushNicGpuPath
    - ncclGin_t*::test
    - COMPILER_ATOMIC_LOAD
    - ncclGin_t*::iputSignal
    - ncclIntruQueueHead
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyPollPersistDesc(ncclGin_t *ncclGin, struct
      ncclRmaProxyCtx *ctx, int peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:196,1
    - Dst: ncclRmaProxyPollNonPersistCompletion
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:196,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:199,1
    - Dst: ncclRmaProxyPollNonPersistDesc
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:199,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:202,1
    - Dst: ncclRmaProxyPollPersistDesc
      Src: /src/nccl/src/rma/rma_proxy_progress.cc:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ncclGin
    - rmaProxyCtx
    argTypes:
    - ncclGin_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: ncclRmaProxyProgress
    functionSourceFile: /src/nccl/src/rma/rma_proxy_progress.cc
    functionUses: 0
    functionsReached:
    - ncclRmaProxyPollNonPersistCompletion
    - ncclRmaProxyPollPersistDesc
    - ncclRmaProxyPollNonPersistDesc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyProgress(ncclGin_t *ncclGin, void *rmaProxyCtx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclDevrGetRmaDevWin
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:32,1
    - Dst: ncclDevrGetRmaDevWin
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:34,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:35,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:50,1
    - Dst: allocMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:50,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:51,1
    - Dst: allocMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:51,1
    - Dst: freeMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 5
    argNames:
    - comm
    - rmaProxyCtx
    - plan
    - task
    - desc
    argTypes:
    - struct ncclComm*
    - struct ncclRmaProxyCtx*
    - struct ncclKernelPlan*
    - struct ncclTaskRma*
    - struct ncclRmaProxyDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 70
    functionName: ncclRmaProxyPutDescFromTask
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 0
    functionsReached:
    - freeMemCPUAccessible
    - ncclTypeSize
    - NCCLCHECKGOTO
    - allocMemCPUAccessible
    - ncclDevrGetRmaDevWin
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclRmaProxyPutDescFromTask(struct ncclComm* comm, struct
      ncclRmaProxyCtx* rmaProxyCtx,\n                          struct ncclKernelPlan*
      plan, struct ncclTaskRma* task, struct ncclRmaProxyDesc* desc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:94,1
    - Dst: allocMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:94,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:95,1
    - Dst: allocMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:95,1
    - Dst: freeMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 5
    argNames:
    - comm
    - rmaProxyCtx
    - plan
    - task
    - desc
    argTypes:
    - struct ncclComm*
    - struct ncclRmaProxyCtx*
    - struct ncclKernelPlan*
    - struct ncclTaskRma*
    - struct ncclRmaProxyDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 104
    functionName: ncclRmaProxyWaitDescFromTask
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - allocMemCPUAccessible
    - freeMemCPUAccessible
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclRmaProxyWaitDescFromTask(struct ncclComm* comm, struct
      ncclRmaProxyCtx* rmaProxyCtx,\n                          struct ncclKernelPlan*
      plan, struct ncclTaskRma* task, struct ncclRmaProxyDesc* desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct ncclRmaProxyDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: ncclRmaProxyDestroyDescNonPersistent
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyDestroyDescNonPersistent(struct ncclRmaProxyDesc*
      desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: freeMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:115,1
    - Dst: freeMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:118,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:121,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:122,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - comm
    - desc
    argTypes:
    - struct ncclComm*
    - struct ncclRmaProxyDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: ncclRmaProxyDestroyDescPersistent
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 0
    functionsReached:
    - free
    - freeMemCPUAccessible
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyDestroyDescPersistent(struct ncclComm* comm,
      struct ncclRmaProxyDesc* desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD_32
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:131,1
    - Dst: COMPILER_ATOMIC_LOAD_32
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - peer
    argTypes:
    - struct ncclRmaProxyCtx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: ncclRmaProxyCircularBufFull
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_LOAD_32
    linkageType: ''
    returnType: bool
    signature: bool ncclRmaProxyCircularBufFull(struct ncclRmaProxyCtx* ctx, int peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD_32
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:137,1
    - Dst: COMPILER_ATOMIC_LOAD_32
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - peer
    argTypes:
    - struct ncclRmaProxyCtx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: ncclRmaProxyCircularBufEmpty
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 1
    functionsReached:
    - COMPILER_ATOMIC_LOAD_32
    linkageType: ''
    returnType: bool
    signature: bool ncclRmaProxyCircularBufEmpty(struct ncclRmaProxyCtx* ctx, int
      peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPILER_ATOMIC_LOAD_32
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:144,1
    - Dst: COMPILER_ATOMIC_STORE_32
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - peer
    - desc
    argTypes:
    - struct ncclRmaProxyCtx*
    - int
    - struct ncclRmaProxyDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: ncclRmaProxyEnqueueNonPersistentDesc
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_LOAD_32
    - COMPILER_ATOMIC_STORE_32
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclRmaProxyEnqueueNonPersistentDesc(\n    struct ncclRmaProxyCtx*
      ctx, int peer, struct ncclRmaProxyDesc* desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:154,1
    - Dst: COMPILER_ATOMIC_STORE
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - peer
    - desc
    argTypes:
    - struct ncclRmaProxyCtx*
    - int
    - struct ncclRmaProxyDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: ncclRmaProxyEnqueuePersistentDesc
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - COMPILER_ATOMIC_STORE
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclRmaProxyEnqueuePersistentDesc(\n    struct ncclRmaProxyCtx*
      ctx, int peer, struct ncclRmaProxyDesc* desc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:166,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:178,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:178,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:183,1
    - Dst: ncclRmaProxyCircularBufFull
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:188,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:190,1
    - Dst: ncclCuStreamBatchMemOp
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:190,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:191,1
    - Dst: ncclCuStreamBatchMemOp
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:191,1
    - Dst: std::this_thread::yield
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:194,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:197,1
    - Dst: assert
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:198,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:200,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:200,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:201,1
    - Dst: ncclRmaProxyPutDescFromTask
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:201,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:223,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:224,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:228,1
    - Dst: ncclRmaProxyEnqueueNonPersistentDesc
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:228,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:230,1
    - Dst: ncclRmaProxyEnqueuePersistentDesc
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:230,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:237,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:242,1
    - Dst: ncclCuStreamBatchMemOp
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:242,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:244,1
    - Dst: ncclCuStreamBatchMemOp
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:244,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:245,1
    - Dst: ncclCuStreamBatchMemOp
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:245,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:249,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:252,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 3
    argNames:
    - comm
    - plan
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - cudaStream_t
    assertStmts:
    - condition: (task->ctx == ctx)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/nccl/src/rma/rma_proxy_launch.cc
    constantsTouched: []
    func_position:
      end: 254
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 254
    functionName: ncclRmaProxyPutLaunch
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - std::this_thread::yield
    - INFO
    - ncclRmaProxyPutDescFromTask
    - ncclRmaProxyCircularBufFull
    - ncclTypeSize
    - ncclRmaProxyEnqueueNonPersistentDesc
    - ncclRmaProxyEnqueuePersistentDesc
    - ncclMemoryPoolFree
    - assert
    - free
    - ncclCuStreamBatchMemOp
    - NCCLCHECKGOTO
    - ncclIntruQueueHead
    - WARN
    - ncclIntruQueueDequeue
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyPutLaunch(struct ncclComm* comm, struct ncclKernelPlan*
      plan, cudaStream_t stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:262,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:270,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:271,1
    - Dst: assert
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:273,1
    - Dst: assert
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:274,1
    - Dst: assert
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:275,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:284,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:284,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:296,1
    - Dst: ncclCuStreamBatchMemOp
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:296,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:300,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:300,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:301,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:301,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:302,1
    - Dst: ncclRmaProxyWaitDescFromTask
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:302,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:323,1
    - Dst: ncclRmaProxyEnqueuePersistentDesc
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:323,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:326,1
    - Dst: ncclCuStreamBatchMemOp
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:326,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:331,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:332,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:333,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:334,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:337,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 57
    argCount: 3
    argNames:
    - comm
    - plan
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - cudaStream_t
    assertStmts:
    - condition: (task->func == ncclFuncWaitSignal)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/nccl/src/rma/rma_proxy_launch.cc
    - condition: (plan->rmaArgs->nRmaTasksProxy == 1)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/nccl/src/rma/rma_proxy_launch.cc
    - condition: (task->ctx == ctx)
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/nccl/src/rma/rma_proxy_launch.cc
    constantsTouched: []
    func_position:
      end: 339
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 339
    functionName: ncclRmaProxyWaitLaunch
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - ncclIntruQueueHead
    - ncclRmaProxyEnqueuePersistentDesc
    - ncclRmaProxyWaitDescFromTask
    - assert
    - free
    - ncclMemoryPoolFree
    - ncclCuStreamBatchMemOp
    - NCCLCHECKGOTO
    - ncclIntruQueueDequeue
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyWaitLaunch(struct ncclComm* comm, struct ncclKernelPlan*
      plan, cudaStream_t stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:354,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:366,1
    - Dst: ncclRmaProxyDestroyDescPersistent
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:366,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - proxyState
    - plan
    argTypes:
    - struct ncclRmaProxyState*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 376
    functionName: ncclRmaProxyReclaimPersistDescs
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 0
    functionsReached:
    - ncclRmaProxyDestroyDescPersistent
    - NCCLCHECK
    - ncclIntruQueueHead
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyReclaimPersistDescs(struct ncclRmaProxyState*
      proxyState, struct ncclKernelPlan* plan)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ncclRmaProxyState*::cond::notify_one
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:389,1
    - Dst: struct ncclRmaProxyState*::cond::wait
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:390,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:394,1
    - Dst: ncclRmaProxyReclaimPersistDescs
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:394,1
    - Dst: struct ncclRmaProxyState*::cond::notify_one
      Src: /src/nccl/src/rma/rma_proxy_launch.cc:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 381
    functionDepth: 5
    functionLinenumber: 381
    functionLinenumberEnd: 404
    functionName: ncclRmaProxyReclaimPlan
    functionSourceFile: /src/nccl/src/rma/rma_proxy_launch.cc
    functionUses: 1
    functionsReached:
    - struct ncclRmaProxyState*::cond::notify_one
    - ncclRmaProxyReclaimPersistDescs
    - struct ncclRmaProxyState*::cond::wait
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyReclaimPlan(struct ncclComm* comm, struct
      ncclKernelPlan* plan)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:24,1
    - Dst: ncclDevrInitOnce
      Src: /src/nccl/src/rma/rma_ce.cc:24,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:28,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_ce.cc:28,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:29,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_ce.cc:29,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:33,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_ce.cc:33,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:45,1
    - Dst: ncclMemAlloc
      Src: /src/nccl/src/rma/rma_ce.cc:45,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:46,1
    - Dst: ncclDevrWindowRegisterInGroup
      Src: /src/nccl/src/rma/rma_ce.cc:46,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:47,1
    - Dst: ncclShadowPoolToHost
      Src: /src/nccl/src/rma/rma_ce.cc:47,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:61,1
    - Dst: ncclCudaMemcpy
      Src: /src/nccl/src/rma/rma_ce.cc:61,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:64,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/rma/rma_ce.cc:64,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:69,1
    - Dst: ncclCudaMemcpy
      Src: /src/nccl/src/rma/rma_ce.cc:69,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:73,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_ce.cc:73,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:76,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_ce.cc:76,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:77,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/rma/rma_ce.cc:77,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_ce.cc:81,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:84,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/rma/rma_ce.cc:84,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:87,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/rma/rma_ce.cc:87,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_ce.cc:92,1
    - Dst: ncclMemFree
      Src: /src/nccl/src/rma/rma_ce.cc:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 18
    functionDepth: 7
    functionLinenumber: 18
    functionLinenumberEnd: 97
    functionName: ncclRmaCeInit
    functionSourceFile: /src/nccl/src/rma/rma_ce.cc
    functionUses: 1
    functionsReached:
    - ncclCalloc
    - INFO
    - ncclDevrInitOnce
    - ncclCudaCalloc
    - ncclShadowPoolToHost
    - cudaStreamCreateWithFlags
    - ncclMemAlloc
    - free
    - NCCLCHECKGOTO
    - ncclCudaMemcpy
    - cudaEventCreateWithFlags
    - ncclMemFree
    - ncclDevrWindowRegisterInGroup
    - CUDACHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaCeInit(struct ncclComm* comm)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/rma/rma_ce.cc:103,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/rma/rma_ce.cc:104,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_ce.cc:105,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:110,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/rma/rma_ce.cc:110,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:115,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/rma/rma_ce.cc:115,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_ce.cc:123,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:124,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/rma/rma_ce.cc:124,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_ce.cc:127,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:130,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/rma/rma_ce.cc:130,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:133,1
    - Dst: ncclCommWindowDeregister
      Src: /src/nccl/src/rma/rma_ce.cc:133,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:136,1
    - Dst: ncclMemFree
      Src: /src/nccl/src/rma/rma_ce.cc:136,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_ce.cc:139,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_ce.cc:147,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 154
    functionName: ncclRmaCeFinalize
    functionSourceFile: /src/nccl/src/rma/rma_ce.cc
    functionUses: 1
    functionsReached:
    - cudaStreamDestroy
    - cudaEventDestroy
    - ncclIntruQueueEmpty
    - ncclCudaFree
    - free
    - NCCLCHECKGOTO
    - ncclCommWindowDeregister
    - ncclMemFree
    - ncclIntruQueueDequeue
    - CUDACHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaCeFinalize(struct ncclComm* comm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/rma/rma_ce.cc:161,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma_ce.cc:171,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/rma/rma_ce.cc:172,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:175,1
    - Dst: ncclDevrWorldToLsaRank
      Src: /src/nccl/src/rma/rma_ce.cc:175,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/rma/rma_ce.cc:177,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:191,1
    - Dst: ncclCuStreamBatchMemOp
      Src: /src/nccl/src/rma/rma_ce.cc:191,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:197,1
    - Dst: ncclDevrGetLsaRankPtr
      Src: /src/nccl/src/rma/rma_ce.cc:197,1
    - Dst: WARN
      Src: /src/nccl/src/rma/rma_ce.cc:201,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:207,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/rma/rma_ce.cc:207,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:218,1
    - Dst: ncclDevrGetLsaRankPtr
      Src: /src/nccl/src/rma/rma_ce.cc:218,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:220,1
    - Dst: cuStreamWriteValue64
      Src: /src/nccl/src/rma/rma_ce.cc:220,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:221,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/rma/rma_ce.cc:221,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:225,1
    - Dst: ncclDevrGetLsaRankPtr
      Src: /src/nccl/src/rma/rma_ce.cc:225,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:226,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/rma/rma_ce.cc:226,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/rma/rma_ce.cc:231,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 3
    argNames:
    - comm
    - plan
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 238
    functionName: ncclRmaCePutLaunch
    functionSourceFile: /src/nccl/src/rma/rma_ce.cc
    functionUses: 0
    functionsReached:
    - cudaMemcpyAsync
    - ncclDevrGetLsaRankPtr
    - ncclIntruQueueHead
    - ncclTypeSize
    - CUCHECKGOTO
    - ncclMemoryPoolFree
    - ncclCuStreamBatchMemOp
    - NCCLCHECKGOTO
    - ncclIntruQueueDequeue
    - CUDACHECKGOTO
    - ncclDevrWorldToLsaRank
    - WARN
    - cuStreamWriteValue64
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaCePutLaunch(struct ncclComm* comm, struct ncclKernelPlan*
      plan, cudaStream_t stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/rma/rma_ce.cc:247,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma_ce.cc:255,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/rma/rma_ce.cc:256,1
    - Dst: assert
      Src: /src/nccl/src/rma/rma_ce.cc:259,1
    - Dst: assert
      Src: /src/nccl/src/rma/rma_ce.cc:261,1
    - Dst: assert
      Src: /src/nccl/src/rma/rma_ce.cc:263,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:268,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_ce.cc:268,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:282,1
    - Dst: ncclCuStreamBatchMemOp
      Src: /src/nccl/src/rma/rma_ce.cc:282,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:289,1
    - Dst: ncclDevrWorldToLsaRank
      Src: /src/nccl/src/rma/rma_ce.cc:289,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:302,1
    - Dst: ncclCuStreamBatchMemOp
      Src: /src/nccl/src/rma/rma_ce.cc:302,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:305,1
    - Dst: ncclDevrGetLsaRankPtr
      Src: /src/nccl/src/rma/rma_ce.cc:305,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma_ce.cc:306,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/rma/rma_ce.cc:306,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/rma/rma_ce.cc:313,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_ce.cc:316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 3
    argNames:
    - comm
    - plan
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - cudaStream_t
    assertStmts:
    - condition: (task->func == ncclFuncWaitSignal)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/nccl/src/rma/rma_ce.cc
    - condition: (task->ctx == ctx)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/nccl/src/rma/rma_ce.cc
    - condition: (plan->rmaArgs->nRmaTasksCe == 1)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/nccl/src/rma/rma_ce.cc
    constantsTouched: []
    func_position:
      end: 320
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 320
    functionName: ncclRmaCeWaitLaunch
    functionSourceFile: /src/nccl/src/rma/rma_ce.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - cudaMemcpyAsync
    - ncclDevrGetLsaRankPtr
    - ncclIntruQueueHead
    - ncclMemoryPoolFree
    - assert
    - free
    - ncclCuStreamBatchMemOp
    - NCCLCHECKGOTO
    - ncclIntruQueueDequeue
    - CUDACHECKGOTO
    - ncclDevrWorldToLsaRank
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaCeWaitLaunch(struct ncclComm* comm, struct ncclKernelPlan*
      plan, cudaStream_t stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - rank
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: isLsaAccessible
    functionSourceFile: /src/nccl/src/rma/rma.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isLsaAccessible(struct ncclComm* comm, int rank)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:33,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/rma/rma.cc:33,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:36,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/rma/rma.cc:36,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:39,1
    - Dst: ncclRmaProxyWaitLaunch
      Src: /src/nccl/src/rma/rma.cc:39,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:40,1
    - Dst: ncclRmaCeWaitLaunch
      Src: /src/nccl/src/rma/rma.cc:40,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:43,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/rma/rma.cc:43,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:44,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/rma/rma.cc:44,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:47,1
    - Dst: ncclRmaProxyWaitLaunch
      Src: /src/nccl/src/rma/rma.cc:47,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:50,1
    - Dst: ncclRmaCeWaitLaunch
      Src: /src/nccl/src/rma/rma.cc:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - comm
    - plan
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 57
    functionName: ncclRmaWaitSignal
    functionSourceFile: /src/nccl/src/rma/rma.cc
    functionUses: 0
    functionsReached:
    - ncclRmaProxyWaitLaunch
    - ncclRmaCeWaitLaunch
    - cudaEventRecord
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - cudaStreamWaitEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaWaitSignal(struct ncclComm* comm, struct ncclKernelPlan*
      plan, cudaStream_t stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:69,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/rma/rma.cc:69,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:72,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/rma/rma.cc:72,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:75,1
    - Dst: ncclRmaProxyPutLaunch
      Src: /src/nccl/src/rma/rma.cc:75,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:76,1
    - Dst: ncclRmaCePutLaunch
      Src: /src/nccl/src/rma/rma.cc:76,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:79,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/rma/rma.cc:79,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:80,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/rma/rma.cc:80,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:83,1
    - Dst: ncclRmaProxyPutLaunch
      Src: /src/nccl/src/rma/rma.cc:83,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:86,1
    - Dst: ncclRmaCePutLaunch
      Src: /src/nccl/src/rma/rma.cc:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - comm
    - plan
    - stream
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 93
    functionName: ncclRmaPut
    functionSourceFile: /src/nccl/src/rma/rma.cc
    functionUses: 0
    functionsReached:
    - ncclRmaCePutLaunch
    - ncclRmaProxyPutLaunch
    - cudaEventRecord
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - cudaStreamWaitEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaPut(struct ncclComm* comm, struct ncclKernelPlan*
      plan, cudaStream_t stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:101,1
    - Dst: ncclRmaPut
      Src: /src/nccl/src/rma/rma.cc:101,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:104,1
    - Dst: ncclRmaPut
      Src: /src/nccl/src/rma/rma.cc:104,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:107,1
    - Dst: ncclRmaWaitSignal
      Src: /src/nccl/src/rma/rma.cc:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 117
    functionName: ncclLaunchRma
    functionSourceFile: /src/nccl/src/rma/rma.cc
    functionUses: 1
    functionsReached:
    - ncclRmaPut
    - NCCLCHECKGOTO
    - ncclRmaWaitSignal
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclLaunchRma(struct ncclComm* comm, struct ncclKernelPlan*
      plan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - ncclFunc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: isRmaPutOrSignal
    functionSourceFile: /src/nccl/src/rma/rma.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isRmaPutOrSignal(ncclFunc_t func)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isRmaPutOrSignal
      Src: /src/nccl/src/rma/rma.cc:132,1
    - Dst: isRmaPutOrSignal
      Src: /src/nccl/src/rma/rma.cc:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - task1
    - task2
    argTypes:
    - struct ncclTaskRma*
    - struct ncclTaskRma*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: canBatchRmaTasks
    functionSourceFile: /src/nccl/src/rma/rma.cc
    functionUses: 0
    functionsReached:
    - isRmaPutOrSignal
    linkageType: ''
    returnType: bool
    signature: bool canBatchRmaTasks(struct ncclTaskRma* task1, struct ncclTaskRma*
      task2)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/rma/rma.cc:152,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/rma/rma.cc:164,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/rma/rma.cc:168,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/rma/rma.cc:178,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/rma/rma.cc:179,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:180,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma.cc:180,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma.cc:181,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma.cc:181,1
    - Dst: isLsaAccessible
      Src: /src/nccl/src/rma/rma.cc:189,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/rma/rma.cc:206,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/rma/rma.cc:213,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/rma/rma.cc:221,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/rma/rma.cc:228,1
    - Dst: free
      Src: /src/nccl/src/rma/rma.cc:231,1
    - Dst: free
      Src: /src/nccl/src/rma/rma.cc:233,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/rma/rma.cc:241,1
    - Dst: isLsaAccessible
      Src: /src/nccl/src/rma/rma.cc:246,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/rma/rma.cc:253,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/rma/rma.cc:255,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/rma/rma.cc:261,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma.cc:262,1
    - Dst: canBatchRmaTasks
      Src: /src/nccl/src/rma/rma.cc:265,1
    - Dst: isLsaAccessible
      Src: /src/nccl/src/rma/rma.cc:269,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/rma/rma.cc:272,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/rma/rma.cc:274,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/rma/rma.cc:277,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma.cc:285,1
    - Dst: free
      Src: /src/nccl/src/rma/rma.cc:291,1
    - Dst: free
      Src: /src/nccl/src/rma/rma.cc:292,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 97
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 294
    functionName: scheduleRmaTasksToPlan
    functionSourceFile: /src/nccl/src/rma/rma.cc
    functionUses: 1
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclCalloc
    - isLsaAccessible
    - INFO
    - ncclIntruQueueEmpty
    - ncclIntruQueueHead
    - ncclMemoryPoolFree
    - ncclMemoryPoolAlloc
    - free
    - NCCLCHECKGOTO
    - ncclIntruQueueDequeue
    - ncclMemoryStackAlloc
    - canBatchRmaTasks
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t scheduleRmaTasksToPlan(struct ncclComm* comm, struct ncclKernelPlan*
      plan)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamDmaBufEnable
      Src: /src/nccl/src/rma/rma_proxy.cc:47,1
    - Dst: ncclOsGetPageSize
      Src: /src/nccl/src/rma/rma_proxy.cc:50,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/rma/rma_proxy.cc:52,1
    - Dst: ncclParamIbDataDirect
      Src: /src/nccl/src/rma/rma_proxy.cc:55,1
    - Dst: pfn_cuMemGetHandleForAddressRange
      Src: /src/nccl/src/rma/rma_proxy.cc:56,1
    - Dst: pfn_cuMemGetHandleForAddressRange
      Src: /src/nccl/src/rma/rma_proxy.cc:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - addr
    - length
    - fd
    argTypes:
    - void*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 68
    functionName: getDmaBufFd
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 1
    functionsReached:
    - ncclOsGetPageSize
    - ncclParamIbDataDirect
    - pfn_cuMemGetHandleForAddressRange
    - ALIGN_SIZE
    - ncclParamDmaBufEnable
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t getDmaBufFd(void *addr, size_t length, int *fd,\n                                bool
      forceNonDataDirect = false)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:76,1
    - Dst: ncclGin_t*::regMrSym
      Src: /src/nccl/src/rma/rma_proxy.cc:76,1
    - Dst: ncclParamDmaBufEnable
      Src: /src/nccl/src/rma/rma_proxy.cc:79,1
    - Dst: getDmaBufFd
      Src: /src/nccl/src/rma/rma_proxy.cc:82,1
    - Dst: ncclGin_t*::regMrSymDmaBuf
      Src: /src/nccl/src/rma/rma_proxy.cc:84,1
    - Dst: close
      Src: /src/nccl/src/rma/rma_proxy.cc:86,1
    - Dst: getDmaBufFd
      Src: /src/nccl/src/rma/rma_proxy.cc:90,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:92,1
    - Dst: ncclGin_t*::regMrSymDmaBuf
      Src: /src/nccl/src/rma/rma_proxy.cc:92,1
    - Dst: close
      Src: /src/nccl/src/rma/rma_proxy.cc:94,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:100,1
    - Dst: ncclGin_t*::regMrSym
      Src: /src/nccl/src/rma/rma_proxy.cc:100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 9
    argNames:
    - ginComm
    - ginCollComm
    - props
    - addr
    - size
    - type
    - mr_flags
    - mhandle
    - ginHandle
    argTypes:
    - ncclGin_t*
    - void*
    - ncclNetProperties_t
    - void*
    - size_t
    - int
    - int
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 107
    functionName: ncclRmaProxyRegMrSym
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 0
    functionsReached:
    - close
    - getDmaBufFd
    - ncclGin_t*::regMrSym
    - ncclParamDmaBufEnable
    - ncclGin_t*::regMrSymDmaBuf
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclRmaProxyRegMrSym(ncclGin_t *ginComm, void *ginCollComm,
      ncclNetProperties_t props, void *addr,\n                                         size_t
      size, int type, int mr_flags, void **mhandle,\n                                         void
      **ginHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: isPowerOfTwo
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t isPowerOfTwo(uint64_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:117,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/rma/rma_proxy.cc:117,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:119,1
    - Dst: cudaMemset
      Src: /src/nccl/src/rma/rma_proxy.cc:119,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:120,1
    - Dst: ncclRmaProxyRegMrSym
      Src: /src/nccl/src/rma/rma_proxy.cc:120,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:124,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:124,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:127,1
    - Dst: allocMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy.cc:127,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:129,1
    - Dst: allocMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy.cc:129,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:131,1
    - Dst: allocMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy.cc:131,1
    - Dst: ncclParamRmaProxyQueueSize
      Src: /src/nccl/src/rma/rma_proxy.cc:134,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy.cc:140,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy.cc:146,1
    - Dst: isPowerOfTwo
      Src: /src/nccl/src/rma/rma_proxy.cc:150,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy.cc:151,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:159,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:159,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:160,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:160,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:161,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:161,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/rma/rma_proxy.cc:164,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/rma/rma_proxy.cc:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - comm
    - ginComm
    - rmaProxyCtx
    argTypes:
    - struct ncclComm*
    - ncclGin_t*
    - struct ncclRmaProxyCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 169
    functionName: ncclRmaProxyCtxAlloc
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 0
    functionsReached:
    - isPowerOfTwo
    - ncclCalloc
    - INFO
    - ncclRmaProxyRegMrSym
    - cudaMemset
    - ncclParamRmaProxyQueueSize
    - allocMemCPUAccessible
    - ncclIntruQueueConstruct
    - CUDACHECK
    - ncclMemoryStackAlloc
    - ncclCuMemAlloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyCtxAlloc(struct ncclComm* comm, ncclGin_t*
      ginComm, struct ncclRmaProxyCtx* rmaProxyCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:175,1
    - Dst: allocMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy.cc:175,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:177,1
    - Dst: ncclRmaProxyRegMrSym
      Src: /src/nccl/src/rma/rma_proxy.cc:177,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:181,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:181,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:185,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/rma/rma_proxy.cc:185,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:187,1
    - Dst: cudaMemset
      Src: /src/nccl/src/rma/rma_proxy.cc:187,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:188,1
    - Dst: ncclRmaProxyRegMrSym
      Src: /src/nccl/src/rma/rma_proxy.cc:188,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/rma/rma_proxy.cc:192,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/rma/rma_proxy.cc:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - comm
    - ginComm
    - rmaProxyCtx
    argTypes:
    - struct ncclComm*
    - ncclGin_t*
    - struct ncclRmaProxyCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 197
    functionName: ncclRmaProxyCtxAllocGraph
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - ncclRmaProxyRegMrSym
    - cudaMemset
    - allocMemCPUAccessible
    - ncclIntruQueueConstruct
    - CUDACHECK
    - ncclMemoryStackAlloc
    - ncclCuMemAlloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyCtxAllocGraph(struct ncclComm* comm, ncclGin_t*
      ginComm, struct ncclRmaProxyCtx* rmaProxyCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:210,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:210,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:215,1
    - Dst: ncclGin_t*::createContext
      Src: /src/nccl/src/rma/rma_proxy.cc:215,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:217,1
    - Dst: ncclRmaProxyCtxAlloc
      Src: /src/nccl/src/rma/rma_proxy.cc:217,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:218,1
    - Dst: ncclRmaProxyCtxAllocGraph
      Src: /src/nccl/src/rma/rma_proxy.cc:218,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:221,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:221,1
    - Dst: ncclRmaProxyDestroyContext
      Src: /src/nccl/src/rma/rma_proxy.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 5
    argNames:
    - comm
    - collComm
    - props
    - outRmaProxyCtx
    - outDevHandle
    argTypes:
    - struct ncclComm*
    - void*
    - ncclNetProperties_t
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 237
    functionName: ncclRmaProxyCreateContext
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - ncclRmaProxyDestroyContext
    - ncclRmaProxyCtxAlloc
    - NCCLCHECKGOTO
    - ncclGin_t*::createContext
    - ncclRmaProxyCtxAllocGraph
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclRmaProxyCreateContext(struct ncclComm *comm, void
      *collComm, ncclNetProperties_t props,\n                                       void
      **outRmaProxyCtx, ncclNetDeviceHandle_t **outDevHandle)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:243,1
    - Dst: ncclGin_t*::destroyContext
      Src: /src/nccl/src/rma/rma_proxy.cc:243,1
    - Dst: COMPILER_ATOMIC_LOAD_32
      Src: /src/nccl/src/rma/rma_proxy.cc:248,1
    - Dst: COMPILER_ATOMIC_LOAD_32
      Src: /src/nccl/src/rma/rma_proxy.cc:249,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:255,1
    - Dst: ncclRmaProxyDestroyDescNonPersistent
      Src: /src/nccl/src/rma/rma_proxy.cc:255,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:259,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:263,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:264,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma_proxy.cc:269,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/rma/rma_proxy.cc:272,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:273,1
    - Dst: ncclRmaProxyDestroyDescNonPersistent
      Src: /src/nccl/src/rma/rma_proxy.cc:273,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma_proxy.cc:282,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/rma/rma_proxy.cc:285,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:286,1
    - Dst: ncclRmaProxyDestroyDescPersistent
      Src: /src/nccl/src/rma/rma_proxy.cc:286,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:293,1
    - Dst: freeMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy.cc:293,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:294,1
    - Dst: freeMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy.cc:294,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:295,1
    - Dst: freeMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy.cc:295,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:299,1
    - Dst: ncclGin_t*::deregMrSym
      Src: /src/nccl/src/rma/rma_proxy.cc:299,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:300,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/rma/rma_proxy.cc:300,1
    - Dst: ncclGin_t*::deregMrSym
      Src: /src/nccl/src/rma/rma_proxy.cc:304,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/rma/rma_proxy.cc:305,1
    - Dst: ncclGin_t*::deregMrSym
      Src: /src/nccl/src/rma/rma_proxy.cc:309,1
    - Dst: freeMemCPUAccessible
      Src: /src/nccl/src/rma/rma_proxy.cc:310,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:313,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:314,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:317,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:319,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 57
    argCount: 2
    argNames:
    - ginComm
    - rmaProxyCtx
    argTypes:
    - ncclGin_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 322
    functionName: ncclRmaProxyDestroyContext
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 1
    functionsReached:
    - ncclGin_t*::destroyContext
    - freeMemCPUAccessible
    - COMPILER_ATOMIC_LOAD_32
    - ncclRmaProxyDestroyDescNonPersistent
    - ncclCudaFree
    - free
    - ncclGin_t*::deregMrSym
    - ncclIntruQueueHead
    - ncclRmaProxyDestroyDescPersistent
    - ncclIntruQueueDequeue
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyDestroyContext(ncclGin_t* ginComm, void* rmaProxyCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:331,1
    - Dst: ncclRmaProxyRegMrSym
      Src: /src/nccl/src/rma/rma_proxy.cc:331,1
    - Dst: WARN
      Src: /src/nccl/src/rma/rma_proxy.cc:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - comm
    - address
    - size
    - rmaHostWins
    - rmaDevWins
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - void*[]
    - ncclGinWindow_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 339
    functionName: ncclRmaProxyRegister
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 1
    functionsReached:
    - ncclRmaProxyRegMrSym
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclRmaProxyRegister(struct ncclComm* comm, void* address,
      size_t size,\n    void* rmaHostWins[NCCL_GIN_MAX_CONNECTIONS],\n    ncclGinWindow_t
      rmaDevWins[NCCL_GIN_MAX_CONNECTIONS])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:344,1
    - Dst: struct ncclRmaProxyState*::ncclGin::deregMrSym
      Src: /src/nccl/src/rma/rma_proxy.cc:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - rmaHostWins
    argTypes:
    - struct ncclComm*
    - void*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 347
    functionName: ncclRmaProxyDeregister
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 1
    functionsReached:
    - struct ncclRmaProxyState*::ncclGin::deregMrSym
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyDeregister(struct ncclComm* comm, void* rmaHostWins[NCCL_GIN_MAX_CONNECTIONS])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamRmaProxyDumpSignal
      Src: /src/nccl/src/rma/rma_proxy.cc:353,1
    - Dst: signal
      Src: /src/nccl/src/rma/rma_proxy.cc:354,1
    - Dst: std::unique_lock::unlock
      Src: /src/nccl/src/rma/rma_proxy.cc:359,1
    - Dst: ncclRmaProxyProgress
      Src: /src/nccl/src/rma/rma_proxy.cc:361,1
    - Dst: COMPILER_ATOMIC_STORE_32
      Src: /src/nccl/src/rma/rma_proxy.cc:363,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy.cc:364,1
    - Dst: std::this_thread::yield
      Src: /src/nccl/src/rma/rma_proxy.cc:369,1
    - Dst: struct ncclRmaProxyState*::cond::notify_one
      Src: /src/nccl/src/rma/rma_proxy.cc:374,1
    - Dst: struct ncclRmaProxyState*::cond::wait
      Src: /src/nccl/src/rma/rma_proxy.cc:375,1
    - Dst: struct ncclRmaProxyState*::cond::wait
      Src: /src/nccl/src/rma/rma_proxy.cc:379,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy.cc:381,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - rmaProxyState_
    argTypes:
    - struct ncclRmaProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 386
    functionName: ncclRmaProxyProgressThread
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 0
    functionsReached:
    - ncclParamRmaProxyDumpSignal
    - INFO
    - std::this_thread::yield
    - std::unique_lock::unlock
    - COMPILER_ATOMIC_STORE_32
    - signal
    - struct ncclRmaProxyState*::cond::notify_one
    - struct ncclRmaProxyState*::cond::wait
    - ncclRmaProxyProgress
    linkageType: ''
    returnType: void
    signature: void * ncclRmaProxyProgressThread(struct ncclRmaProxyState* rmaProxyState_)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/rma/rma_proxy.cc:393,1
    - Dst: ncclParamGinEnable
      Src: /src/nccl/src/rma/rma_proxy.cc:396,1
    - Dst: WARN
      Src: /src/nccl/src/rma/rma_proxy.cc:397,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:405,1
    - Dst: struct ncclRmaProxyState*::ncclGin::devices
      Src: /src/nccl/src/rma/rma_proxy.cc:405,1
    - Dst: WARN
      Src: /src/nccl/src/rma/rma_proxy.cc:407,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:412,1
    - Dst: struct ncclRmaProxyState*::ncclGin::getProperties
      Src: /src/nccl/src/rma/rma_proxy.cc:412,1
    - Dst: WARN
      Src: /src/nccl/src/rma/rma_proxy.cc:415,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:421,1
    - Dst: ncclTopoGetLocalGinDevs
      Src: /src/nccl/src/rma/rma_proxy.cc:421,1
    - Dst: std::min<int>
      Src: /src/nccl/src/rma/rma_proxy.cc:422,1
    - Dst: std::min<int>
      Src: /src/nccl/src/rma/rma_proxy.cc:423,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:430,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:430,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:432,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/rma/rma_proxy.cc:432,1
    - Dst: std::min<int>
      Src: /src/nccl/src/rma/rma_proxy.cc:434,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:436,1
    - Dst: WARN
      Src: /src/nccl/src/rma/rma_proxy.cc:440,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:446,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:446,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:447,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:447,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:452,1
    - Dst: struct ncclRmaProxyState*::ncclGin::listen
      Src: /src/nccl/src/rma/rma_proxy.cc:453,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:456,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/rma/rma_proxy.cc:456,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:458,1
    - Dst: struct ncclRmaProxyState*::ncclGin::connect
      Src: /src/nccl/src/rma/rma_proxy.cc:459,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:462,1
    - Dst: struct ncclRmaProxyState*::ncclGin::getProperties
      Src: /src/nccl/src/rma/rma_proxy.cc:462,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:463,1
    - Dst: struct ncclRmaProxyState*::ncclGin::closeListen
      Src: /src/nccl/src/rma/rma_proxy.cc:463,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:465,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:467,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:472,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:472,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:473,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/rma/rma_proxy.cc:473,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/rma/rma_proxy.cc:477,1
    - Dst: ncclRmaProxyCreateContext
      Src: /src/nccl/src/rma/rma_proxy.cc:477,1
    - Dst: std::thread
      Src: /src/nccl/src/rma/rma_proxy.cc:489,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/rma/rma_proxy.cc:490,1
    - Dst: INFO
      Src: /src/nccl/src/rma/rma_proxy.cc:493,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:499,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:500,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:501,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 86
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 388
    functionDepth: 6
    functionLinenumber: 388
    functionLinenumberEnd: 503
    functionName: ncclRmaProxyConnectOnce
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 1
    functionsReached:
    - std::thread
    - ncclCalloc
    - struct ncclRmaProxyState*::ncclGin::listen
    - struct ncclRmaProxyState*::ncclGin::getProperties
    - struct ncclRmaProxyState*::ncclGin::connect
    - ncclRmaProxyCreateContext
    - INFO
    - ncclTopoGetLocalGinDevs
    - ncclParamGinEnable
    - struct ncclRmaProxyState*::ncclGin::closeListen
    - bootstrapAllGather
    - free
    - NCCLCHECKGOTO
    - ncclSetThreadName
    - std::min<int>
    - WARN
    - struct ncclRmaProxyState*::ncclGin::devices
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyConnectOnce(struct ncclComm* comm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct ncclRmaProxyState*::cond::notify_one
      Src: /src/nccl/src/rma/rma_proxy.cc:513,1
    - Dst: struct ncclRmaProxyState*::thread::join
      Src: /src/nccl/src/rma/rma_proxy.cc:515,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:522,1
    - Dst: ncclRmaProxyDestroyContext
      Src: /src/nccl/src/rma/rma_proxy.cc:522,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:527,1
    - Dst: free
      Src: /src/nccl/src/rma/rma_proxy.cc:533,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/rma/rma_proxy.cc:540,1
    - Dst: struct ncclRmaProxyState*::ncclGin::closeColl
      Src: /src/nccl/src/rma/rma_proxy.cc:540,1
    - Dst: memset
      Src: /src/nccl/src/rma/rma_proxy.cc:545,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 505
    functionDepth: 5
    functionLinenumber: 505
    functionLinenumberEnd: 547
    functionName: ncclRmaProxyFinalize
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 1
    functionsReached:
    - ncclRmaProxyDestroyContext
    - free
    - struct ncclRmaProxyState*::thread::join
    - struct ncclRmaProxyState*::cond::notify_one
    - memset
    - struct ncclRmaProxyState*::ncclGin::closeColl
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRmaProxyFinalize(struct ncclComm* comm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:554,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:555,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:556,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:557,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:558,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:559,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:564,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:565,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:566,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:568,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:569,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/rma/rma_proxy.cc:572,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/rma/rma_proxy.cc:573,1
    - Dst: COMPILER_ATOMIC_LOAD
      Src: /src/nccl/src/rma/rma_proxy.cc:574,1
    - Dst: COMPILER_ATOMIC_LOAD_32
      Src: /src/nccl/src/rma/rma_proxy.cc:575,1
    - Dst: COMPILER_ATOMIC_LOAD_32
      Src: /src/nccl/src/rma/rma_proxy.cc:576,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:577,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:582,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:587,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma_proxy.cc:594,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:599,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/rma/rma_proxy.cc:601,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:603,1
    - Dst: printf
      Src: /src/nccl/src/rma/rma_proxy.cc:609,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - rmaProxyState
    argTypes:
    - struct ncclRmaProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 614
    functionName: dumpRmaProxyState
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 0
    functionsReached:
    - COMPILER_ATOMIC_LOAD
    - printf
    - COMPILER_ATOMIC_LOAD_32
    - ncclIntruQueueHead
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t dumpRmaProxyState(struct ncclRmaProxyState* rmaProxyState)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dumpRmaProxyState
      Src: /src/nccl/src/rma/rma_proxy.cc:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 618
    functionName: ncclDumpRmaProxyState
    functionSourceFile: /src/nccl/src/rma/rma_proxy.cc
    functionUses: 0
    functionsReached:
    - dumpRmaProxyState
    linkageType: ''
    returnType: void
    signature: void ncclDumpRmaProxyState(int signal)
  - 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: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: NCCLCHECK
    functionSourceFile: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc
    functionUses: 729
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLCHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: CUDACHECK
    functionSourceFile: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc
    functionUses: 90
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECK(cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:66,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:66,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:68,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:72,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:79,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:80,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:81,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:82,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:84,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:92,1
    - Dst: ncclCommInitAll
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:92,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:93,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:103,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:103,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:106,1
    - Dst: cudaStreamCreate
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:106,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:109,1
    - Dst: cudaMalloc
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:109,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:110,1
    - Dst: cudaMalloc
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:110,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:114,1
    - Dst: cudaMemset
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:114,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:116,1
    - Dst: cudaMemcpy
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:116,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:119,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:126,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:130,1
    - Dst: ncclGroupStart
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:130,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:133,1
    - Dst: ncclAllReduce
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:133,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:136,1
    - Dst: ncclGroupEnd
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:136,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:140,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:140,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:141,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:141,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:144,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:153,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:158,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:158,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:159,1
    - Dst: cudaMemcpy
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:159,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:163,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:167,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:177,1
    - Dst: ncclCommFinalize
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:177,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:178,1
    - Dst: ncclCommDestroy
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:178,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:183,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:183,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:184,1
    - Dst: cudaFree
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:184,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:185,1
    - Dst: cudaFree
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:185,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:186,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:186,1
    - Dst: free
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:190,1
    - Dst: free
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:191,1
    - Dst: free
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:192,1
    - Dst: free
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:193,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:196,1
    - Dst: printf
      Src: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc:198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 203
    functionName: main
    functionSourceFile: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc
    functionUses: 1
    functionsReached:
    - ncclAllReduce
    - cudaStreamSynchronize
    - CUDACHECK
    - ncclCommInitAll
    - free
    - cudaMalloc
    - ncclCommDestroy
    - cudaStreamCreate
    - ncclGroupStart
    - cudaMemcpy
    - malloc
    - cudaFree
    - NCCLCHECK
    - cudaGetDeviceCount
    - cudaStreamDestroy
    - ncclCommFinalize
    - cudaMemset
    - ncclGroupEnd
    - cudaSetDevice
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: NCCLCHECK
    functionSourceFile: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc
    functionUses: 730
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLCHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: CUDACHECK
    functionSourceFile: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc
    functionUses: 91
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECK(cmd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:96,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:96,1
    - Dst: fprintf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:99,1
    - Dst: fprintf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:100,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:106,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:114,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:115,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:116,1
    - Dst: fprintf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:119,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:125,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:131,1
    - Dst: cudaGetDeviceProperties
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:131,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:132,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:133,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:134,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:143,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:143,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:144,1
    - Dst: cudaStreamCreate
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:144,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:151,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:169,1
    - Dst: ncclCommInitAll
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:169,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:170,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:176,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:185,1
    - Dst: ncclCommUserRank
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:185,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:187,1
    - Dst: ncclCommCount
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:187,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:189,1
    - Dst: ncclCommCuDevice
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:189,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:191,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:196,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:199,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:201,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:205,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:210,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:212,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:223,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:225,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:225,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:226,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:226,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:228,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:232,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:234,1
    - Dst: ncclCommFinalize
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:234,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:235,1
    - Dst: ncclCommDestroy
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:235,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:237,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:241,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:243,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:243,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:244,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:244,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:246,1
    - Dst: free
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:249,1
    - Dst: free
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:250,1
    - Dst: free
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:251,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:253,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:254,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc:255,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 258
    functionName: main
    functionSourceFile: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc
    functionUses: 1
    functionsReached:
    - cudaGetDeviceCount
    - cudaStreamDestroy
    - ncclCommDestroy
    - ncclCommFinalize
    - cudaStreamCreate
    - ncclCommUserRank
    - fprintf
    - cudaGetDeviceProperties
    - ncclCommCount
    - ncclCommCuDevice
    - cudaStreamSynchronize
    - free
    - cudaSetDevice
    - printf
    - CUDACHECK
    - malloc
    - ncclCommInitAll
    - NCCLCHECK
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: NCCLCHECK
    functionSourceFile: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc
    functionUses: 731
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLCHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: CUDACHECK
    functionSourceFile: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc
    functionUses: 92
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPI_Comm_size
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:97,1
    - Dst: MPI_Comm_rank
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:100,1
    - Dst: MPI_Comm_split_type
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:104,1
    - Dst: MPI_Comm_rank
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:109,1
    - Dst: MPI_Comm_size
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:110,1
    - Dst: MPI_Comm_free
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - comm
    argTypes:
    - MPI_Comm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: getLocalRank
    functionSourceFile: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc
    functionUses: 0
    functionsReached:
    - MPI_Comm_size
    - MPI_Comm_rank
    - MPI_Comm_free
    - MPI_Comm_split_type
    linkageType: ''
    returnType: int
    signature: int getLocalRank(MPI_Comm comm)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MPI_Init
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:134,1
    - Dst: MPI_Comm_rank
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:135,1
    - Dst: MPI_Comm_size
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:136,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:140,1
    - Dst: getLocalRank
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:144,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:146,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:154,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:154,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:155,1
    - Dst: fprintf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:158,1
    - Dst: exit
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:159,1
    - Dst: fprintf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:163,1
    - Dst: exit
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:166,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:170,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:170,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:173,1
    - Dst: cudaStreamCreate
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:173,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:175,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:184,1
    - Dst: ncclGetUniqueId
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:184,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:185,1
    - Dst: MPI_Bcast
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:189,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:190,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:194,1
    - Dst: ncclCommInitRank
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:194,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:195,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:203,1
    - Dst: ncclCommUserRank
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:203,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:204,1
    - Dst: ncclCommCount
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:204,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:205,1
    - Dst: ncclCommCuDevice
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:205,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:207,1
    - Dst: MPI_Barrier
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:211,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:218,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:224,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:224,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:230,1
    - Dst: ncclCommFinalize
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:230,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:231,1
    - Dst: ncclCommDestroy
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:231,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:232,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:237,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:237,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:241,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:243,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:245,1
    - Dst: MPI_Finalize
      Src: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc:249,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 56
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 122
    functionDepth: 5
    functionLinenumber: 122
    functionLinenumberEnd: 251
    functionName: main
    functionSourceFile: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc
    functionUses: 1
    functionsReached:
    - cudaStreamSynchronize
    - CUDACHECK
    - MPI_Comm_rank
    - exit
    - getLocalRank
    - ncclCommUserRank
    - ncclCommInitRank
    - MPI_Comm_size
    - ncclCommDestroy
    - cudaStreamCreate
    - MPI_Init
    - ncclGetUniqueId
    - ncclCommCuDevice
    - MPI_Finalize
    - ncclCommCount
    - NCCLCHECK
    - cudaGetDeviceCount
    - cudaStreamDestroy
    - ncclCommFinalize
    - fprintf
    - MPI_Bcast
    - cudaSetDevice
    - printf
    - MPI_Barrier
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: NCCLCHECK
    functionSourceFile: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc
    functionUses: 732
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLCHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: CUDACHECK
    functionSourceFile: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECK(cmd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:72,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:72,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:73,1
    - Dst: cudaStreamCreate
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:73,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:75,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:82,1
    - Dst: ncclCommInitRank
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:82,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:85,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:88,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:96,1
    - Dst: ncclCommUserRank
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:96,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:97,1
    - Dst: ncclCommCount
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:97,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:99,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:104,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:104,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:113,1
    - Dst: ncclCommFinalize
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:113,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:114,1
    - Dst: ncclCommDestroy
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:114,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:115,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:120,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:120,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 126
    functionName: thread_worker
    functionSourceFile: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc
    functionUses: 0
    functionsReached:
    - cudaStreamDestroy
    - ncclCommDestroy
    - ncclCommFinalize
    - cudaStreamCreate
    - ncclCommUserRank
    - cudaStreamSynchronize
    - ncclCommInitRank
    - cudaSetDevice
    - printf
    - CUDACHECK
    - ncclCommCount
    - NCCLCHECK
    linkageType: ''
    returnType: void
    signature: void *thread_worker(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:139,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:139,1
    - Dst: getenv
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:140,1
    - Dst: atoi
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:142,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:146,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:150,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:156,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:157,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:158,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:161,1
    - Dst: ncclGetUniqueId
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:161,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:167,1
    - Dst: pthread_create
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:175,1
    - Dst: pthread_join
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:183,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:186,1
    - Dst: free
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:192,1
    - Dst: free
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:193,1
    - Dst: free
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:194,1
    - Dst: printf
      Src: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 198
    functionName: main
    functionSourceFile: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc
    functionUses: 1
    functionsReached:
    - cudaGetDeviceCount
    - pthread_create
    - ncclGetUniqueId
    - free
    - pthread_join
    - printf
    - atoi
    - CUDACHECK
    - malloc
    - getenv
    - NCCLCHECK
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:46,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:47,1
    - Dst: ncclGetUniqueId
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:47,1
    - Dst: util_broadcast
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:53,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:57,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:57,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:62,1
    - Dst: ncclCommInitRank
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:62,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:63,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:71,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:78,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:81,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:87,1
    - Dst: ncclMemAlloc
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:87,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:88,1
    - Dst: ncclMemAlloc
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:88,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:102,1
    - Dst: ncclCommWindowRegister
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:102,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:104,1
    - Dst: ncclCommWindowRegister
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:104,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:116,1
    - Dst: cudaMemcpy
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:116,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:117,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:122,1
    - Dst: cudaStreamCreate
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:122,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:129,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:135,1
    - Dst: ncclAllReduce
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:135,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:139,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:147,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:147,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:150,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:151,1
    - Dst: cudaMemcpy
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:151,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:158,1
    - Dst: fabsf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:162,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:163,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:171,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:173,1
    - Dst: free
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:188,1
    - Dst: free
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:189,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:194,1
    - Dst: ncclCommWindowDeregister
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:194,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:195,1
    - Dst: ncclCommWindowDeregister
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:195,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:196,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:199,1
    - Dst: ncclMemFree
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:199,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:200,1
    - Dst: ncclMemFree
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:200,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:203,1
    - Dst: ncclCommFinalize
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:203,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:204,1
    - Dst: ncclCommDestroy
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:204,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:207,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:207,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:210,1
    - Dst: printf
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:211,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 4
    argNames:
    - my_rank
    - total_ranks
    - local_device
    - devices_per_rank
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 215
    functionName: allReduce
    functionSourceFile: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc
    functionUses: 0
    functionsReached:
    - ncclAllReduce
    - cudaStreamSynchronize
    - ncclMemAlloc
    - CUDACHECK
    - util_broadcast
    - free
    - ncclCommInitRank
    - ncclMemFree
    - fabsf
    - ncclCommDestroy
    - cudaStreamCreate
    - ncclGetUniqueId
    - cudaMemcpy
    - ncclCommWindowRegister
    - malloc
    - NCCLCHECK
    - cudaStreamDestroy
    - ncclCommFinalize
    - cudaSetDevice
    - printf
    - ncclCommWindowDeregister
    linkageType: ''
    returnType: void
    signature: "void *allReduce(int my_rank, int total_ranks, int local_device,\n
      \               int devices_per_rank)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_example
      Src: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: main
    functionSourceFile: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc
    functionUses: 1
    functionsReached:
    - run_example
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:46,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:47,1
    - Dst: ncclGetUniqueId
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:47,1
    - Dst: util_broadcast
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:53,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:57,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:57,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:62,1
    - Dst: ncclCommInitRank
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:62,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:63,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:71,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:78,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:85,1
    - Dst: ncclMemAlloc
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:85,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:86,1
    - Dst: ncclMemAlloc
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:86,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:97,1
    - Dst: ncclCommRegister
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:97,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:98,1
    - Dst: ncclCommRegister
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:98,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:106,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:110,1
    - Dst: cudaMemcpy
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:110,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:111,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:116,1
    - Dst: cudaStreamCreate
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:116,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:123,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:129,1
    - Dst: ncclAllReduce
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:129,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:133,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:141,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:141,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:144,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:145,1
    - Dst: cudaMemcpy
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:145,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:152,1
    - Dst: fabsf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:156,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:157,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:166,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:168,1
    - Dst: free
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:183,1
    - Dst: free
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:184,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:189,1
    - Dst: ncclCommDeregister
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:189,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:190,1
    - Dst: ncclCommDeregister
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:190,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:191,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:194,1
    - Dst: ncclMemFree
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:194,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:195,1
    - Dst: ncclMemFree
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:195,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:198,1
    - Dst: ncclCommFinalize
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:198,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:199,1
    - Dst: ncclCommDestroy
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:199,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:202,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:202,1
    - Dst: printf
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:205,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 61
    argCount: 4
    argNames:
    - my_rank
    - total_ranks
    - local_device
    - devices_per_rank
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 37
    functionDepth: 8
    functionLinenumber: 37
    functionLinenumberEnd: 209
    functionName: allReduce
    functionSourceFile: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc
    functionUses: 0
    functionsReached:
    - ncclAllReduce
    - cudaStreamSynchronize
    - ncclMemAlloc
    - CUDACHECK
    - util_broadcast
    - free
    - ncclCommInitRank
    - ncclCommRegister
    - ncclMemFree
    - fabsf
    - ncclCommDestroy
    - cudaStreamCreate
    - ncclGetUniqueId
    - cudaMemcpy
    - malloc
    - NCCLCHECK
    - cudaStreamDestroy
    - ncclCommFinalize
    - ncclCommDeregister
    - cudaSetDevice
    - printf
    linkageType: ''
    returnType: void
    signature: "void *allReduce(int my_rank, int total_ranks, int local_device,\n
      \               int devices_per_rank)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_example
      Src: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: main
    functionSourceFile: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc
    functionUses: 1
    functionsReached:
    - run_example
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MPICHECK
      Src: /src/nccl/docs/examples/common/src/utils.cc:117,1
    - Dst: MPI_Bcast
      Src: /src/nccl/docs/examples/common/src/utils.cc:118,1
    - Dst: pthread_barrier_wait
      Src: /src/nccl/docs/examples/common/src/utils.cc:123,1
    - Dst: fprintf
      Src: /src/nccl/docs/examples/common/src/utils.cc:125,1
    - Dst: abort
      Src: /src/nccl/docs/examples/common/src/utils.cc:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - root
    - my_rank
    - arg
    argTypes:
    - int
    - int
    - ncclUniqueId*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 134
    functionName: util_broadcast
    functionSourceFile: /src/nccl/docs/examples/common/src/utils.cc
    functionUses: 2
    functionsReached:
    - fprintf
    - pthread_barrier_wait
    - MPICHECK
    - abort
    - MPI_Bcast
    linkageType: ''
    returnType: int
    signature: int util_broadcast(int root, int my_rank, ncclUniqueId *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MPICHECK
      Src: /src/nccl/docs/examples/common/src/utils.cc:142,1
    - Dst: MPI_Init
      Src: /src/nccl/docs/examples/common/src/utils.cc:142,1
    - Dst: MPICHECK
      Src: /src/nccl/docs/examples/common/src/utils.cc:143,1
    - Dst: MPI_Comm_rank
      Src: /src/nccl/docs/examples/common/src/utils.cc:143,1
    - Dst: MPICHECK
      Src: /src/nccl/docs/examples/common/src/utils.cc:144,1
    - Dst: MPI_Comm_size
      Src: /src/nccl/docs/examples/common/src/utils.cc:144,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:147,1
    - Dst: MPI_Barrier
      Src: /src/nccl/docs/examples/common/src/utils.cc:150,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:151,1
    - Dst: MPI_Comm_split_type
      Src: /src/nccl/docs/examples/common/src/utils.cc:155,1
    - Dst: MPI_Comm_rank
      Src: /src/nccl/docs/examples/common/src/utils.cc:159,1
    - Dst: MPI_Comm_free
      Src: /src/nccl/docs/examples/common/src/utils.cc:162,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/common/src/utils.cc:169,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/docs/examples/common/src/utils.cc:169,1
    - Dst: getenv
      Src: /src/nccl/docs/examples/common/src/utils.cc:171,1
    - Dst: atoi
      Src: /src/nccl/docs/examples/common/src/utils.cc:173,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:176,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:179,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:185,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:187,1
    - Dst: pthread_barrier_init
      Src: /src/nccl/docs/examples/common/src/utils.cc:192,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/common/src/utils.cc:195,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 3
    argNames:
    - argc
    - argv
    - ctx
    argTypes:
    - int
    - char*[]
    - context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 203
    functionName: initialize
    functionSourceFile: /src/nccl/docs/examples/common/src/utils.cc
    functionUses: 0
    functionsReached:
    - cudaGetDeviceCount
    - MPI_Init
    - MPICHECK
    - MPI_Comm_split_type
    - pthread_barrier_init
    - malloc
    - MPI_Barrier
    - printf
    - atoi
    - getenv
    - CUDACHECK
    - MPI_Comm_size
    - MPI_Comm_rank
    - MPI_Comm_free
    linkageType: ''
    returnType: int
    signature: int initialize(int argc, char *argv[], context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: example_func
      Src: /src/nccl/docs/examples/common/src/utils.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: thread_wrapper
    functionSourceFile: /src/nccl/docs/examples/common/src/utils.cc
    functionUses: 0
    functionsReached:
    - example_func
    linkageType: ''
    returnType: void
    signature: void *thread_wrapper(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:225,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:226,1
    - Dst: ncclExample
      Src: /src/nccl/docs/examples/common/src/utils.cc:229,1
    - Dst: MPICHECK
      Src: /src/nccl/docs/examples/common/src/utils.cc:233,1
    - Dst: MPI_Barrier
      Src: /src/nccl/docs/examples/common/src/utils.cc:233,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:235,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:236,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/common/src/utils.cc:240,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:242,1
    - Dst: memcpy
      Src: /src/nccl/docs/examples/common/src/utils.cc:248,1
    - Dst: pthread_create
      Src: /src/nccl/docs/examples/common/src/utils.cc:255,1
    - Dst: pthread_join
      Src: /src/nccl/docs/examples/common/src/utils.cc:260,1
    - Dst: free
      Src: /src/nccl/docs/examples/common/src/utils.cc:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - (*ncclExample)(int, int, int, int)
    argTypes:
    - context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 267
    functionName: run_parallel
    functionSourceFile: /src/nccl/docs/examples/common/src/utils.cc
    functionUses: 0
    functionsReached:
    - pthread_create
    - memcpy
    - MPICHECK
    - free
    - pthread_join
    - MPI_Barrier
    - printf
    - malloc
    - ncclExample
    linkageType: ''
    returnType: int
    signature: int run_parallel(context_t *ctx, void *(*ncclExample)(int, int, int,
      int))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/nccl/docs/examples/common/src/utils.cc:276,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:278,1
    - Dst: initialize
      Src: /src/nccl/docs/examples/common/src/utils.cc:283,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:284,1
    - Dst: run_parallel
      Src: /src/nccl/docs/examples/common/src/utils.cc:289,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:290,1
    - Dst: cleanup
      Src: /src/nccl/docs/examples/common/src/utils.cc:291,1
    - Dst: cleanup
      Src: /src/nccl/docs/examples/common/src/utils.cc:296,1
    - Dst: printf
      Src: /src/nccl/docs/examples/common/src/utils.cc:302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - argc
    - argv
    - (*ncclExample)(int, int, int, int)
    argTypes:
    - int
    - char*[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 308
    functionName: run_example
    functionSourceFile: /src/nccl/docs/examples/common/src/utils.cc
    functionUses: 2
    functionsReached:
    - calloc
    - initialize
    - run_parallel
    - cleanup
    - printf
    linkageType: ''
    returnType: int
    signature: "int run_example(int argc, char *argv[],\n                void *(*ncclExample)(int,
      int, int, int))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPICHECK
      Src: /src/nccl/docs/examples/common/src/utils.cc:316,1
    - Dst: MPI_Finalize
      Src: /src/nccl/docs/examples/common/src/utils.cc:316,1
    - Dst: free
      Src: /src/nccl/docs/examples/common/src/utils.cc:318,1
    - Dst: pthread_barrier_destroy
      Src: /src/nccl/docs/examples/common/src/utils.cc:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: cleanup
    functionSourceFile: /src/nccl/docs/examples/common/src/utils.cc
    functionUses: 1
    functionsReached:
    - free
    - MPI_Finalize
    - pthread_barrier_destroy
    - MPICHECK
    linkageType: ''
    returnType: void
    signature: void cleanup(context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: MPICHECK
    functionSourceFile: /src/nccl/docs/examples/common/include/mpi_utils.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPICHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: NCCLCHECK
    functionSourceFile: /src/nccl/docs/examples/common/include/nccl_utils.h
    functionUses: 736
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLCHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: CUDACHECK
    functionSourceFile: /src/nccl/docs/examples/common/include/nccl_utils.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: NCCLCHECK
    functionSourceFile: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc
    functionUses: 736
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLCHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: CUDACHECK
    functionSourceFile: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECK(cmd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:68,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:71,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:71,1
    - Dst: fprintf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:74,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:79,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:80,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:83,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:89,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:92,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:98,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:99,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:100,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:101,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:102,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:103,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:115,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:116,1
    - Dst: ncclCommInitAll
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:116,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:117,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:123,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:127,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:127,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:128,1
    - Dst: cudaStreamCreate
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:128,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:132,1
    - Dst: ncclCommUserRank
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:132,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:133,1
    - Dst: ncclCommCount
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:133,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:134,1
    - Dst: ncclCommCuDevice
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:134,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:136,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:144,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:145,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:151,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:155,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:157,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:157,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:159,1
    - Dst: malloc
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:160,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:161,1
    - Dst: cudaMalloc
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:161,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:162,1
    - Dst: cudaMalloc
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:162,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:168,1
    - Dst: cudaMemcpy
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:168,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:182,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:186,1
    - Dst: ncclGroupStart
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:186,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:190,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:193,1
    - Dst: ncclSend
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:194,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:195,1
    - Dst: ncclRecv
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:196,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:198,1
    - Dst: ncclGroupEnd
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:198,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:202,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:202,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:203,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:203,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:206,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:212,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:216,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:216,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:217,1
    - Dst: cudaMemcpy
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:217,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:225,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:230,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:235,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:237,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:244,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:248,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:248,1
    - Dst: free
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:249,1
    - Dst: free
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:250,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:251,1
    - Dst: cudaFree
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:251,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:252,1
    - Dst: cudaFree
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:252,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:257,1
    - Dst: ncclCommFinalize
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:257,1
    - Dst: NCCLCHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:258,1
    - Dst: ncclCommDestroy
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:258,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:259,1
    - Dst: cudaSetDevice
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:259,1
    - Dst: CUDACHECK
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:260,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:260,1
    - Dst: free
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:264,1
    - Dst: free
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:265,1
    - Dst: free
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:266,1
    - Dst: free
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:267,1
    - Dst: free
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:268,1
    - Dst: free
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:269,1
    - Dst: free
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:270,1
    - Dst: printf
      Src: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc:272,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 100
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 275
    functionName: main
    functionSourceFile: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc
    functionUses: 1
    functionsReached:
    - cudaStreamSynchronize
    - ncclSend
    - CUDACHECK
    - ncclCommInitAll
    - ncclCommUserRank
    - free
    - cudaMalloc
    - ncclCommDestroy
    - cudaStreamCreate
    - ncclGroupStart
    - ncclCommCuDevice
    - cudaMemcpy
    - ncclCommCount
    - malloc
    - cudaFree
    - NCCLCHECK
    - cudaGetDeviceCount
    - cudaStreamDestroy
    - ncclCommFinalize
    - fprintf
    - ncclGroupEnd
    - cudaSetDevice
    - printf
    - ncclRecv
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetPeerPointer
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - w
    - offset
    - tm
    - peer
    argTypes:
    - ncclWindow_t
    - size_t
    - ncclTeam
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: ncclGetPeerPointerTeam
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclGetPeerPointer
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C * ncclGetPeerPointerTeam(ncclWindow_t w, size_t offset,
      ncclTeam tm, int peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopThread
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:23,1
    - Dst: ncclCoopAny::ncclCoopAny
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopAny*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: ncclCoopAnyInitThread
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclCoopAny::ncclCoopAny
    - ncclCoopThread
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclCoopAnyInitThread(ncclCoopAny* coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopWarp
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:26,1
    - Dst: ncclCoopAny::ncclCoopAny
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopAny*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: ncclCoopAnyInitWarp
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclCoopWarp
    - ncclCoopAny::ncclCoopAny
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclCoopAnyInitWarp(ncclCoopAny* coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopLanes
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:29,1
    - Dst: ncclCoopAny::ncclCoopAny
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - coop
    - lane_mask
    argTypes:
    - ncclCoopAny*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: ncclCoopAnyInitLanes
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclCoopAny::ncclCoopAny
    - ncclCoopLanes
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclCoopAnyInitLanes(ncclCoopAny* coop, uint32_t lane_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopWarpSpan
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:32,1
    - Dst: ncclCoopAny::ncclCoopAny
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - coop
    - warp0
    - nWarps
    - id
    argTypes:
    - ncclCoopAny*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: ncclCoopAnyInitWarpSpan
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclCoopAny::ncclCoopAny
    - ncclCoopWarpSpan
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclCoopAnyInitWarpSpan(ncclCoopAny* coop, int warp0,
      int nWarps, int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopCta
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:35,1
    - Dst: ncclCoopAny::ncclCoopAny
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopAny*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: ncclCoopAnyInitCta
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclCoopAny::ncclCoopAny
    - ncclCoopCta
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclCoopAnyInitCta(ncclCoopAny* coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopAny*::thread_rank
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopAny*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: ncclCoopThreadRank
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclCoopAny*::thread_rank
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclCoopThreadRank(const ncclCoopAny* coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopAny*::size
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopAny*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: ncclCoopSize
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclCoopAny*::size
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclCoopSize(const ncclCoopAny* coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCoopAny*::num_threads
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopAny*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: ncclCoopNumThreads
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclCoopAny*::num_threads
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclCoopNumThreads(const ncclCoopAny* coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<ncclCoopAny*>
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coop
    argTypes:
    - ncclCoopAny*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: ncclCoopSync
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - const_cast<ncclCoopAny*>
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclCoopSync(const ncclCoopAny* coop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaBarrierSession<ncclCoopAny>::ncclLsaBarrierSession<ncclCoopAny>
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - session
    - coop
    - ' comm'
    - team
    - handle
    - index
    - multimem
    - mmHandle
    argTypes:
    - ncclLsaBarrierSession_C*
    - ncclCoopAny
    - ncclDevComm
    - ncclTeam
    - ncclLsaBarrierHandle
    - uint32_t
    - bool
    - ncclMultimemHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: ncclLsaBarrierSessionInit
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclLsaBarrierSession<ncclCoopAny>::ncclLsaBarrierSession<ncclCoopAny>
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: "NCCL_IR_EXTERN_C ncclLsaBarrierSessionInit(\n    ncclLsaBarrierSession_C*
      session,\n    ncclCoopAny coop,\n    ncclDevComm const& comm,\n    ncclTeam
      team,\n    ncclLsaBarrierHandle handle,\n    uint32_t index,\n    bool multimem,\n
      \   ncclMultimemHandle mmHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaBarrierSession_C*::bar::arrive
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - session
    - coop
    - order
    argTypes:
    - ncclLsaBarrierSession_C*
    - ncclCoopAny
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: ncclLsaBarrierSessionArrive
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclLsaBarrierSession_C*::bar::arrive
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclLsaBarrierSessionArrive(ncclLsaBarrierSession_C*
      session, ncclCoopAny coop, cuda::memory_order order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaBarrierSession_C*::bar::wait
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - session
    - coop
    - order
    argTypes:
    - ncclLsaBarrierSession_C*
    - ncclCoopAny
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: ncclLsaBarrierSessionWait
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclLsaBarrierSession_C*::bar::wait
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclLsaBarrierSessionWait(ncclLsaBarrierSession_C*
      session, ncclCoopAny coop, cuda::memory_order order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclLsaBarrierSession_C*::bar::sync
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - session
    - coop
    - order
    argTypes:
    - ncclLsaBarrierSession_C*
    - ncclCoopAny
    - cuda::memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: ncclLsaBarrierSessionSync
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclLsaBarrierSession_C*::bar::sync
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: NCCL_IR_EXTERN_C ncclLsaBarrierSessionSync(ncclLsaBarrierSession_C*
      session, ncclCoopAny coop, cuda::memory_order order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ncclGin const&>
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:84,1
    - Dst: ncclGinBarrierSession<ncclCoopAny>::ncclGinBarrierSession<ncclCoopAny>
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - session
    - coop
    - net
    - team
    - handle
    - index
    argTypes:
    - ncclGinBarrierSession_C*
    - ncclCoopAny
    - ncclGin_C
    - ncclTeam
    - ncclGinBarrierHandle
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: ncclGinBarrierSessionInit
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclGinBarrierSession<ncclCoopAny>::ncclGinBarrierSession<ncclCoopAny>
    - reinterpret_cast<ncclGin const&>
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: "NCCL_IR_EXTERN_C ncclGinBarrierSessionInit(\n    ncclGinBarrierSession_C*
      session,\n    ncclCoopAny coop,\n    ncclGin_C net,\n    ncclTeam team,\n    ncclGinBarrierHandle
      handle,\n    uint32_t index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclGinBarrierSession_C*::bar::sync
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - session
    - coop
    - order
    - fence
    argTypes:
    - ncclGinBarrierSession_C*
    - ncclCoopAny
    - cuda::memory_order
    - ncclGinFenceLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: ncclGinBarrierSessionSync
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclGinBarrierSession_C*::bar::sync
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: "NCCL_IR_EXTERN_C ncclGinBarrierSessionSync(\n    ncclGinBarrierSession_C*
      session,\n    ncclCoopAny coop,\n    cuda::memory_order order,\n    ncclGinFenceLevel
      fence)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ncclGin const&>
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:106,1
    - Dst: ncclBarrierSession<ncclCoopAny>::ncclBarrierSession<ncclCoopAny>
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - session
    - coop
    - innerTeam
    - outerTeam
    - net
    - innerBarHandle
    - outerBarHandle
    - index
    - multimem
    - innerMmHandle
    argTypes:
    - ncclBarrierSession_C*
    - ncclCoopAny
    - ncclTeam
    - ncclTeam
    - ncclGin_C
    - ncclLsaBarrierHandle
    - ncclGinBarrierHandle
    - uint32_t
    - bool
    - ncclMultimemHandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: ncclBarrierSessionInit
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclBarrierSession<ncclCoopAny>::ncclBarrierSession<ncclCoopAny>
    - reinterpret_cast<ncclGin const&>
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: "NCCL_IR_EXTERN_C ncclBarrierSessionInit(\n    ncclBarrierSession_C*
      session,\n    ncclCoopAny coop,\n    ncclTeam innerTeam,\n    ncclTeam outerTeam,\n
      \   ncclGin_C net,\n    ncclLsaBarrierHandle const innerBarHandle,\n    ncclGinBarrierHandle
      const outerBarHandle,\n    uint32_t index,\n    bool multimem, ncclMultimemHandle
      const innerMmHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclBarrierSession_C*::bar::sync
      Src: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - session
    - coop
    - order
    - fence
    argTypes:
    - ncclBarrierSession_C*
    - ncclCoopAny
    - cuda::memory_order
    - ncclGinFenceLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: ncclBarrierSessionSync
    functionSourceFile: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
    functionUses: 0
    functionsReached:
    - ncclBarrierSession_C*::bar::sync
    linkageType: ''
    returnType: NCCL_IR_EXTERN_C
    signature: "NCCL_IR_EXTERN_C ncclBarrierSessionSync(\n    ncclBarrierSession_C*
      session,\n    ncclCoopAny coop,\n    cuda::memory_order order,\n    ncclGinFenceLevel
      fence)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logFunction
    - profFunction
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 15
    functionName: ncclResult_t::pluginInit
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginInit(void** ctx, uint64_t commId, ncclNetCommConfig_t*
      config, 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: 16
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: ncclResult_t::pluginDevices
    functionSourceFile: /src/nccl/plugins/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: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: ncclResult_t::pluginPciPath
    functionSourceFile: /src/nccl/plugins/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: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: ncclResult_t::pluginPtrSupport
    functionSourceFile: /src/nccl/plugins/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: 21
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 56
    functionName: ncclResult_t::pluginGetProperties
    functionSourceFile: /src/nccl/plugins/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: 4
    argNames:
    - ctx
    - dev
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ncclResult_t::pluginListen
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginListen(void* ctx, int dev, void* handle,
      void** listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - dev
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: ncclResult_t::pluginConnect
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginConnect(void* ctx, int dev, 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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: ncclResult_t::pluginAccept
    functionSourceFile: /src/nccl/plugins/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: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: ncclResult_t::pluginRegMr
    functionSourceFile: /src/nccl/plugins/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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: ncclResult_t::pluginRegMrDmaBuf
    functionSourceFile: /src/nccl/plugins/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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: ncclResult_t::pluginDeregMr
    functionSourceFile: /src/nccl/plugins/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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: ncclResult_t::pluginIsend
    functionSourceFile: /src/nccl/plugins/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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: ncclResult_t::pluginIrecv
    functionSourceFile: /src/nccl/plugins/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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: ncclResult_t::pluginIflush
    functionSourceFile: /src/nccl/plugins/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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: ncclResult_t::pluginTest
    functionSourceFile: /src/nccl/plugins/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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: ncclResult_t::pluginCloseSend
    functionSourceFile: /src/nccl/plugins/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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: ncclResult_t::pluginCloseRecv
    functionSourceFile: /src/nccl/plugins/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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: ncclResult_t::pluginCloseListen
    functionSourceFile: /src/nccl/plugins/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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: ncclResult_t::pluginIrecvConsumed
    functionSourceFile: /src/nccl/plugins/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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: ncclResult_t::pluginGetDeviceMr
    functionSourceFile: /src/nccl/plugins/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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: ncclResult_t::pluginMakeVDevice
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginMakeVDevice(int* d, ncclNetVDeviceProps_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: ncclResult_t::pluginFinalize
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginFinalize(void* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_v11_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 136
    functionName: ncclResult_t::pluginGetProperties_v11
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginGetProperties_v11(int dev, ncclNetProperties_v11_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginInit
      Src: /src/nccl/plugins/net/example/plugin.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logFunction
    - profFunction
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_v11_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: ncclResult_t::pluginInit_v11
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginInit
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginInit_v11(void** ctx, uint64_t commId, ncclNetCommConfig_v11_t*
      config, ncclDebugLogger_t logFunction, ncclProfilerCallback_t profFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_v11_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: ncclResult_t::pluginMakeVDevice_v11
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginMakeVDevice_v11(int* d, ncclNetVDeviceProps_v11_t*
      props)
  - 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: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: ncclResult_t::pluginInit_v10
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginInit_v10(ncclDebugLogger_t logFunction,
      ncclProfilerCallback_t profFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_v10_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 203
    functionName: ncclResult_t::pluginGetProperties_v10
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginGetProperties_v10(int dev, ncclNetProperties_v10_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - handle
    - listenComm
    argTypes:
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: ncclResult_t::pluginListen_v10
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginListen_v10(int d, 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_v10_t*
    - void*
    - void**
    - ncclNetDeviceHandle_v10_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: ncclResult_t::pluginConnect_v10
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginConnect_v10(int dev, ncclNetCommConfig_v10_t*
      config, void* handle, void** sendComm, ncclNetDeviceHandle_v10_t** sendDevComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_v10_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: ncclResult_t::pluginMakeVDevice_v10
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginMakeVDevice_v10(int* d, ncclNetVDeviceProps_v10_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginInit_v10
      Src: /src/nccl/plugins/net/example/plugin.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - logFunction
    argTypes:
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: ncclResult_t::pluginInit_v9
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginInit_v10
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginInit_v9(ncclDebugLogger_t logFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginGetProperties_v10
      Src: /src/nccl/plugins/net/example/plugin.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_v9_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: ncclResult_t::pluginGetProperties_v9
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginGetProperties_v10
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginGetProperties_v9(int dev, ncclNetProperties_v9_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginConnect_v10
      Src: /src/nccl/plugins/net/example/plugin.c:242,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: 243
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: ncclResult_t::pluginConnect_v9
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginConnect_v10
    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/plugins/net/example/plugin.c:246,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: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: ncclResult_t::pluginIsend_v9
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:250,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: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: ncclResult_t::pluginIrecv_v9
    functionSourceFile: /src/nccl/plugins/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: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: ncclResult_t::pluginMakeVDevice_v9
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - dev
    - props_v8
    argTypes:
    - int
    - ncclNetProperties_v8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 295
    functionName: ncclResult_t::pluginGetProperties_v8
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:298,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: 299
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: ncclResult_t::pluginIsend_v8
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:304,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: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: ncclResult_t::pluginIrecv_v8
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - dev
    - props_v7
    argTypes:
    - int
    - ncclNetProperties_v7_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 345
    functionName: ncclResult_t::pluginGetProperties_v7
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:348,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: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: ncclResult_t::pluginRegMr_v7
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - dev
    - props_v6
    argTypes:
    - int
    - ncclNetProperties_v6_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 387
    functionName: ncclResult_t::pluginGetProperties_v6
    functionSourceFile: /src/nccl/plugins/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: 389
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: ncclResult_t::pluginConnect_v6
    functionSourceFile: /src/nccl/plugins/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: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: ncclResult_t::pluginAccept_v6
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - dev
    - props_v4
    argTypes:
    - int
    - ncclNetProperties_v4_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 445
    functionName: pluginGetProperties_v4
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:447,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: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: pluginIsend_v4
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:451,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: 452
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: pluginIrecv_v4
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:454,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: 455
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 455
    functionName: pluginIflush_v4
    functionSourceFile: /src/nccl/plugins/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_v10
      Src: /src/nccl/plugins/net/example/plugin.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - dev
    - handle
    - sendComm
    argTypes:
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 463
    functionName: pluginConnect_v4
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginConnect_v10
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginConnect_v4(int dev, void* handle, void** sendComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginAccept
      Src: /src/nccl/plugins/net/example/plugin.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - listenComm
    - recvComm
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 471
    functionName: pluginAccept_v4
    functionSourceFile: /src/nccl/plugins/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/plugins/net/example/plugin.c:494,1
    - Dst: pluginTest
      Src: /src/nccl/plugins/net/example/plugin.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - recvComm
    - data
    - size
    - mhandle
    argTypes:
    - void*
    - void*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 500
    functionName: pluginFlush
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginTest
    - pluginIflush_v4
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginFlush(void* recvComm, void* data, int size, void*
      mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginInit_v10
      Src: /src/nccl/plugins/net/example/plugin.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - logFunction
    argTypes:
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: pluginInit_v3
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginInit_v10
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginInit_v3(ncclDebugLogger_t logFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginListen_v10
      Src: /src/nccl/plugins/net/example/plugin.c:508,1
    - Dst: memcpy
      Src: /src/nccl/plugins/net/example/plugin.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dev
    - handle
    - listenComm
    argTypes:
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 511
    functionName: pluginListen_v3
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached:
    - memcpy
    - pluginListen_v10
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginListen_v3(int dev, void* handle, void** listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/plugins/net/example/plugin.c:514,1
    - Dst: pluginConnect_v4
      Src: /src/nccl/plugins/net/example/plugin.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dev
    - handle
    - sendComm
    argTypes:
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: pluginConnect_v3
    functionSourceFile: /src/nccl/plugins/net/example/plugin.c
    functionUses: 0
    functionsReached:
    - memcpy
    - pluginConnect_v4
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginConnect_v3(int dev, void* handle, void** sendComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:22,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct groupApi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: printGroupApiEventHeader
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printGroupApiEventHeader(FILE* fh, struct groupApi* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:27,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct groupApi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: printGroupApiEventTrailer
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printGroupApiEventTrailer(FILE* fh, struct groupApi* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:33,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct p2pApi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: printP2pApiEventHeader
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printP2pApiEventHeader(FILE* fh, struct p2pApi* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:38,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct p2pApi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: printP2pApiEventTrailer
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printP2pApiEventTrailer(FILE* fh, struct p2pApi* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:44,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct collApi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: printCollApiEventHeader
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printCollApiEventHeader(FILE* fh, struct collApi* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:49,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct collApi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: printCollApiEventTrailer
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printCollApiEventTrailer(FILE* fh, struct collApi* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:55,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct kernelLaunch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: printKernelLaunchEventHeader
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printKernelLaunchEventHeader(FILE* fh, struct kernelLaunch*
      event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:59,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct kernelLaunch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: printKernelLaunchEventTrailer
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printKernelLaunchEventTrailer(FILE* fh, struct kernelLaunch*
      event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:64,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: printGroupEventHeader
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printGroupEventHeader(FILE* fh, struct group* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:69,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: printGroupEventTrailer
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printGroupEventTrailer(FILE* fh, struct group* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:75,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct collective*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: printCollEventHeader
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printCollEventHeader(FILE* fh, struct collective* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:80,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct collective*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: printCollEventTrailer
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printCollEventTrailer(FILE* fh, struct collective* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:86,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct p2p*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: printP2pEventHeader
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printP2pEventHeader(FILE* fh, struct p2p* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:91,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct p2p*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: printP2pEventTrailer
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printP2pEventTrailer(FILE* fh, struct p2p* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:98,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:99,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:100,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:101,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:102,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:103,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:105,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:106,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:107,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:108,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:109,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct proxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: printProxyOpEventHeader
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printProxyOpEventHeader(FILE* fh, struct proxyOp* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:115,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct proxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: printProxyOpEventTrailer
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printProxyOpEventTrailer(FILE* fh, struct proxyOp* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:122,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:123,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:124,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:125,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:126,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:127,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:128,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:129,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:130,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:131,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:133,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct proxyStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 136
    functionName: printProxyStepEventHeader
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printProxyStepEventHeader(FILE* fh, struct proxyStep* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:140,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:141,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:143,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:144,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:145,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:146,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:147,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:148,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:149,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:150,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:151,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct proxyStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 154
    functionName: printProxyStepEventTrailer
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printProxyStepEventTrailer(FILE* fh, struct proxyStep* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:159,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct kernelCh*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: printKernelChEventHeader
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printKernelChEventHeader(FILE* fh, struct kernelCh* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:165,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct kernelCh*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: printKernelChEventTrailer
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printKernelChEventTrailer(FILE* fh, struct kernelCh* event)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:182,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:183,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:185,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:186,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:188,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct proxyCtrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 190
    functionName: printProxyCtrlEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printProxyCtrlEvent(FILE* fh, struct proxyCtrl* event)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:197,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:198,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:199,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:200,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:206,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:207,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:208,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct netPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 213
    functionName: printNetPluginEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: __hidden
    signature: __hidden printNetPluginEvent(FILE* fh, struct netPlugin* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:219,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:220,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:221,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:222,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:223,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:224,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:225,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:226,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:227,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:228,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - fh
    - event
    - tag
    argTypes:
    - FILE*
    - struct ceColl*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: debugCeCollEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void debugCeCollEvent(FILE* fh, struct ceColl* event, const char* tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:233,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:234,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:235,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:236,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:237,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:238,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:239,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:240,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:241,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - fh
    - event
    - tag
    argTypes:
    - FILE*
    - struct ceSync*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 243
    functionName: debugCeSyncEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void debugCeSyncEvent(FILE* fh, struct ceSync* event, const char* tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:246,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:247,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:248,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:249,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:250,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:251,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:252,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:253,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:254,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:255,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - fh
    - event
    - tag
    argTypes:
    - FILE*
    - struct ceBatch*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 257
    functionName: debugCeBatchEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void debugCeBatchEvent(FILE* fh, struct ceBatch* event, const char*
      tag)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:263,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:263,1
    - Dst: fopen
      Src: /src/nccl/plugins/profiler/example/print_event.cc:264,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:268,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:269,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/print_event.cc:269,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:270,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:271,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:272,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:275,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:276,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/print_event.cc:276,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:277,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:279,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:281,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:282,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:283,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:286,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:287,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/print_event.cc:287,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:288,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:289,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:290,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:291,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:292,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:295,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:296,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:297,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:298,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:299,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:300,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:301,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:302,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:303,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:306,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:307,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:308,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:309,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:310,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:311,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:314,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:315,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:316,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:319,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:320,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:321,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:322,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:323,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:324,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:325,1
    - Dst: debugCeCollEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:327,1
    - Dst: debugCeSyncEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:329,1
    - Dst: debugCeBatchEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:331,1
    - Dst: fclose
      Src: /src/nccl/plugins/profiler/example/print_event.cc:333,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 74
    argCount: 2
    argNames:
    - eHandle
    - tag
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 335
    functionName: debugEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - getpid
    - sprintf
    - debugCeSyncEvent
    - fprintf
    - __atomic_load_n
    - fopen
    - debugCeBatchEvent
    - debugCeCollEvent
    - fclose
    linkageType: ''
    returnType: void
    signature: void debugEvent(void* eHandle, const char* tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:341,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:342,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:344,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:345,1
    - Dst: taskEventQueueHead
      Src: /src/nccl/plugins/profiler/example/print_event.cc:349,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:352,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:356,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct ceColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 358
    functionName: printCeCollEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - taskEventQueueHead
    - fprintf
    - getpid
    - printEvent
    linkageType: ''
    returnType: void
    signature: void printCeCollEvent(FILE* fh, struct ceColl* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:364,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:365,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:367,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:368,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:370,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct ceSync*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 372
    functionName: printCeSyncEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: void
    signature: void printCeSyncEvent(FILE* fh, struct ceSync* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:377,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:378,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:380,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:381,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/print_event.cc:383,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/print_event.cc:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct ceBatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 385
    functionName: printCeBatchEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - getpid
    linkageType: ''
    returnType: void
    signature: void printCeBatchEvent(FILE* fh, struct ceBatch* event)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printGroupApiEventHeader
      Src: /src/nccl/plugins/profiler/example/print_event.cc:392,1
    - Dst: profilerQueueHead
      Src: /src/nccl/plugins/profiler/example/print_event.cc:393,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:395,1
    - Dst: profilerQueueHead
      Src: /src/nccl/plugins/profiler/example/print_event.cc:398,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:400,1
    - Dst: profilerQueueHead
      Src: /src/nccl/plugins/profiler/example/print_event.cc:403,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:405,1
    - Dst: printGroupApiEventTrailer
      Src: /src/nccl/plugins/profiler/example/print_event.cc:408,1
    - Dst: printCollApiEventHeader
      Src: /src/nccl/plugins/profiler/example/print_event.cc:411,1
    - Dst: taskEventQueueHead
      Src: /src/nccl/plugins/profiler/example/print_event.cc:412,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:415,1
    - Dst: printCollApiEventTrailer
      Src: /src/nccl/plugins/profiler/example/print_event.cc:418,1
    - Dst: printP2pApiEventHeader
      Src: /src/nccl/plugins/profiler/example/print_event.cc:421,1
    - Dst: taskEventQueueHead
      Src: /src/nccl/plugins/profiler/example/print_event.cc:422,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:425,1
    - Dst: printP2pApiEventTrailer
      Src: /src/nccl/plugins/profiler/example/print_event.cc:428,1
    - Dst: printKernelLaunchEventHeader
      Src: /src/nccl/plugins/profiler/example/print_event.cc:431,1
    - Dst: printKernelLaunchEventTrailer
      Src: /src/nccl/plugins/profiler/example/print_event.cc:432,1
    - Dst: printGroupEventHeader
      Src: /src/nccl/plugins/profiler/example/print_event.cc:435,1
    - Dst: taskEventQueueHead
      Src: /src/nccl/plugins/profiler/example/print_event.cc:436,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:439,1
    - Dst: printGroupEventTrailer
      Src: /src/nccl/plugins/profiler/example/print_event.cc:442,1
    - Dst: printCollEventHeader
      Src: /src/nccl/plugins/profiler/example/print_event.cc:445,1
    - Dst: printKernelChEventHeader
      Src: /src/nccl/plugins/profiler/example/print_event.cc:447,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:449,1
    - Dst: printKernelChEventTrailer
      Src: /src/nccl/plugins/profiler/example/print_event.cc:451,1
    - Dst: printCollEventTrailer
      Src: /src/nccl/plugins/profiler/example/print_event.cc:453,1
    - Dst: printP2pEventHeader
      Src: /src/nccl/plugins/profiler/example/print_event.cc:456,1
    - Dst: printKernelChEventHeader
      Src: /src/nccl/plugins/profiler/example/print_event.cc:458,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:459,1
    - Dst: printKernelChEventTrailer
      Src: /src/nccl/plugins/profiler/example/print_event.cc:460,1
    - Dst: printP2pEventTrailer
      Src: /src/nccl/plugins/profiler/example/print_event.cc:462,1
    - Dst: printProxyOpEventHeader
      Src: /src/nccl/plugins/profiler/example/print_event.cc:465,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:467,1
    - Dst: printProxyOpEventTrailer
      Src: /src/nccl/plugins/profiler/example/print_event.cc:469,1
    - Dst: printProxyStepEventHeader
      Src: /src/nccl/plugins/profiler/example/print_event.cc:472,1
    - Dst: printNetPluginEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:474,1
    - Dst: printProxyStepEventTrailer
      Src: /src/nccl/plugins/profiler/example/print_event.cc:476,1
    - Dst: printProxyCtrlEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:479,1
    - Dst: printCeCollEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:482,1
    - Dst: printCeSyncEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:485,1
    - Dst: printCeBatchEvent
      Src: /src/nccl/plugins/profiler/example/print_event.cc:488,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 94
    argCount: 2
    argNames:
    - fh
    - handle
    argTypes:
    - FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 491
    functionName: printEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/print_event.cc
    functionUses: 2
    functionsReached:
    - printProxyOpEventHeader
    - printGroupApiEventTrailer
    - printProxyStepEventHeader
    - printP2pApiEventHeader
    - printGroupEventTrailer
    - printP2pEventHeader
    - printCollEventHeader
    - printProxyCtrlEvent
    - profilerQueueHead
    - printCeSyncEvent
    - printP2pApiEventTrailer
    - printNetPluginEvent
    - printProxyOpEventTrailer
    - taskEventQueueHead
    - printGroupApiEventHeader
    - printCollApiEventHeader
    - printKernelChEventHeader
    - printCeBatchEvent
    - printKernelLaunchEventHeader
    - printCeCollEvent
    - printCollEventTrailer
    - printGroupEventHeader
    - printProxyStepEventTrailer
    - printP2pEventTrailer
    - printKernelChEventTrailer
    - printEvent
    - printKernelLaunchEventTrailer
    - printCollApiEventTrailer
    linkageType: ''
    returnType: void
    signature: void printEvent(FILE* fh, void* handle)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getProfilerStartTime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:50,1
    - Dst: cudaEventQuery
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:55,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:57,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:58,1
    - Dst: cudaEventQuery
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:61,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:63,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:64,1
    - Dst: cudaEventElapsedTime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:69,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:80,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:84,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 92
    functionName: pollCeCollEvents
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - getProfilerStartTime
    - cudaEventElapsedTime
    - gettime
    - __atomic_fetch_add
    - cudaEventQuery
    - __atomic_fetch_sub
    linkageType: ''
    returnType: void
    signature: void pollCeCollEvents(struct context* ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getProfilerStartTime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:98,1
    - Dst: cudaEventQuery
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:103,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:105,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:106,1
    - Dst: cudaEventQuery
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:109,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:111,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:112,1
    - Dst: cudaEventElapsedTime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:117,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:128,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:132,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 140
    functionName: pollCeSyncEvents
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - getProfilerStartTime
    - cudaEventElapsedTime
    - gettime
    - __atomic_fetch_add
    - cudaEventQuery
    - __atomic_fetch_sub
    linkageType: ''
    returnType: void
    signature: void pollCeSyncEvents(struct context* ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getProfilerStartTime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:146,1
    - Dst: cudaEventQuery
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:151,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:153,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:154,1
    - Dst: cudaEventQuery
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:157,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:159,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:160,1
    - Dst: cudaEventElapsedTime
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:165,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:176,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:180,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 188
    functionName: pollCeBatchEvents
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - getProfilerStartTime
    - cudaEventElapsedTime
    - gettime
    - __atomic_fetch_add
    - cudaEventQuery
    - __atomic_fetch_sub
    linkageType: ''
    returnType: void
    signature: void pollCeBatchEvents(struct context* ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:192,1
    - Dst: pthread_mutex_trylock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:193,1
    - Dst: usleep
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:194,1
    - Dst: pthread_mutex_trylock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:202,1
    - Dst: pollCeCollEvents
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:206,1
    - Dst: pollCeSyncEvents
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:207,1
    - Dst: pollCeBatchEvents
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:208,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:209,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:212,1
    - Dst: usleep
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 217
    functionName: cePollerThreadMain
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - pthread_mutex_trylock
    - pollCeBatchEvents
    - __atomic_load_n
    - pthread_mutex_unlock
    - pollCeSyncEvents
    - usleep
    - pollCeCollEvents
    linkageType: ''
    returnType: void
    signature: void * cePollerThreadMain(void* arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:221,1
    - Dst: strcasecmp
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:222,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:228,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:230,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:235,1
    - Dst: pthread_create
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:242,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 248
    functionName: ceProfilerInitGlobal
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - calloc
    - pthread_create
    - free
    - strcasecmp
    - atoi
    - getenv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ceProfilerInitGlobal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:253,1
    - Dst: pthread_join
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:254,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fh
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: ceProfilerFinalizeGlobal
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    - pthread_join
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ceProfilerFinalizeGlobal(FILE* fh)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:263,1
    - Dst: pthread_mutex_trylock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:271,1
    - Dst: pthread_mutex_destroy
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:272,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:281,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:289,1
    - Dst: memcpy
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:291,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:292,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:301,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 302
    functionName: ceProfilerRegisterContext
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - calloc
    - pthread_mutex_init
    - memcpy
    - free
    - pthread_mutex_unlock
    - pthread_mutex_destroy
    - pthread_mutex_trylock
    linkageType: ''
    returnType: void
    signature: void ceProfilerRegisterContext(struct context* ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_trylock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:306,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 320
    functionName: ceProfilerDeregisterContext
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_trylock
    linkageType: ''
    returnType: void
    signature: void ceProfilerDeregisterContext(struct context* ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_trylock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:323,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:329,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:330,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:336,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:337,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:343,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:344,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:348,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 349
    functionName: ceProfilerCleanupPendingEvents
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - cudaEventDestroy
    - pthread_mutex_unlock
    - pthread_mutex_trylock
    linkageType: ''
    returnType: void
    signature: void ceProfilerCleanupPendingEvents(struct context* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: ceProfilerGetTimingMode
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CeTimingMode_t
    signature: CeTimingMode_t ceProfilerGetTimingMode(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:359,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:360,1
    - Dst: taskEventQueueEnqueue
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:391,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:392,1
    - Dst: cudaEventCreate
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:397,1
    - Dst: cudaEventCreate
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:398,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:400,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:401,1
    - Dst: cudaEventRecord
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:405,1
    - Dst: pthread_mutex_trylock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:407,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:410,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:414,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 4
    argNames:
    - ctx
    - eHandle
    - eDescr
    - startTime
    argTypes:
    - struct context*
    - void**
    - ncclProfilerEventDescr_v6_t*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 420
    functionName: ceProfilerStartCeCollEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - debugEvent
    - __atomic_fetch_add
    - __atomic_load_n
    - taskEventQueueEnqueue
    - cudaEventRecord
    - pthread_mutex_unlock
    - cudaEventCreateWithFlags
    - cudaEventCreate
    - __atomic_fetch_sub
    - pthread_mutex_trylock
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ceProfilerStartCeCollEvent(struct context* ctx, void**
      eHandle, ncclProfilerEventDescr_v6_t* eDescr, double startTime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cudaEventRecord
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:425,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: ceProfilerStopCeCollEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - cudaEventRecord
    - debugEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ceProfilerStopCeCollEvent(void* eHandle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:433,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:434,1
    - Dst: taskEventQueueEnqueue
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:460,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:461,1
    - Dst: cudaEventCreate
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:466,1
    - Dst: cudaEventCreate
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:467,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:469,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:470,1
    - Dst: cudaEventRecord
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:474,1
    - Dst: pthread_mutex_trylock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:476,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:479,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:483,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 4
    argNames:
    - ctx
    - eHandle
    - eDescr
    - startTime
    argTypes:
    - struct context*
    - void**
    - ncclProfilerEventDescr_v6_t*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 489
    functionName: ceProfilerStartCeSyncEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - debugEvent
    - __atomic_fetch_add
    - __atomic_load_n
    - taskEventQueueEnqueue
    - cudaEventRecord
    - pthread_mutex_unlock
    - cudaEventCreateWithFlags
    - cudaEventCreate
    - __atomic_fetch_sub
    - pthread_mutex_trylock
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ceProfilerStartCeSyncEvent(struct context* ctx, void**
      eHandle, ncclProfilerEventDescr_v6_t* eDescr, double startTime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cudaEventRecord
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:494,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 497
    functionName: ceProfilerStopCeSyncEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - cudaEventRecord
    - debugEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ceProfilerStopCeSyncEvent(void* eHandle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:502,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:503,1
    - Dst: taskEventQueueEnqueue
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:529,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:530,1
    - Dst: cudaEventCreate
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:535,1
    - Dst: cudaEventCreate
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:536,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:538,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:539,1
    - Dst: cudaEventRecord
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:543,1
    - Dst: pthread_mutex_trylock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:545,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:548,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:552,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 4
    argNames:
    - ctx
    - eHandle
    - eDescr
    - startTime
    argTypes:
    - struct context*
    - void**
    - ncclProfilerEventDescr_v6_t*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 558
    functionName: ceProfilerStartCeBatchEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - debugEvent
    - __atomic_fetch_add
    - __atomic_load_n
    - taskEventQueueEnqueue
    - cudaEventRecord
    - pthread_mutex_unlock
    - cudaEventCreateWithFlags
    - cudaEventCreate
    - __atomic_fetch_sub
    - pthread_mutex_trylock
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ceProfilerStartCeBatchEvent(struct context* ctx, void**
      eHandle, ncclProfilerEventDescr_v6_t* eDescr, double startTime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cudaEventRecord
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:563,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: ceProfilerStopCeBatchEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    functionUses: 0
    functionsReached:
    - cudaEventRecord
    - debugEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ceProfilerStopCeBatchEvent(void* eHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - me
    argTypes:
    - profilerQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: profilerQueueConstruct
    functionSourceFile: /src/nccl/plugins/profiler/example/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void profilerQueueConstruct(profilerQueue<T,next> *me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - profilerQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: profilerQueueEmpty
    functionSourceFile: /src/nccl/plugins/profiler/example/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool profilerQueueEmpty(profilerQueue<T,next> *me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - profilerQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: profilerQueueHead
    functionSourceFile: /src/nccl/plugins/profiler/example/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * profilerQueueHead(profilerQueue<T,next> *me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - profilerQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: profilerQueueTail
    functionSourceFile: /src/nccl/plugins/profiler/example/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * profilerQueueTail(profilerQueue<T,next> *me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - me
    - x
    argTypes:
    - profilerQueue<T,next>*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: profilerQueueEnqueue
    functionSourceFile: /src/nccl/plugins/profiler/example/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void profilerQueueEnqueue(profilerQueue<T,next> *me, T *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - me
    argTypes:
    - profilerQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: profilerQueueDequeue
    functionSourceFile: /src/nccl/plugins/profiler/example/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * profilerQueueDequeue(profilerQueue<T,next> *me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: taskEventQueueEmpty
    functionSourceFile: /src/nccl/plugins/profiler/example/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int taskEventQueueEmpty(T *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - event
    argTypes:
    - T*
    - struct taskEventBase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: taskEventQueueEnqueue
    functionSourceFile: /src/nccl/plugins/profiler/example/event.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void taskEventQueueEnqueue(T* obj, struct taskEventBase* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 416
    functionName: taskEventQueueHead
    functionSourceFile: /src/nccl/plugins/profiler/example/event.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct taskEventBase
    signature: struct taskEventBase * taskEventQueueHead(T *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 424
    functionName: taskEventQueueDequeue
    functionSourceFile: /src/nccl/plugins/profiler/example/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct taskEventBase
    signature: struct taskEventBase * taskEventQueueDequeue(T* obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: taskEventQueueEmpty
      Src: /src/nccl/plugins/profiler/example/event.h:428,1
    - Dst: taskEventQueueDequeue
      Src: /src/nccl/plugins/profiler/example/event.h:429,1
    - Dst: memset
      Src: /src/nccl/plugins/profiler/example/event.h:433,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/event.h:435,1
    - Dst: memset
      Src: /src/nccl/plugins/profiler/example/event.h:439,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/event.h:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - obj
    - ctx
    argTypes:
    - T*
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 444
    functionName: resetTaskEvents
    functionSourceFile: /src/nccl/plugins/profiler/example/event.h
    functionUses: 0
    functionsReached:
    - taskEventQueueDequeue
    - memset
    - __atomic_fetch_add
    - taskEventQueueEmpty
    linkageType: ''
    returnType: void
    signature: void resetTaskEvents(T *obj, struct context* ctx)
  - 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: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: INFO
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 394
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO(FLAGS, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: steady_clock::now
      Src: /src/nccl/plugins/profiler/example/plugin.cc:61,1
    - Dst: duration_cast<duration<double, std::micro>>
      Src: /src/nccl/plugins/profiler/example/plugin.cc:62,1
    - Dst: auto::time_since_epoch
      Src: /src/nccl/plugins/profiler/example/plugin.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: gettime
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 3
    functionsReached:
    - steady_clock::now
    - duration_cast<duration<double, std::micro>>
    - auto::time_since_epoch
    linkageType: ''
    returnType: __hidden
    signature: __hidden gettime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: getProfilerStartTime
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getProfilerStartTime(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/plugins/profiler/example/plugin.cc:79,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/plugin.cc:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: deferContextFree
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void deferContextFree(struct context* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/plugins/profiler/example/plugin.cc:87,1
    - Dst: freeContextPools
      Src: /src/nccl/plugins/profiler/example/plugin.cc:91,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:92,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/plugin.cc:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: freeDeferredContexts
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - free
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - freeContextPools
    linkageType: ''
    returnType: void
    signature: void freeDeferredContexts()
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct taskEventBase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: getTaskEventCtx
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct context
    signature: struct context * getTaskEventCtx(struct taskEventBase* base)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: getTaskEventCtx
      Src: /src/nccl/plugins/profiler/example/plugin.cc:119,1
    - Dst: getTaskEventCtx
      Src: /src/nccl/plugins/profiler/example/plugin.cc:123,1
    - Dst: getTaskEventCtx
      Src: /src/nccl/plugins/profiler/example/plugin.cc:127,1
    - Dst: getTaskEventCtx
      Src: /src/nccl/plugins/profiler/example/plugin.cc:132,1
    - Dst: getTaskEventCtx
      Src: /src/nccl/plugins/profiler/example/plugin.cc:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 1
    argNames:
    - eHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 153
    functionName: contextFromEventHandle
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - getTaskEventCtx
    linkageType: ''
    returnType: struct context
    signature: struct context * contextFromEventHandle(void* eHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:159,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:160,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:162,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:163,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:165,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:166,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:168,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:169,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:171,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:172,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:174,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:175,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:177,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:178,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:180,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:181,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:183,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:184,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:186,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:187,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:189,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:190,1
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:192,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 194
    functionName: initPoolSizes
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - getenv
    - atoi
    linkageType: ''
    returnType: void
    signature: void initPoolSizes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: allocateGlobalPools
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t allocateGlobalPools(void)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:207,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:210,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:213,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:216,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:219,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:222,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:225,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:228,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:231,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:237,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:243,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:253,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:254,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:255,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:256,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:257,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:258,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:259,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:260,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:261,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:262,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:263,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 81
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 265
    functionName: allocateContextPools
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - calloc
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t allocateContextPools(struct context* ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:269,1
    - Dst: __atomic_store_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:270,1
    - Dst: atoi
      Src: /src/nccl/plugins/profiler/example/plugin.cc:270,1
    - Dst: initPoolSizes
      Src: /src/nccl/plugins/profiler/example/plugin.cc:272,1
    - Dst: allocateGlobalPools
      Src: /src/nccl/plugins/profiler/example/plugin.cc:274,1
    - Dst: getpid
      Src: /src/nccl/plugins/profiler/example/plugin.cc:279,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:280,1
    - Dst: ceProfilerInitGlobal
      Src: /src/nccl/plugins/profiler/example/plugin.cc:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - eActivationMask
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 292
    functionName: initGlobalProfiler
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    - getpid
    - gettime
    - allocateGlobalPools
    - ceProfilerInitGlobal
    - atoi
    - initPoolSizes
    - getenv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t initGlobalProfiler(int* eActivationMask)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_trylock
      Src: /src/nccl/plugins/profiler/example/plugin.cc:299,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:304,1
    - Dst: initGlobalProfiler
      Src: /src/nccl/plugins/profiler/example/plugin.cc:305,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/plugin.cc:307,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/plugins/profiler/example/plugin.cc:311,1
    - Dst: calloc
      Src: /src/nccl/plugins/profiler/example/plugin.cc:315,1
    - Dst: INFO
      Src: /src/nccl/plugins/profiler/example/plugin.cc:323,1
    - Dst: allocateContextPools
      Src: /src/nccl/plugins/profiler/example/plugin.cc:327,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:329,1
    - Dst: ceProfilerRegisterContext
      Src: /src/nccl/plugins/profiler/example/plugin.cc:333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 8
    argNames:
    - context
    - commId
    - eActivationMask
    - commName
    - nNodes
    - nranks
    - rank
    - logfn
    argTypes:
    - void**
    - uint64_t
    - int*
    - char*
    - int
    - int
    - int
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 337
    functionName: ncclResult_t::exampleProfilerInit
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - calloc
    - INFO
    - allocateContextPools
    - __atomic_fetch_add
    - free
    - pthread_mutex_unlock
    - initGlobalProfiler
    - ceProfilerRegisterContext
    - pthread_mutex_trylock
    linkageType: ''
    returnType: __hidden
    signature: "__hidden ncclResult_t exampleProfilerInit(void** context, uint64_t
      commId,\n                                          int* eActivationMask,\n                                          const
      char* commName, int nNodes,\n                                          int nranks,
      int rank,\n                                          ncclDebugLogger_t logfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nccl/plugins/profiler/example/plugin.cc:343,1
    - Dst: snprintf
      Src: /src/nccl/plugins/profiler/example/plugin.cc:346,1
    - Dst: fopen
      Src: /src/nccl/plugins/profiler/example/plugin.cc:347,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/plugin.cc:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - filename
    - filenameSize
    argTypes:
    - struct context*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 352
    functionName: openTraceFile
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - snprintf
    - fopen
    - getenv
    linkageType: ''
    returnType: FILE
    signature: FILE * openTraceFile(struct context* ctx, char* filename, size_t filenameSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:363,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:369,1
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - fh
    - ctx
    argTypes:
    - FILE*
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 384
    functionName: printAllEvents
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - printEvent
    linkageType: ''
    returnType: void
    signature: void printAllEvents(FILE* fh, struct context* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:388,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:389,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:390,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:391,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:392,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:393,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:394,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:395,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:396,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:397,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 399
    functionName: freeContextPools
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void freeContextPools(struct context* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:407,1
    - Dst: free
      Src: /src/nccl/plugins/profiler/example/plugin.cc:410,1
    - Dst: ceProfilerFinalizeGlobal
      Src: /src/nccl/plugins/profiler/example/plugin.cc:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fh
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 413
    functionName: finalizeGlobalProfiler
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - free
    - printEvent
    - ceProfilerFinalizeGlobal
    linkageType: ''
    returnType: void
    signature: void finalizeGlobalProfiler(FILE* fh)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: openTraceFile
      Src: /src/nccl/plugins/profiler/example/plugin.cc:422,1
    - Dst: INFO
      Src: /src/nccl/plugins/profiler/example/plugin.cc:424,1
    - Dst: __atomic_store_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:429,1
    - Dst: usleep
      Src: /src/nccl/plugins/profiler/example/plugin.cc:432,1
    - Dst: INFO
      Src: /src/nccl/plugins/profiler/example/plugin.cc:441,1
    - Dst: printAllEvents
      Src: /src/nccl/plugins/profiler/example/plugin.cc:444,1
    - Dst: ceProfilerCleanupPendingEvents
      Src: /src/nccl/plugins/profiler/example/plugin.cc:447,1
    - Dst: ceProfilerDeregisterContext
      Src: /src/nccl/plugins/profiler/example/plugin.cc:448,1
    - Dst: deferContextFree
      Src: /src/nccl/plugins/profiler/example/plugin.cc:449,1
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/plugins/profiler/example/plugin.cc:451,1
    - Dst: finalizeGlobalProfiler
      Src: /src/nccl/plugins/profiler/example/plugin.cc:452,1
    - Dst: freeDeferredContexts
      Src: /src/nccl/plugins/profiler/example/plugin.cc:453,1
    - Dst: fprintf
      Src: /src/nccl/plugins/profiler/example/plugin.cc:456,1
    - Dst: fclose
      Src: /src/nccl/plugins/profiler/example/plugin.cc:457,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 460
    functionName: ncclResult_t::exampleProfilerFinalize
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    - __atomic_sub_fetch
    - INFO
    - finalizeGlobalProfiler
    - printAllEvents
    - ceProfilerCleanupPendingEvents
    - fprintf
    - deferContextFree
    - ceProfilerDeregisterContext
    - freeDeferredContexts
    - usleep
    - openTraceFile
    - fclose
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerFinalize(void* context)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:470,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:475,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:476,1
    - Dst: profilerQueueEmpty
      Src: /src/nccl/plugins/profiler/example/plugin.cc:480,1
    - Dst: profilerQueueDequeue
      Src: /src/nccl/plugins/profiler/example/plugin.cc:481,1
    - Dst: resetTaskEvents
      Src: /src/nccl/plugins/profiler/example/plugin.cc:482,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:483,1
    - Dst: profilerQueueEmpty
      Src: /src/nccl/plugins/profiler/example/plugin.cc:485,1
    - Dst: profilerQueueDequeue
      Src: /src/nccl/plugins/profiler/example/plugin.cc:486,1
    - Dst: resetTaskEvents
      Src: /src/nccl/plugins/profiler/example/plugin.cc:487,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:488,1
    - Dst: profilerQueueEmpty
      Src: /src/nccl/plugins/profiler/example/plugin.cc:490,1
    - Dst: profilerQueueDequeue
      Src: /src/nccl/plugins/profiler/example/plugin.cc:491,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:492,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/plugin.cc:496,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:504,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:509,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:510,1
    - Dst: resetTaskEvents
      Src: /src/nccl/plugins/profiler/example/plugin.cc:513,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/plugin.cc:516,1
    - Dst: profilerQueueEnqueue
      Src: /src/nccl/plugins/profiler/example/plugin.cc:530,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:531,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:536,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:537,1
    - Dst: resetTaskEvents
      Src: /src/nccl/plugins/profiler/example/plugin.cc:540,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/plugin.cc:543,1
    - Dst: profilerQueueEnqueue
      Src: /src/nccl/plugins/profiler/example/plugin.cc:556,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:557,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:562,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:563,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/plugin.cc:568,1
    - Dst: profilerQueueEnqueue
      Src: /src/nccl/plugins/profiler/example/plugin.cc:575,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:576,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:581,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:582,1
    - Dst: taskEventQueueEmpty
      Src: /src/nccl/plugins/profiler/example/plugin.cc:585,1
    - Dst: taskEventQueueDequeue
      Src: /src/nccl/plugins/profiler/example/plugin.cc:586,1
    - Dst: memset
      Src: /src/nccl/plugins/profiler/example/plugin.cc:590,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:592,1
    - Dst: memset
      Src: /src/nccl/plugins/profiler/example/plugin.cc:596,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:598,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/plugin.cc:603,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:609,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:611,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:618,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:619,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/plugin.cc:624,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:631,1
    - Dst: taskEventQueueEnqueue
      Src: /src/nccl/plugins/profiler/example/plugin.cc:644,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:646,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:647,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:654,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:655,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/plugin.cc:660,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:668,1
    - Dst: taskEventQueueEnqueue
      Src: /src/nccl/plugins/profiler/example/plugin.cc:677,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:678,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:679,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:681,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:685,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:695,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/plugins/profiler/example/plugin.cc:701,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:713,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:717,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:735,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:738,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:739,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:753,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:756,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:757,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:771,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:774,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:785,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:787,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:788,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:796,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:798,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:799,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:811,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:823,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:825,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:830,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:840,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:842,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 316
    argCount: 3
    argNames:
    - context
    - eHandle
    - eDescr
    argTypes:
    - void*
    - void**
    - ncclProfilerEventDescr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 847
    functionName: ncclResult_t::exampleProfilerStartEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - profilerQueueEnqueue
    - gettime
    - debugEvent
    - resetTaskEvents
    - __atomic_load_n
    - __atomic_fetch_add
    - taskEventQueueDequeue
    - profilerQueueEmpty
    - memset
    - taskEventQueueEnqueue
    - profilerQueueDequeue
    - __atomic_fetch_sub
    - taskEventQueueEmpty
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerStartEvent(void* context, void**
      eHandle, ncclProfilerEventDescr_t* eDescr)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/plugins/profiler/example/plugin.cc:853,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:854,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:855,1
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/plugins/profiler/example/plugin.cc:859,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:860,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:861,1
    - Dst: updateEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:863,1
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/plugins/profiler/example/plugin.cc:867,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:868,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:869,1
    - Dst: updateEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:871,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:872,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:875,1
    - Dst: updateEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:876,1
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/plugins/profiler/example/plugin.cc:879,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:880,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/plugins/profiler/example/plugin.cc:882,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:884,1
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/plugins/profiler/example/plugin.cc:887,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:888,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:889,1
    - Dst: updateEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:890,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:893,1
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/plugins/profiler/example/plugin.cc:896,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:897,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:898,1
    - Dst: updateEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:899,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:902,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:905,1
    - Dst: __atomic_add_fetch
      Src: /src/nccl/plugins/profiler/example/plugin.cc:908,1
    - Dst: __atomic_store_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:911,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:913,1
    - Dst: __atomic_store_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:914,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:916,1
    - Dst: updateEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:919,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:920,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:923,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:924,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:927,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:928,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:931,1
    - Dst: updateEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:932,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:933,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:936,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:937,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 82
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 849
    functionDepth: 2
    functionLinenumber: 849
    functionLinenumberEnd: 939
    functionName: updateEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 1
    functionsReached:
    - updateEvent
    - __atomic_sub_fetch
    - __atomic_store_n
    - gettime
    - debugEvent
    - __atomic_add_fetch
    - __atomic_fetch_add
    - __atomic_load_n
    linkageType: ''
    returnType: void
    signature: void updateEvent(void* handle)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: contextFromEventHandle
      Src: /src/nccl/plugins/profiler/example/plugin.cc:944,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:945,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:955,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:959,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:963,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:967,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:971,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:975,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:979,1
    - Dst: updateEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:983,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - eHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 941
    functionDepth: 3
    functionLinenumber: 941
    functionLinenumberEnd: 985
    functionName: ncclResult_t::exampleProfilerStopEvent
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - updateEvent
    - gettime
    - contextFromEventHandle
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerStopEvent(void* eHandle)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: contextFromEventHandle
      Src: /src/nccl/plugins/profiler/example/plugin.cc:990,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:991,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:999,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1001,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1006,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1013,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1018,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1022,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1026,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1029,1
    - Dst: gettime
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1033,1
    - Dst: debugEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1050,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 3
    argNames:
    - eHandle
    - eState
    - eStateArgs
    argTypes:
    - void*
    - ncclProfilerEventState_t
    - ncclProfilerEventStateArgs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 1052
    functionName: ncclResult_t::exampleProfilerRecordEventState
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - debugEvent
    - gettime
    - contextFromEventHandle
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerRecordEventState(void* eHandle,
      ncclProfilerEventState_t eState, ncclProfilerEventStateArgs_t* eStateArgs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: visibility
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1063,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1065,1
    - Dst: __atomic_store_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - eActivationMask
    - name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1069
    functionName: exampleProfilerStart
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - visibility
    - __atomic_load_n
    - __atomic_store_n
    linkageType: ''
    returnType: int
    signature: int exampleProfilerStart(int eActivationMask, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: visibility
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1071,1
    - Dst: __atomic_load_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1072,1
    - Dst: __atomic_store_n
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1076
    functionName: exampleProfilerStop
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - visibility
    - __atomic_load_n
    - __atomic_store_n
    linkageType: ''
    returnType: int
    signature: int exampleProfilerStop(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ceProfilerStartCeCollEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1092,1
    - Dst: ceProfilerStartCeSyncEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1096,1
    - Dst: ceProfilerStartCeBatchEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1100,1
    - Dst: ncclResult_t::exampleProfilerStartEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - context
    - eHandle
    - eDescr
    argTypes:
    - void*
    - void**
    - ncclProfilerEventDescr_v6_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1084
    functionDepth: 3
    functionLinenumber: 1084
    functionLinenumberEnd: 1104
    functionName: ncclResult_t::exampleProfilerStartEvent_v6
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - ceProfilerStartCeSyncEvent
    - ceProfilerStartCeBatchEvent
    - ceProfilerStartCeCollEvent
    - ncclResult_t::exampleProfilerStartEvent
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerStartEvent_v6(void* context, void**
      eHandle, ncclProfilerEventDescr_v6_t* eDescr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ceProfilerStopCeCollEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1113,1
    - Dst: ceProfilerStopCeSyncEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1117,1
    - Dst: ceProfilerStopCeBatchEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1121,1
    - Dst: ncclResult_t::exampleProfilerStopEvent
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - eHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1106
    functionDepth: 4
    functionLinenumber: 1106
    functionLinenumberEnd: 1126
    functionName: ncclResult_t::exampleProfilerStopEvent_v6
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - ceProfilerStopCeCollEvent
    - ncclResult_t::exampleProfilerStopEvent
    - ceProfilerStopCeSyncEvent
    - ceProfilerStopCeBatchEvent
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerStopEvent_v6(void* eHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::exampleProfilerRecordEventState
      Src: /src/nccl/plugins/profiler/example/plugin.cc:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - eHandle
    - eState
    - eStateArgs
    argTypes:
    - void*
    - ncclProfilerEventState_v6_t
    - ncclProfilerEventStateArgs_v6_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1132
    functionName: ncclResult_t::exampleProfilerRecordEventState_v6
    functionSourceFile: /src/nccl/plugins/profiler/example/plugin.cc
    functionUses: 0
    functionsReached:
    - ncclResult_t::exampleProfilerRecordEventState
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerRecordEventState_v6(void* eHandle,
      ncclProfilerEventState_v6_t eState, ncclProfilerEventStateArgs_v6_t* eStateArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - commId
    - config
    - logFunction
    - profFunction
    argTypes:
    - void**
    - uint64_t
    - ncclNetCommConfig_t*
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: ncclResult_t::pluginInit
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginInit(void** ctx, uint64_t commId, ncclNetCommConfig_t*
      config, 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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: ncclResult_t::pluginDevices
    functionSourceFile: /src/nccl/plugins/mixed/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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: ncclResult_t::pluginPciPath
    functionSourceFile: /src/nccl/plugins/mixed/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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: ncclResult_t::pluginPtrSupport
    functionSourceFile: /src/nccl/plugins/mixed/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: 21
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 62
    functionName: ncclResult_t::pluginGetProperties
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 3
    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: 4
    argNames:
    - ctx
    - dev
    - handle
    - listenComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: ncclResult_t::pluginListen
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginListen(void* ctx, int dev, void* handle,
      void** listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - dev
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - void*
    - int
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: ncclResult_t::pluginConnect
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginConnect(void* ctx, int dev, 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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: ncclResult_t::pluginAccept
    functionSourceFile: /src/nccl/plugins/mixed/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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: ncclResult_t::pluginRegMr
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 1
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: ncclResult_t::pluginRegMrDmaBuf
    functionSourceFile: /src/nccl/plugins/mixed/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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: ncclResult_t::pluginDeregMr
    functionSourceFile: /src/nccl/plugins/mixed/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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: ncclResult_t::pluginIsend
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 2
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: ncclResult_t::pluginIrecv
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 2
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: ncclResult_t::pluginIflush
    functionSourceFile: /src/nccl/plugins/mixed/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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: ncclResult_t::pluginTest
    functionSourceFile: /src/nccl/plugins/mixed/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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: ncclResult_t::pluginCloseSend
    functionSourceFile: /src/nccl/plugins/mixed/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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: ncclResult_t::pluginCloseRecv
    functionSourceFile: /src/nccl/plugins/mixed/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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: ncclResult_t::pluginCloseListen
    functionSourceFile: /src/nccl/plugins/mixed/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: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: ncclResult_t::pluginIrecvConsumed
    functionSourceFile: /src/nccl/plugins/mixed/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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: ncclResult_t::pluginGetDeviceMr
    functionSourceFile: /src/nccl/plugins/mixed/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: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ncclResult_t::pluginMakeVDevice
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginMakeVDevice(int* d, ncclNetVDeviceProps_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: ncclResult_t::pluginFinalize
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginFinalize(void* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - context
    - commId
    - nRanks
    - nNodes
    - logFunction
    - nvlDomainInfo
    - constants
    argTypes:
    - void**
    - uint64_t
    - size_t
    - size_t
    - ncclDebugLogger_t
    - ncclNvlDomainInfo_v5_t*
    - ncclTunerConstants_v6_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: ncclResult_t::tunerPluginInit
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t tunerPluginInit(void** context, uint64_t commId,
      size_t nRanks, size_t nNodes, ncclDebugLogger_t logFunction, ncclNvlDomainInfo_v5_t*
      nvlDomainInfo, ncclTunerConstants_v6_t* constants)
  - 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: 120
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: ncclResult_t::tunerPluginGetCollInfo
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: "__hidden ncclResult_t tunerPluginGetCollInfo(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: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: ncclResult_t::tunerPluginFinalize
    functionSourceFile: /src/nccl/plugins/mixed/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t tunerPluginFinalize(void* context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ncclMajor
    - ncclMinor
    - ncclPatch
    - suffix
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: ncclEnvInit
    functionSourceFile: /src/nccl/plugins/env/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclEnvInit(uint8_t ncclMajor, uint8_t ncclMinor, uint8_t
      ncclPatch, const char* suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: ncclEnvFinalize
    functionSourceFile: /src/nccl/plugins/env/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclEnvFinalize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nccl/plugins/env/example/plugin.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: ncclEnvGetEnv
    functionSourceFile: /src/nccl/plugins/env/example/plugin.c
    functionUses: 0
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: char * ncclEnvGetEnv(const char* name)
  - 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: 12
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 12
    functionName: ncclResult_t::pluginInit
    functionSourceFile: /src/nccl/plugins/tuner/basic/plugin.c
    functionUses: 1
    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: 24
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 24
    functionName: ncclResult_t::pluginGetCollInfo
    functionSourceFile: /src/nccl/plugins/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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: ncclResult_t::pluginDestroy
    functionSourceFile: /src/nccl/plugins/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/plugins/tuner/example/plugin.c:60,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:61,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:62,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:63,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: parseCollType
    functionSourceFile: /src/nccl/plugins/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: 78
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: collTypeToString
    functionSourceFile: /src/nccl/plugins/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/plugins/tuner/example/plugin.c:82,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:83,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:84,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:85,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:86,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:87,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:88,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: parseAlgorithm
    functionSourceFile: /src/nccl/plugins/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: 104
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: algorithmToString
    functionSourceFile: /src/nccl/plugins/tuner/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algorithmToString(int algorithm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:108,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:109,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/plugin.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: parseProtocol
    functionSourceFile: /src/nccl/plugins/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: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: protocolToString
    functionSourceFile: /src/nccl/plugins/tuner/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * protocolToString(int protocol)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/plugins/tuner/example/plugin.c:126,1
    - Dst: fgets
      Src: /src/nccl/plugins/tuner/example/plugin.c:134,1
    - Dst: strcspn
      Src: /src/nccl/plugins/tuner/example/plugin.c:139,1
    - Dst: strlen
      Src: /src/nccl/plugins/tuner/example/plugin.c:142,1
    - Dst: fclose
      Src: /src/nccl/plugins/tuner/example/plugin.c:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 149
    functionName: countConfigLines
    functionSourceFile: /src/nccl/plugins/tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - fgets
    - strlen
    - strcspn
    - fopen
    - fclose
    linkageType: ''
    returnType: int
    signature: int countConfigLines(const char* filename)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/plugins/tuner/example/plugin.c:153,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:156,1
    - Dst: countConfigLines
      Src: /src/nccl/plugins/tuner/example/plugin.c:163,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:166,1
    - Dst: fclose
      Src: /src/nccl/plugins/tuner/example/plugin.c:169,1
    - Dst: malloc
      Src: /src/nccl/plugins/tuner/example/plugin.c:174,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:177,1
    - Dst: fclose
      Src: /src/nccl/plugins/tuner/example/plugin.c:180,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:188,1
    - Dst: fseek
      Src: /src/nccl/plugins/tuner/example/plugin.c:193,1
    - Dst: fgets
      Src: /src/nccl/plugins/tuner/example/plugin.c:197,1
    - Dst: strcspn
      Src: /src/nccl/plugins/tuner/example/plugin.c:202,1
    - Dst: strncpy
      Src: /src/nccl/plugins/tuner/example/plugin.c:211,1
    - Dst: strtok
      Src: /src/nccl/plugins/tuner/example/plugin.c:215,1
    - Dst: strlen
      Src: /src/nccl/plugins/tuner/example/plugin.c:219,1
    - Dst: strtok
      Src: /src/nccl/plugins/tuner/example/plugin.c:225,1
    - Dst: parseCollType
      Src: /src/nccl/plugins/tuner/example/plugin.c:231,1
    - Dst: strtoull
      Src: /src/nccl/plugins/tuner/example/plugin.c:232,1
    - Dst: strtoull
      Src: /src/nccl/plugins/tuner/example/plugin.c:233,1
    - Dst: parseAlgorithm
      Src: /src/nccl/plugins/tuner/example/plugin.c:234,1
    - Dst: parseProtocol
      Src: /src/nccl/plugins/tuner/example/plugin.c:235,1
    - Dst: atoi
      Src: /src/nccl/plugins/tuner/example/plugin.c:236,1
    - Dst: atoi
      Src: /src/nccl/plugins/tuner/example/plugin.c:237,1
    - Dst: atoi
      Src: /src/nccl/plugins/tuner/example/plugin.c:238,1
    - Dst: atoi
      Src: /src/nccl/plugins/tuner/example/plugin.c:242,1
    - Dst: atoi
      Src: /src/nccl/plugins/tuner/example/plugin.c:249,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:258,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:264,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:270,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:276,1
    - Dst: fclose
      Src: /src/nccl/plugins/tuner/example/plugin.c:286,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:288,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 85
    argCount: 2
    argNames:
    - ctx
    - filename
    argTypes:
    - TunerContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 292
    functionName: loadConfig
    functionSourceFile: /src/nccl/plugins/tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - parseAlgorithm
    - TunerContext*::logFunction
    - countConfigLines
    - fgets
    - parseCollType
    - strtok
    - strlen
    - parseProtocol
    - strcspn
    - strtoull
    - fopen
    - atoi
    - malloc
    - fseek
    - strncpy
    - fclose
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t loadConfig(TunerContext* ctx, const char* filename)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/plugins/tuner/example/plugin.c:313,1
    - Dst: memset
      Src: /src/nccl/plugins/tuner/example/plugin.c:325,1
    - Dst: logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:329,1
    - Dst: getenv
      Src: /src/nccl/plugins/tuner/example/plugin.c:335,1
    - Dst: loadConfig
      Src: /src/nccl/plugins/tuner/example/plugin.c:340,1
    - Dst: free
      Src: /src/nccl/plugins/tuner/example/plugin.c:343,1
    - Dst: free
      Src: /src/nccl/plugins/tuner/example/plugin.c:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 7
    argNames:
    - context
    - commId
    - nRanks
    - nNodes
    - logFunction
    - nvlDomainInfo
    - constants
    argTypes:
    - void**
    - uint64_t
    - size_t
    - size_t
    - ncclDebugLogger_t
    - ncclNvlDomainInfo_v5_t*
    - ncclTunerConstants_v5_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 351
    functionName: ncclResult_t::pluginInit
    functionSourceFile: /src/nccl/plugins/tuner/example/plugin.c
    functionUses: 1
    functionsReached:
    - logFunction
    - free
    - memset
    - malloc
    - loadConfig
    - getenv
    linkageType: ''
    returnType: __hidden
    signature: "__hidden ncclResult_t pluginInit(void** context, uint64_t commId,
      size_t nRanks, size_t nNodes, ncclDebugLogger_t logFunction,\n                                 ncclNvlDomainInfo_v5_t*
      nvlDomainInfo, ncclTunerConstants_v5_t* constants)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:364,1
    - Dst: collTypeToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:366,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:374,1
    - Dst: collTypeToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:376,1
    - Dst: algorithmToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:376,1
    - Dst: protocolToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:376,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:390,1
    - Dst: algorithmToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:392,1
    - Dst: protocolToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:392,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:399,1
    - Dst: algorithmToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:401,1
    - Dst: protocolToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:401,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:413,1
    - Dst: collTypeToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:415,1
    - Dst: algorithmToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:415,1
    - Dst: protocolToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:415,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:418,1
    - Dst: collTypeToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:420,1
    - Dst: algorithmToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:420,1
    - Dst: protocolToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:420,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:427,1
    - Dst: algorithmToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:429,1
    - Dst: protocolToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:429,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:434,1
    - Dst: algorithmToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:436,1
    - Dst: protocolToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:436,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:441,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:455,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 53
    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: 460
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 460
    functionName: ncclResult_t::pluginGetCollInfo
    functionSourceFile: /src/nccl/plugins/tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - protocolToString
    - collTypeToString
    - TunerContext*::logFunction
    - 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/plugins/tuner/example/plugin.c:479,1
    - Dst: collTypeToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:482,1
    - Dst: algorithmToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:482,1
    - Dst: protocolToString
      Src: /src/nccl/plugins/tuner/example/plugin.c:482,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 7
    argNames:
    - context
    - collType
    - nBytes
    - algo
    - proto
    - nChannels
    - chunkSize
    argTypes:
    - void*
    - ncclFunc_t
    - size_t
    - int
    - int
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 487
    functionName: ncclResult_t::pluginGetChunkSize
    functionSourceFile: /src/nccl/plugins/tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - protocolToString
    - collTypeToString
    - TunerContext*::logFunction
    - algorithmToString
    linkageType: ''
    returnType: __hidden
    signature: "__hidden ncclResult_t pluginGetChunkSize(void* context, ncclFunc_t
      collType, size_t nBytes,\n                                         int algo,
      int proto, int nChannels, size_t* chunkSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/plugins/tuner/example/plugin.c:493,1
    - Dst: free
      Src: /src/nccl/plugins/tuner/example/plugin.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 498
    functionName: ncclResult_t::pluginFinalize
    functionSourceFile: /src/nccl/plugins/tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginFinalize(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: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: TEST_ASSERT
    functionSourceFile: /src/nccl/plugins/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: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: TEST_PASS
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_PASS()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:54,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:58,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:60,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:62,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:82,1
    - Dst: va_start
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:86,1
    - Dst: vprintf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:87,1
    - Dst: va_end
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:88,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:90,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: 91
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 91
    functionName: mock_logger
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - vprintf
    - va_start
    - va_end
    - strcmp
    - printf
    - getenv
    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/plugins/tuner/example/test/test_plugin.c:95,1
    - Dst: fprintf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:97,1
    - Dst: fclose
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - filename
    - content
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: create_test_config
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fopen
    - fclose
    linkageType: ''
    returnType: void
    signature: void create_test_config(const char* filename, const char* content)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:107,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:108,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:109,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:112,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: test_plugin_init
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - pluginFinalize
    - TEST_ASSERT
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_plugin_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:126,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:129,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:132,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:133,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:136,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:137,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:138,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 140
    functionName: test_config_parsing_valid
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - create_test_config
    - pluginFinalize
    - setenv
    - unlink
    - TEST_ASSERT
    - unsetenv
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_config_parsing_valid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:149,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:150,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:153,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:155,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:158,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:159,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:160,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 162
    functionName: test_config_parsing_invalid
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - create_test_config
    - pluginFinalize
    - setenv
    - unlink
    - TEST_ASSERT
    - unsetenv
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_config_parsing_invalid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:170,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:171,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:174,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:189,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:193,1
    - Dst: mock_logger
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:194,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:197,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:198,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:207,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:210,1
    - Dst: mock_logger
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:211,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:214,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:215,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:218,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:219,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:220,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 222
    functionName: test_collective_matching
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - mock_logger
    - TEST_PASS
    - create_test_config
    - pluginFinalize
    - setenv
    - unlink
    - pluginGetCollInfo
    - TEST_ASSERT
    - unsetenv
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_collective_matching()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:231,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:232,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:235,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:247,1
    - Dst: mock_logger
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:250,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:253,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:254,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:263,1
    - Dst: mock_logger
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:266,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:269,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:270,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:279,1
    - Dst: mock_logger
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:282,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:285,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:286,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:289,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:290,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:291,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:292,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 293
    functionName: test_size_matching
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - mock_logger
    - TEST_PASS
    - create_test_config
    - pluginFinalize
    - setenv
    - unlink
    - pluginGetCollInfo
    - TEST_ASSERT
    - unsetenv
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_size_matching()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:302,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:303,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:307,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:319,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:322,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:323,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:325,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:329,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:337,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:340,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:341,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:344,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:345,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 347
    functionName: test_topology_matching
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - create_test_config
    - pluginFinalize
    - setenv
    - unlink
    - pluginGetCollInfo
    - TEST_ASSERT
    - unsetenv
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_topology_matching()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:354,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:355,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:358,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:370,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:374,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:375,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:378,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:379,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:380,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 382
    functionName: test_default_channels
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - create_test_config
    - pluginFinalize
    - setenv
    - unlink
    - pluginGetCollInfo
    - TEST_ASSERT
    - unsetenv
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_default_channels()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:391,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:392,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:395,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:412,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:415,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:416,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:425,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:428,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:429,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:439,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:442,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:443,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:446,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:447,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:448,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:449,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 450
    functionName: test_regbuff_matching
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - create_test_config
    - pluginFinalize
    - setenv
    - unlink
    - pluginGetCollInfo
    - TEST_ASSERT
    - unsetenv
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_regbuff_matching()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:459,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:460,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:463,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:480,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:483,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:484,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:493,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:496,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:497,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:506,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:509,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:510,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:513,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:514,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:515,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 517
    functionName: test_pipeops_matching
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - create_test_config
    - pluginFinalize
    - setenv
    - unlink
    - pluginGetCollInfo
    - TEST_ASSERT
    - unsetenv
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_pipeops_matching()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:524,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:525,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:528,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:541,1
    - Dst: mock_logger
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:545,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:548,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:549,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:552,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:553,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:554,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 556
    functionName: test_no_match_fallback
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - mock_logger
    - TEST_PASS
    - create_test_config
    - pluginFinalize
    - setenv
    - unlink
    - pluginGetCollInfo
    - TEST_ASSERT
    - unsetenv
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_no_match_fallback()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:564,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:565,1
    - Dst: fprintf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:568,1
    - Dst: fprintf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:569,1
    - Dst: fprintf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:591,1
    - Dst: fclose
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:595,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:598,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:602,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:603,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:604,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:608,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:609,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:610,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:617,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:619,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:620,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:626,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:630,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:634,1
    - Dst: mock_logger
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:637,1
    - Dst: mock_logger
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:639,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:655,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:658,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:661,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:662,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:663,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 666
    functionName: test_large_config
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - mock_logger
    - TEST_PASS
    - fprintf
    - setenv
    - pluginFinalize
    - unlink
    - pluginGetCollInfo
    - TEST_ASSERT
    - pluginInit
    - unsetenv
    - fopen
    - fclose
    linkageType: ''
    returnType: int
    signature: int test_large_config()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:673,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:674,1
    - Dst: fprintf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:676,1
    - Dst: fprintf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:683,1
    - Dst: fclose
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:687,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:689,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:693,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:694,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:697,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:698,1
    - Dst: mock_logger
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:700,1
    - Dst: mock_logger
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:702,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:709,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:710,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:714,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:715,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:716,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 719
    functionName: test_very_large_config_stress
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - mock_logger
    - TEST_PASS
    - fprintf
    - setenv
    - pluginFinalize
    - unlink
    - TEST_ASSERT
    - pluginInit
    - unsetenv
    - fopen
    - fclose
    linkageType: ''
    returnType: int
    signature: int test_very_large_config_stress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:726,1
    - Dst: setenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:732,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:735,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:736,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:739,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:740,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:741,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:754,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:757,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:760,1
    - Dst: unlink
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:761,1
    - Dst: unsetenv
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:762,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 765
    functionName: test_empty_config
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - create_test_config
    - pluginFinalize
    - setenv
    - unlink
    - pluginGetCollInfo
    - TEST_ASSERT
    - unsetenv
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_empty_config()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:769,1
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:779,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:780,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:783,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:784,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:785,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:788,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:789,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 791
    functionName: test_nvl_domain_info
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - pluginFinalize
    - TEST_ASSERT
    - printf
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_nvl_domain_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginInit
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:875,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:876,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:879,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:880,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:881,1
    - Dst: pluginFinalize
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:884,1
    - Dst: TEST_PASS
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 886
    functionName: test_tuner_constants
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - pluginFinalize
    - TEST_ASSERT
    - pluginInit
    linkageType: ''
    returnType: int
    signature: int test_tuner_constants()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:920,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:921,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:923,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:925,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:926,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:927,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:928,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 930
    functionName: show_help
    functionSourceFile: /src/nccl/plugins/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/plugins/tuner/example/test/test_plugin.c:935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 940
    functionName: find_test
    functionSourceFile: /src/nccl/plugins/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/plugins/tuner/example/test/test_plugin.c:947,1
    - Dst: strcmp
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:947,1
    - Dst: show_help
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:948,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:952,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:953,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:958,1
    - Dst: func
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:960,1
    - Dst: find_test
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:965,1
    - Dst: test_func
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:968,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:970,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:971,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:977,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:978,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:981,1
    - Dst: printf
      Src: /src/nccl/plugins/tuner/example/test/test_plugin.c:984,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 987
    functionName: main
    functionSourceFile: /src/nccl/plugins/tuner/example/test/test_plugin.c
    functionUses: 1
    functionsReached:
    - test_func
    - find_test
    - printf
    - strcmp
    - func
    - show_help
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: NCCL_CHECK_RESULT
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_CHECK_RESULT(cmd)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - nccl_type
    argTypes:
    - ncclDataType_t
    assertStmts:
    - condition: (false && "Unsupported ncclDataType_t for conversion to cudaDataType_t")
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: ncclDataTypeToCudaDataType
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: cudaDataType_t
    signature: cudaDataType_t ncclDataTypeToCudaDataType(ncclDataType_t nccl_type)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - nccl_type
    argTypes:
    - ncclDataType_t
    assertStmts:
    - condition: (false && "Unsupported ncclDataType_t for size query")
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    constantsTouched: []
    func_position:
      end: 101
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 101
    functionName: ncclTypeSize
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 35
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t ncclTypeSize(ncclDataType_t nccl_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:117,1
    - Dst: cudaMalloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:117,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:118,1
    - Dst: cudaMemcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:118,1
    - Dst: static_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:119,1
    - Dst: static_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:120,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:122,1
    - Dst: ncclAllGather
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:122,1
    - Dst: static_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:123,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:125,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:125,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:126,1
    - Dst: cudaMemcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:126,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:127,1
    - Dst: cudaFree
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - host_buffer
    - element_size
    - rank
    - nRanks
    - comm
    - stream
    argTypes:
    - void*
    - size_t
    - int
    - int
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: ncclAllGatherHost
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - NCCL_CHECK_RESULT
    - static_cast<uint8_t*>
    - CUDA_CHECK
    - cudaStreamSynchronize
    - cudaMemcpy
    - ncclAllGather
    - cudaMalloc
    - cudaFree
    linkageType: ''
    returnType: void
    signature: "void ncclAllGatherHost(\n    void* host_buffer,\n    size_t element_size,\n
      \   int rank,\n    int nRanks,\n    ncclComm_t comm,\n    cudaStream_t stream\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:137,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:139,1
    - Dst: cudaMalloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:139,1
    - Dst: reinterpret_cast<void**>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:139,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:142,1
    - Dst: cudaMemset
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:142,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:143,1
    - Dst: ncclAllReduce
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:143,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:144,1
    - Dst: cudaDeviceSynchronize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:144,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:146,1
    - Dst: cudaFree
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - comm
    - stream
    argTypes:
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: ncclBarrier
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - NCCL_CHECK_RESULT
    - ncclAllReduce
    - reinterpret_cast<void**>
    - static_cast<int*>
    - CUDA_CHECK
    - cudaMemset
    - cudaMalloc
    - cudaFree
    - cudaDeviceSynchronize
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclBarrier(ncclComm_t comm, cudaStream_t stream, void*
      workspace = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 315
    functionName: ncclEpGroup
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclEpGroup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:331,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:334,1
    - Dst: cudaMalloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:334,1
    - Dst: uint8_t::uint8_t
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:337,1
    - Dst: memcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:339,1
    - Dst: std::unique_ptr::get
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:339,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:342,1
    - Dst: cudaMemcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:342,1
    - Dst: static_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:343,1
    - Dst: std::unique_ptr::get
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:344,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:347,1
    - Dst: ncclAllGather
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:347,1
    - Dst: static_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:348,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:350,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:350,1
    - Dst: uint8_t::uint8_t
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:353,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:354,1
    - Dst: cudaMemcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:354,1
    - Dst: std::unique_ptr::get
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:354,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:355,1
    - Dst: cudaFree
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:355,1
    - Dst: static_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:359,1
    - Dst: memcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:361,1
    - Dst: std::unique_ptr::get
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - local_handles
    - all_handles
    - num_handles
    - rank
    - nRanks
    - comm
    - stream
    argTypes:
    - void**
    - void**
    - int
    - int
    - int
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 366
    functionName: batchAllGatherIpcHandles
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - NCCL_CHECK_RESULT
    - static_cast<uint8_t*>
    - CUDA_CHECK
    - uint8_t::uint8_t
    - cudaMemcpy
    - memcpy
    - std::unique_ptr::get
    - cudaStreamSynchronize
    - ncclAllGather
    - cudaMalloc
    - cudaFree
    linkageType: ''
    returnType: void
    signature: "void batchAllGatherIpcHandles(\n    const void* const* local_handles,\n
      \   void** all_handles,\n    int num_handles,\n    int rank,\n    int nRanks,\n
      \   ncclComm_t comm,\n    cudaStream_t stream\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:397,1
    - Dst: cudaDeviceCanAccessPeer
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:397,1
    - Dst: cudaDeviceEnablePeerAccess
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:399,1
    - Dst: fprintf
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:401,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:405,1
    - Dst: cudaDeviceSynchronize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:405,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:415,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:416,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:417,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:418,1
    - Dst: align_ipc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:420,1
    - Dst: align_ipc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:421,1
    - Dst: align_ipc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:422,1
    - Dst: align_ipc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:423,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:427,1
    - Dst: cudaMalloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:427,1
    - Dst: static_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:430,1
    - Dst: reinterpret_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:435,1
    - Dst: reinterpret_cast<uint16_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:438,1
    - Dst: reinterpret_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:442,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:450,1
    - Dst: cudaHostAlloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:450,1
    - Dst: static_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:452,1
    - Dst: reinterpret_cast<void**>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:453,1
    - Dst: reinterpret_cast<float**>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:455,1
    - Dst: reinterpret_cast<uint16_t**>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:457,1
    - Dst: reinterpret_cast<float**>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:459,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:464,1
    - Dst: cudaMalloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:464,1
    - Dst: reinterpret_cast<void**>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:464,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:465,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:465,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:473,1
    - Dst: ncclEpGroup_t::alloc_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:473,1
    - Dst: reinterpret_cast<void**>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:473,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:474,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:474,1
    - Dst: memset
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:484,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:486,1
    - Dst: cudaIpcGetMemHandle
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:486,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:488,1
    - Dst: cudaIpcGetMemHandle
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:488,1
    - Dst: reset
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:493,1
    - Dst: uint8_t::uint8_t
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:493,1
    - Dst: get
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:500,1
    - Dst: batchAllGatherIpcHandles
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:503,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:512,1
    - Dst: cudaHostAlloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:512,1
    - Dst: memset
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:514,1
    - Dst: memcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:530,1
    - Dst: get
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:530,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:533,1
    - Dst: cudaIpcOpenMemHandle
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:533,1
    - Dst: static_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:536,1
    - Dst: reinterpret_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:540,1
    - Dst: reinterpret_cast<uint16_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:542,1
    - Dst: reinterpret_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:544,1
    - Dst: memcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:552,1
    - Dst: get
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:552,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:554,1
    - Dst: cudaIpcOpenMemHandle
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:554,1
    - Dst: static_cast<uint32_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:555,1
    - Dst: static_cast<uint32_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:556,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:560,1
    - Dst: cudaDeviceSynchronize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:560,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 83
    argCount: 3
    argNames:
    - ep_group
    - in_config
    - stream
    argTypes:
    - ncclEpGroup_t
    - ncclEpGroupConfig_t*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 563
    functionName: init_hybridep_intranode
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<uint8_t*>
    - uint8_t::uint8_t
    - cudaMemsetAsync
    - memcpy
    - cudaIpcOpenMemHandle
    - reinterpret_cast<void**>
    - cudaHostAlloc
    - cudaMalloc
    - batchAllGatherIpcHandles
    - cudaIpcGetMemHandle
    - reset
    - get
    - reinterpret_cast<float*>
    - memset
    - static_cast<uint32_t*>
    - cudaDeviceSynchronize
    - reinterpret_cast<float**>
    - reinterpret_cast<uint16_t**>
    - ncclEpGroup_t::alloc_fn
    - CUDA_CHECK
    - fprintf
    - cudaDeviceEnablePeerAccess
    - align_ipc
    - reinterpret_cast<uint16_t*>
    - cudaDeviceCanAccessPeer
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t init_hybridep_intranode(ncclEpGroup_t ep_group,\n                                    const
      ncclEpGroupConfig_t* in_config,\n                                    cudaStream_t
      stream)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:577,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:584,1
    - Dst: cudaFree
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:590,1
    - Dst: ncclEpGroup_t::free_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:598,1
    - Dst: ncclEpGroup_t::free_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:602,1
    - Dst: cudaFree
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:608,1
    - Dst: cudaFreeHost
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:614,1
    - Dst: cudaFreeHost
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:617,1
    - Dst: cudaFreeHost
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:621,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 1
    argNames:
    - ep_group
    argTypes:
    - ncclEpGroup_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 627
    functionName: destroy_hybridep_intranode
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - ncclEpGroup_t::free_fn
    - cudaFreeHost
    - cudaFree
    - cudaIpcCloseMemHandle
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t destroy_hybridep_intranode(ncclEpGroup_t ep_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 642
    functionName: NCCLCHECK
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 737
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLCHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 653
    functionName: CUDACHECK_RET
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECK_RET(cmd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:666,1
    - Dst: align_size
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:698,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:698,1
    - Dst: align_size
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:700,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:700,1
    - Dst: align_size
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:702,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:702,1
    - Dst: align_size
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:703,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:703,1
    - Dst: align_size
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:704,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:704,1
    - Dst: align_size
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:705,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:705,1
    - Dst: align_size
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:711,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:711,1
    - Dst: align_size
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:712,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:712,1
    - Dst: NCCLCHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:726,1
    - Dst: ncclMemAlloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:726,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:729,1
    - Dst: reinterpret_cast<uint16_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:732,1
    - Dst: reinterpret_cast<uint16_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:735,1
    - Dst: reinterpret_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:738,1
    - Dst: reinterpret_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:741,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:744,1
    - Dst: CUDACHECK_RET
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:745,1
    - Dst: cudaMemset
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:745,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:748,1
    - Dst: CUDACHECK_RET
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:749,1
    - Dst: cudaMemset
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:749,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:752,1
    - Dst: reinterpret_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:755,1
    - Dst: reinterpret_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:758,1
    - Dst: NCCLCHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:802,1
    - Dst: ncclCommSplit
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:802,1
    - Dst: fprintf
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:808,1
    - Dst: ncclDevComm_t::ncclDevComm_t
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:831,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:835,1
    - Dst: ncclCommQueryProperties
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:835,1
    - Dst: fprintf
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:837,1
    - Dst: NCCLCHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:848,1
    - Dst: ncclDevCommCreate
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:848,1
    - Dst: CUDACHECK_RET
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:851,1
    - Dst: cudaMalloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:851,1
    - Dst: reinterpret_cast<void**>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:851,1
    - Dst: CUDACHECK_RET
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:853,1
    - Dst: cudaMemcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:853,1
    - Dst: NCCLCHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:857,1
    - Dst: ncclCommWindowRegister
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:857,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 95
    argCount: 3
    argNames:
    - ep_group
    - in_config
    - stream
    argTypes:
    - ncclEpGroup_t
    - ncclEpGroupConfig_t*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 660
    functionDepth: 5
    functionLinenumber: 660
    functionLinenumberEnd: 864
    functionName: init_hybridep_internode
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint64_t*>
    - static_cast<size_t>
    - ncclMemAlloc
    - reinterpret_cast<void**>
    - ncclDevComm_t::ncclDevComm_t
    - reinterpret_cast<void*>
    - CUDACHECK_RET
    - cudaMalloc
    - align_size
    - ncclCommQueryProperties
    - cudaMemcpy
    - reinterpret_cast<float*>
    - ncclCommWindowRegister
    - NCCL_CHECK_RESULT
    - NCCLCHECK
    - ncclCommSplit
    - fprintf
    - cudaMemset
    - ncclDevCommCreate
    - reinterpret_cast<uint8_t*>
    - reinterpret_cast<uint16_t*>
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t init_hybridep_internode(ncclEpGroup_t ep_group,\n    const
      ncclEpGroupConfig_t* in_config,\n    cudaStream_t stream)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclDevCommDestroy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:876,1
    - Dst: fprintf
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:878,1
    - Dst: ncclGetErrorString
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:879,1
    - Dst: cudaFree
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:887,1
    - Dst: ncclCommWindowDeregister
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:893,1
    - Dst: ncclMemFree
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:899,1
    - Dst: fprintf
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:901,1
    - Dst: ncclGetErrorString
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:902,1
    - Dst: ncclCommFinalize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:920,1
    - Dst: ncclCommDestroy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:921,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - ep_group
    argTypes:
    - ncclEpGroup_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 866
    functionDepth: 6
    functionLinenumber: 866
    functionLinenumberEnd: 928
    functionName: destroy_hybridep_internode
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - ncclCommDestroy
    - ncclCommFinalize
    - fprintf
    - ncclGetErrorString
    - ncclDevCommDestroy
    - ncclCommWindowDeregister
    - ncclMemFree
    - cudaFree
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t destroy_hybridep_internode(ncclEpGroup_t ep_group)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:939,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:940,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:942,1
    - Dst: ncclCommCount
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:942,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:943,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:944,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:950,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:951,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:952,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:954,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:956,1
    - Dst: ncclTeamLsa
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:960,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:964,1
    - Dst: malloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:969,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:970,1
    - Dst: ncclEpGroup::ncclEpGroup
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:971,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:982,1
    - Dst: ncclCommCount
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:982,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:983,1
    - Dst: ncclCommUserRank
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:983,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:984,1
    - Dst: ncclCommCuDevice
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:984,1
    - Dst: gethostname
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:989,1
    - Dst: std::vector::data
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:989,1
    - Dst: ncclAllGatherHost
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:990,1
    - Dst: std::vector::data
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:990,1
    - Dst: std::set::insert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:993,1
    - Dst: std::string
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:993,1
    - Dst: std::vector::data
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:993,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:995,1
    - Dst: std::set::size
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:995,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:999,1
    - Dst: ncclTypeSize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1000,1
    - Dst: nccl_ep::get_low_latency_rdma_size_hint
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1008,1
    - Dst: std::max
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1023,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1027,1
    - Dst: cudaSetDevice
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1027,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1029,1
    - Dst: cudaGetDeviceProperties
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1029,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1032,1
    - Dst: ncclEpGroup_t::alloc_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1032,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1033,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1033,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1036,1
    - Dst: ncclCommQueryProperties
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1036,1
    - Dst: fprintf
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1038,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1044,1
    - Dst: init_hybridep_intranode
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1044,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1045,1
    - Dst: init_hybridep_internode
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1045,1
    - Dst: ncclBarrier
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1050,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1051,1
    - Dst: ncclMemAlloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1051,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1054,1
    - Dst: cudaMemset
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1054,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1060,1
    - Dst: cudaGetLastError
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1060,1
    - Dst: ncclDevComm_t::ncclDevComm_t
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1063,1
    - Dst: NCCLCHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1069,1
    - Dst: ncclCommQueryProperties
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1069,1
    - Dst: fprintf
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1071,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1083,1
    - Dst: ncclDevCommCreate
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1083,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1085,1
    - Dst: cudaMalloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1085,1
    - Dst: reinterpret_cast<void**>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1085,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1087,1
    - Dst: cudaMemcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1087,1
    - Dst: ncclWindow_t::ncclWindow_t
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1091,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1092,1
    - Dst: ncclCommWindowRegister
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1092,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1095,1
    - Dst: cudaMalloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1095,1
    - Dst: reinterpret_cast<void**>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1095,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1097,1
    - Dst: cudaMemcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1097,1
    - Dst: ncclBarrier
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1107,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1109,1
    - Dst: cudaDeviceSynchronize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1109,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 96
    argCount: 6
    argNames:
    - out_ep_group
    - comm
    - in_config
    - stream
    - alloc_fn
    - free_fn
    argTypes:
    - ncclEpGroup_t*
    - ncclComm_t
    - ncclEpGroupConfig_t*
    - cudaStream_t
    - ncclEpAllocFn_t
    - ncclEpFreeFn_t
    assertStmts:
    - condition: (comm != nullptr && ncclCommCount(comm, &nRanks) == ncclSuccess &&
        nRanks > 0)
      pos:
        line_end: 941
        line_start: 941
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: "(!(in_config->algorithm == NCCL_EP_ALGO_HIGH_THROUGHPUT && in_config->max_tokens_per_rank
        == 0) &&\n             \"ncclEpCreateGroup: max_tokens_per_rank must be set
        for HT backend\")"
      pos:
        line_end: 954
        line_start: 953
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: "((nRanks % lsa_team_size) == 0 &&\n               \"ncclEpCreateGroup:
        HT requires nRanks divisible by lsa_team_size\")"
      pos:
        line_end: 964
        line_start: 963
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (in_config != nullptr)
      pos:
        line_end: 939
        line_start: 939
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: '(in_config->version == 1 && "ncclEpCreateGroup: invalid config version
        (expected 1)")'
      pos:
        line_end: 942
        line_start: 942
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: "(!(in_config->algorithm == NCCL_EP_ALGO_LOW_LATENCY && in_config->max_tokens_per_rank
        == 0) &&\n            \"ncclEpCreateGroup: max_tokens_per_rank must be greater
        than 0 for low latency mode\")"
      pos:
        line_end: 952
        line_start: 951
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (out_ep_group != nullptr)
      pos:
        line_end: 938
        line_start: 938
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: "((in_config->algorithm == NCCL_EP_ALGO_LOW_LATENCY ||\n            in_config->algorithm
        == NCCL_EP_ALGO_HIGH_THROUGHPUT) &&\n           \"ncclEpCreateGroup: invalid
        algorithm, supported: low_latency, high_throughput\")"
      pos:
        line_end: 945
        line_start: 943
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: '(in_config->token_size_bytes > 0 && "ncclEpCreateGroup: token_size_bytes
        must be greater than 0")'
      pos:
        line_end: 950
        line_start: 950
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: '(in_config->num_experts > 0 && "ncclEpCreateGroup: num_experts must
        be greater than 0")'
      pos:
        line_end: 949
        line_start: 949
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (raw_memory != nullptr && "Failed to malloc for ncclEpGroup")
      pos:
        line_end: 969
        line_start: 969
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: "(!(in_config->algorithm == NCCL_EP_ALGO_HIGH_THROUGHPUT &&\n             in_config->max_tokens_per_rank
        > MAX_SUPPORTED_TOKENS_PER_RANK) &&\n             \"ncclEpCreateGroup: HT
        max_tokens_per_rank exceeds build-time MAX_SUPPORTED_TOKENS_PER_RANK\")"
      pos:
        line_end: 957
        line_start: 955
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    constantsTouched: []
    func_position:
      end: 1114
      start: 930
    functionDepth: 6
    functionLinenumber: 930
    functionLinenumberEnd: 1114
    functionName: ncclEpCreateGroup
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - gethostname
    - ncclTypeSize
    - nccl_ep::get_low_latency_rdma_size_hint
    - cudaMemsetAsync
    - std::string
    - assert
    - ncclMemAlloc
    - ncclAllGatherHost
    - ncclEpGroup::ncclEpGroup
    - static_cast<int>
    - cudaGetLastError
    - reinterpret_cast<void**>
    - ncclCommUserRank
    - ncclDevComm_t::ncclDevComm_t
    - std::vector::data
    - cudaMalloc
    - ncclCommQueryProperties
    - std::max
    - init_hybridep_internode
    - ncclCommCuDevice
    - cudaGetDeviceProperties
    - std::set::size
    - cudaMemcpy
    - ncclTeamLsa
    - ncclCommWindowRegister
    - ncclBarrier
    - ncclWindow_t::ncclWindow_t
    - ncclCommCount
    - malloc
    - NCCL_CHECK_RESULT
    - NCCLCHECK
    - cudaDeviceSynchronize
    - std::set::insert
    - CUDA_CHECK
    - ncclEpGroup_t::alloc_fn
    - fprintf
    - cudaMemset
    - ncclDevCommCreate
    - init_hybridep_intranode
    - cudaSetDevice
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpCreateGroup(\n    ncclEpGroup_t* out_ep_group,\n
      \   ncclComm_t comm,\n    const ncclEpGroupConfig_t* in_config,\n    cudaStream_t
      stream,\n    ncclEpAllocFn_t alloc_fn,\n    ncclEpFreeFn_t free_fn\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1124,1
    - Dst: cudaDeviceSynchronize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1124,1
    - Dst: destroy_hybridep_intranode
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1129,1
    - Dst: destroy_hybridep_internode
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1134,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1138,1
    - Dst: ncclEpGroup_t::free_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1138,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1143,1
    - Dst: cudaDeviceSynchronize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1143,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1144,1
    - Dst: ncclBarrier
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1144,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1148,1
    - Dst: cudaMemcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1148,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1150,1
    - Dst: ncclCommWindowDeregister
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1150,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1151,1
    - Dst: cudaFree
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1151,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1156,1
    - Dst: ncclMemFree
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1156,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1162,1
    - Dst: cudaMemcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1162,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1164,1
    - Dst: ncclDevCommDestroy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1164,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1165,1
    - Dst: cudaFree
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1165,1
    - Dst: ncclEpGroup_t::~ncclEpGroup
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1171,1
    - Dst: free
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - ep_group
    - stream
    argTypes:
    - ncclEpGroup_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1116
    functionDepth: 7
    functionLinenumber: 1116
    functionLinenumberEnd: 1177
    functionName: ncclEpGroupDestroy
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - NCCL_CHECK_RESULT
    - destroy_hybridep_intranode
    - CUDA_CHECK
    - cudaMemcpy
    - destroy_hybridep_internode
    - ncclDevCommDestroy
    - free
    - ncclBarrier
    - ncclCommWindowDeregister
    - ncclMemFree
    - ncclEpGroup_t::~ncclEpGroup
    - ncclEpGroup_t::free_fn
    - cudaFree
    - cudaDeviceSynchronize
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpGroupDestroy(\n    ncclEpGroup_t ep_group,\n    cudaStream_t
      stream\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1192,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1193,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1194,1
    - Dst: struct ncclNDTensor::struct ncclNDTensor
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1198,1
    - Dst: unsigned int::unsigned int
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1205,1
    - Dst: unsigned int::unsigned int
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1206,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1219,1
    - Dst: ncclEpGroup_t::alloc_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1219,1
    - Dst: ncclTypeSize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 11
    argNames:
    - ep_group
    - tensor
    - ndim
    - datatype
    - tag
    - data
    - size0
    - size1
    - size2
    - size3
    - size4
    argTypes:
    - ncclEpGroup_t
    - ncclNDTensor_t*
    - unsigned int
    - ncclDataType_t
    - ncclEpTensorTag_t
    - void*
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (ep_group != nullptr)
      pos:
        line_end: 1191
        line_start: 1191
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (ndim > 0 && ndim <= 5)
      pos:
        line_end: 1193
        line_start: 1193
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (tensor != nullptr)
      pos:
        line_end: 1192
        line_start: 1192
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    constantsTouched: []
    func_position:
      end: 1224
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1224
    functionName: ncclEpTensorCreate
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - ncclEpGroup_t::alloc_fn
    - CUDA_CHECK
    - ncclTypeSize
    - unsigned int::unsigned int
    - assert
    - struct ncclNDTensor::struct ncclNDTensor
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpTensorCreate(\n    ncclEpGroup_t ep_group,\n    ncclNDTensor_t*
      tensor,\n    unsigned int ndim,\n    ncclDataType_t datatype,\n    ncclEpTensorTag_t
      tag,\n    void* data,\n    unsigned int size0,\n    unsigned int size1,\n    unsigned
      int size2,\n    unsigned int size3,\n    unsigned int size4\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1233,1
    - Dst: ncclEpGroup_t::free_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ep_group
    - tensor
    argTypes:
    - ncclEpGroup_t
    - ncclNDTensor_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1240
    functionName: ncclEpTensorDestroy
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - CUDA_CHECK
    - ncclEpGroup_t::free_fn
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpTensorDestroy(\n    ncclEpGroup_t ep_group,\n    ncclNDTensor_t
      tensor\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1246,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tensor
    - data
    argTypes:
    - ncclNDTensor_t
    - void**
    assertStmts:
    - condition: (tensor != nullptr)
      pos:
        line_end: 1245
        line_start: 1245
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (data != nullptr)
      pos:
        line_end: 1246
        line_start: 1246
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    constantsTouched: []
    func_position:
      end: 1250
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1250
    functionName: ncclEpTensorGetData
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpTensorGetData(\n    ncclNDTensor_t tensor,\n    void**
      data\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - tensor
    - sizes
    - ndim
    argTypes:
    - ncclNDTensor_t
    - unsigned int**
    - unsigned int*
    assertStmts:
    - condition: (tensor != nullptr)
      pos:
        line_end: 1256
        line_start: 1256
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    constantsTouched: []
    func_position:
      end: 1261
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1261
    functionName: ncclEpTensorGetSizes
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpTensorGetSizes(\n    ncclNDTensor_t tensor,\n    const
      unsigned int** sizes,\n    unsigned int* ndim\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1422,1
    - Dst: memset
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1423,1
    - Dst: static_cast<void*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1424
    functionName: ncclEpHandle
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - memset
    - std::max
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void ncclEpHandle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1427
    functionName: ~ncclEpHandle()
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ncclEpHandle()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - tensor
    argTypes:
    - ncclNDTensor_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1430
    functionDepth: 0
    functionLinenumber: 1430
    functionLinenumberEnd: 1435
    functionName: tensor_is_contiguous
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tensor_is_contiguous(ncclNDTensor_t tensor)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - tensors
    - num_tensors
    - tag
    argTypes:
    - ncclNDTensor_t*
    - int
    - ncclEpTensorTag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1451
    functionName: find_tensor_by_tag
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclNDTensor_t
    signature: ncclNDTensor_t find_tensor_by_tag(const ncclNDTensor_t* tensors, int
      num_tensors, ncclEpTensorTag_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ep_group
    argTypes:
    - ncclEpGroup_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1457
    functionName: is_internode_available
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_internode_available(ncclEpGroup_t ep_group)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclEpGroup_t::free_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - group
    - t
    argTypes:
    - ncclEpGroup_t
    - ncclNDTensor_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1460
    functionDepth: 0
    functionLinenumber: 1460
    functionLinenumberEnd: 1469
    functionName: tensor_free
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - ncclEpGroup_t::free_fn
    linkageType: ''
    returnType: void
    signature: void tensor_free(ncclEpGroup_t group, ncclNDTensor_t t)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1481,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1482,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1483,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1484,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1488,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1489,1
    - Dst: ncclCommCount
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1489,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1490,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1493,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1494,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1495,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1496,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1496,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1499,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1500,1
    - Dst: ncclEpHandle::ncclEpHandle
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1503,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1511,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1512,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1518,1
    - Dst: ncclEpTensorCreate
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1522,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1522,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1522,1
    - Dst: ncclEpTensorCreate
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1523,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1523,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1523,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1525,1
    - Dst: nccl_ep::LowLatencyLayout
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1527,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1529,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1531,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1532,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1532,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1537,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1539,1
    - Dst: align256
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1558,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1558,1
    - Dst: align256
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1559,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1559,1
    - Dst: align256
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1560,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1560,1
    - Dst: align256
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1561,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1561,1
    - Dst: align256
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1562,1
    - Dst: align256
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1565,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1565,1
    - Dst: align256
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1566,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1566,1
    - Dst: align256
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1568,1
    - Dst: nccl_ep::hybridep::get_preprocessing_scan_tmp_size
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1568,1
    - Dst: is_internode_available
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1569,1
    - Dst: align256
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1569,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1569,1
    - Dst: align256
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1570,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1570,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1575,1
    - Dst: ncclEpGroup_t::alloc_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1575,1
    - Dst: static_cast<char*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1579,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1582,1
    - Dst: reinterpret_cast<bool*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1585,1
    - Dst: reinterpret_cast<bool*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1588,1
    - Dst: reinterpret_cast<bool*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1591,1
    - Dst: reinterpret_cast<int32_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1594,1
    - Dst: reinterpret_cast<int32_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1597,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1600,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1603,1
    - Dst: is_internode_available
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1606,1
    - Dst: reinterpret_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1608,1
    - Dst: reinterpret_cast<int32_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1614,1
    - Dst: is_internode_available
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1619,1
    - Dst: is_internode_available
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1624,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1633,1
    - Dst: cudaHostAlloc
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1633,1
    - Dst: reinterpret_cast<void**>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1634,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1643,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1644,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1646,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1648,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1650,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1656,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1656,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1659,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1659,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1662,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1662,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1666,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1666,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1668,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1668,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1671,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1671,1
    - Dst: nccl_ep::hybridep::convert_topk_to_routing_map
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1676,1
    - Dst: static_cast<const int64_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1677,1
    - Dst: NCCL_CHECK_RESULT
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1685,1
    - Dst: ncclAllGather
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1685,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1688,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1698,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1699,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1700,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1700,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1702,1
    - Dst: static_cast<int32_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1710,1
    - Dst: nccl_ep::hybridep::call_metadata_preprocessing
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1714,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1734,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1734,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1737,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1743,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1743,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 115
    argCount: 8
    argNames:
    - out_handle
    - ep_group
    - topk_idx
    - local_tensors
    - num_local_tensors
    - config
    - stream
    - use_fp8
    argTypes:
    - ncclEpHandle_t*
    - ncclEpGroup_t
    - ncclNDTensor_t
    - ncclNDTensor_t*
    - unsigned int
    - ncclEpHandleConfig_t*
    - cudaStream_t
    - bool
    assertStmts:
    - condition: (ep_group->comm != nullptr)
      pos:
        line_end: 1487
        line_start: 1487
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: "(recv_expert_counter->sizes[0] >= static_cast<unsigned int>(ep_group->num_local_experts)
        &&\n                    \"recv_expert_counter size must be >= num_local_experts\")"
      pos:
        line_end: 1700
        line_start: 1699
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (config == nullptr)
      pos:
        line_end: 1483
        line_start: 1483
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (ncclCommCount(ep_group->comm, &nRanks) == ncclSuccess)
      pos:
        line_end: 1488
        line_start: 1488
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_idx != nullptr)
      pos:
        line_end: 1480
        line_start: 1480
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_idx->ndim == 2)
      pos:
        line_end: 1492
        line_start: 1492
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (ep_group->config.num_experts > 0)
      pos:
        line_end: 1498
        line_start: 1498
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_expert_counter->data != nullptr && "recv_expert_counter data
        must not be null")
      pos:
        line_end: 1701
        line_start: 1701
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (handle->ll.layout.total_bytes <= handle->group->config.rdma_buffer_size)
      pos:
        line_end: 1528
        line_start: 1528
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (nRanks > 0)
      pos:
        line_end: 1489
        line_start: 1489
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (num_local_tensors == 0 && "LL mode does not accept local tensors
        in ncclEpCreateHandle")
      pos:
        line_end: 1517
        line_start: 1517
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (ep_group->config.max_tokens_per_rank > 0 && "HT requires max_tokens_per_rank
        > 0")
      pos:
        line_end: 1530
        line_start: 1530
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_expert_counter->datatype == ncclInt32 && "recv_expert_counter
        must be ncclInt32")
      pos:
        line_end: 1698
        line_start: 1698
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (ep_group->config.num_experts % ep_group->nRanks == 0)
      pos:
        line_end: 1499
        line_start: 1499
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (out_handle != nullptr)
      pos:
        line_end: 1482
        line_start: 1482
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_idx->tag == NCCL_EP_TENSOR_TAG_TOPK_IDX)
      pos:
        line_end: 1494
        line_start: 1494
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (tensor_is_contiguous(topk_idx))
      pos:
        line_end: 1495
        line_start: 1495
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (handle->num_tokens <= static_cast<int>(ep_group->config.max_tokens_per_rank)
        && "Token count exceeds HT buffer capacity")
      pos:
        line_end: 1531
        line_start: 1531
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_expert_counter->ndim == 1 && "recv_expert_counter must be 1D")
      pos:
        line_end: 1697
        line_start: 1697
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (ep_group != nullptr)
      pos:
        line_end: 1481
        line_start: 1481
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_idx->datatype == ncclInt64)
      pos:
        line_end: 1493
        line_start: 1493
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: ((ep_group->config.max_tokens_per_rank * handle->group->num_local_experts)
        % 4 == 0 and "TMA requires the number of tokens to be multiple of 4")
      pos:
        line_end: 1524
        line_start: 1524
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    constantsTouched: []
    func_position:
      end: 1752
      start: 1471
    functionDepth: 3
    functionLinenumber: 1471
    functionLinenumberEnd: 1752
    functionName: ncclEpCreateHandle
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - cudaMemcpyAsync
    - align256
    - cudaMemsetAsync
    - static_cast<const int64_t*>
    - assert
    - find_tensor_by_tag
    - static_cast<int>
    - nccl_ep::hybridep::get_preprocessing_scan_tmp_size
    - is_internode_available
    - static_cast<unsigned int>
    - reinterpret_cast<void**>
    - static_cast<int32_t*>
    - ncclEpHandle::ncclEpHandle
    - static_cast<char*>
    - cudaHostAlloc
    - reinterpret_cast<bool*>
    - reinterpret_cast<void*>
    - nccl_ep::hybridep::call_metadata_preprocessing
    - ncclEpTensorCreate
    - reinterpret_cast<int32_t*>
    - reinterpret_cast<float*>
    - ncclCommCount
    - NCCL_CHECK_RESULT
    - nccl_ep::LowLatencyLayout
    - ncclEpGroup_t::alloc_fn
    - CUDA_CHECK
    - reinterpret_cast<uint8_t*>
    - nccl_ep::hybridep::convert_topk_to_routing_map
    - ncclAllGather
    - tensor_is_contiguous
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpCreateHandle(\n    ncclEpHandle_t* out_handle,\n
      \   ncclEpGroup_t ep_group,\n    ncclNDTensor_t topk_idx,\n    const ncclNDTensor_t*
      local_tensors,\n    unsigned int num_local_tensors,\n    const ncclEpHandleConfig_t*
      config,\n    cudaStream_t stream,\n    bool use_fp8\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tensor_free
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1761,1
    - Dst: tensor_free
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1762,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1765,1
    - Dst: cudaFreeHost
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1765,1
    - Dst: ncclEpHandle_t::group::free_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1769,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclEpHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1776
    functionName: ncclEpHandleDestroy
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - tensor_free
    - ncclEpHandle_t::group::free_fn
    - CUDA_CHECK
    - cudaFreeHost
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpHandleDestroy(\n    ncclEpHandle_t handle\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1794,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1797,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1798,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1799,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1799,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1800,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1801,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1802,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1803,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1804,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1805,1
    - Dst: ncclTypeSize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1805,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1808,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1811,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1814,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1815,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1816,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1816,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1817,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1818,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1819,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1823,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1824,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1825,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1825,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1826,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1827,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1828,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1829,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1832,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1836,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1837,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1838,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1838,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1839,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1840,1
    - Dst: clean_meta
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1844,1
    - Dst: static_cast<int*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1851,1
    - Dst: static_cast<int64_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1852,1
    - Dst: static_cast<int*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1853,1
    - Dst: static_cast<int64_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1855,1
    - Dst: nccl_ep::internode_ll::dispatch
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1861,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1872,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1872,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1873,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1873,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1874,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1874,1
    - Dst: dispatch_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1904,1
    - Dst: is_internode_available
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1911,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1913,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1915,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1916,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1917,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1918,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1920,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1921,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1921,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1922,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1923,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1924,1
    - Dst: ncclTypeSize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1933,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1934,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1934,1
    - Dst: static_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1941,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1945,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1945,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1949,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1951,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1952,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1952,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1953,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1959,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1959,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1963,1
    - Dst: ncclTypeSize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1963,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1964,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1968,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1970,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1970,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1975,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1976,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1983,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1984,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1984,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1985,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1985,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1986,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1987,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1989,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1990,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1991,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:1999,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2000,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2000,1
    - Dst: nccl_ep::hybridep::sparse_to_dense_prob
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2002,1
    - Dst: static_cast<const int64_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2003,1
    - Dst: static_cast<const float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2004,1
    - Dst: static_cast<const float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2025,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2063,1
    - Dst: static_cast<unsigned>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2065,1
    - Dst: nccl_ep::hybridep::call_dispatch
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2073,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2085,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2087,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2087,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2088,1
    - Dst: ncclTypeSize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2088,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2090,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2090,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2102,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2102,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2103,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2104,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2104,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2105,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2106,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2108,1
    - Dst: nccl_ep::hybridep::dense_to_sparse_prob
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2111,1
    - Dst: static_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2114,1
    - Dst: static_cast<int64_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2115,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2124,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2130,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2132,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2132,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2133,1
    - Dst: ncclTypeSize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2133,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2135,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2135,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 134
    argCount: 10
    argNames:
    - handle
    - inputs
    - num_inputs
    - outputs
    - num_outputs
    - local_tensors
    - num_local_tensors
    - send_only
    - config
    - stream
    argTypes:
    - ncclEpHandle_t
    - ncclNDTensor_t*
    - unsigned int
    - ncclNDTensor_t*
    - unsigned int
    - ncclNDTensor_t*
    - unsigned int
    - unsigned int
    - ncclEpDispatchConfig_t*
    - cudaStream_t
    assertStmts:
    - condition: (x->ndim == 2)
      pos:
        line_end: 1797
        line_start: 1797
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_x != nullptr)
      pos:
        line_end: 1813
        line_start: 1813
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_count->ndim == 1)
      pos:
        line_end: 1836
        line_start: 1836
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: "((((group->hidden / 128) * static_cast<int>(sizeof(float))) % 16)
        == 0 &&\n                   \"HT dispatch FP8 requires scaling-factor bytes
        per token to be 16B aligned\")"
      pos:
        line_end: 1970
        line_start: 1969
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_topk_weights->datatype == ncclFloat32)
      pos:
        line_end: 2102
        line_start: 2102
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (tensor_is_contiguous(x))
      pos:
        line_end: 1798
        line_start: 1798
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (tensor_is_contiguous(recv_count))
      pos:
        line_end: 1837
        line_start: 1837
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[0] <= group->config.max_tokens_per_rank)
      pos:
        line_end: 1922
        line_start: 1922
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x != nullptr)
      pos:
        line_end: 1796
        line_start: 1796
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_count != nullptr)
      pos:
        line_end: 1835
        line_start: 1835
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_topk_idx == nullptr)
      pos:
        line_end: 1990
        line_start: 1990
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_topk_idx->ndim == 2 && tensor_is_contiguous(recv_topk_idx))
      pos:
        line_end: 2103
        line_start: 2103
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[0] <= group->config.max_tokens_per_rank)
      pos:
        line_end: 1801
        line_start: 1801
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (num_local_tensors == 0 && "HT dispatch does not accept local_tensors")
      pos:
        line_end: 1912
        line_start: 1912
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_x->sizes[1] == group->nRanks * group->config.max_tokens_per_rank)
      pos:
        line_end: 1817
        line_start: 1817
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (scales->sizes[0] == group->num_local_experts)
      pos:
        line_end: 1826
        line_start: 1826
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: "((experts_per_node * static_cast<int>(sizeof(float))) % 16 == 0
        &&\n               \"HT dispatch requires experts_per_node to be multiple
        of 4 (16B prob TMA alignment)\")"
      pos:
        line_end: 1959
        line_start: 1958
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x != nullptr)
      pos:
        line_end: 1919
        line_start: 1919
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_weights != nullptr)
      pos:
        line_end: 1982
        line_start: 1982
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (scales != nullptr && "FP8 tokens require scales input")
      pos:
        line_end: 1950
        line_start: 1950
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_x->ndim == 3)
      pos:
        line_end: 1814
        line_start: 1814
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_weights->sizes[0] == handle->num_tokens)
      pos:
        line_end: 1985
        line_start: 1985
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_topk_weights->sizes[0] == recv_topk_idx->sizes[0])
      pos:
        line_end: 2105
        line_start: 2105
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_topk_weights == nullptr && recv_topk_idx == nullptr)
      pos:
        line_end: 2123
        line_start: 2123
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (tensor_is_contiguous(recv_x))
      pos:
        line_end: 1815
        line_start: 1815
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_x->sizes[0] == group->num_local_experts)
      pos:
        line_end: 1816
        line_start: 1816
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (group->hidden % 512 == 0)
      pos:
        line_end: 1822
        line_start: 1822
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (scales->ndim == 2 && tensor_is_contiguous(scales))
      pos:
        line_end: 1951
        line_start: 1951
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (scales->datatype == ncclFloat32)
      pos:
        line_end: 1952
        line_start: 1952
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_idx->ndim == 2 && tensor_is_contiguous(topk_idx) && topk_idx->datatype
        == ncclInt64)
      pos:
        line_end: 1983
        line_start: 1983
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_weights->sizes[1] == handle->num_topk)
      pos:
        line_end: 1986
        line_start: 1986
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[1] % sizeof(int4) == 0)
      pos:
        line_end: 1802
        line_start: 1802
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: "((group->hidden % 128) == 0 &&\n                   \"HT dispatch
        FP8 requires hidden_dim multiple of 128\")"
      pos:
        line_end: 1968
        line_start: 1967
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_weights == nullptr)
      pos:
        line_end: 1988
        line_start: 1988
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->ndim == 2 && tensor_is_contiguous(x))
      pos:
        line_end: 1920
        line_start: 1920
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (scales->datatype == ncclFloat32)
      pos:
        line_end: 1825
        line_start: 1825
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_scales->ndim == 2 && tensor_is_contiguous(recv_scales))
      pos:
        line_end: 2131
        line_start: 2131
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_topk_idx->datatype == ncclInt64)
      pos:
        line_end: 2104
        line_start: 2104
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->datatype == ncclBfloat16)
      pos:
        line_end: 1799
        line_start: 1799
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (scales->sizes[2] == group->hidden / scale_block_size)
      pos:
        line_end: 1828
        line_start: 1828
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[0] == handle->num_tokens)
      pos:
        line_end: 1921
        line_start: 1921
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (scales->sizes[1] == group->config.max_tokens_per_rank * group->nRanks)
      pos:
        line_end: 1827
        line_start: 1827
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: "(x->sizes[1] == group->hidden &&\n               \"HT dispatch token
        hidden size must match group configuration\")"
      pos:
        line_end: 1924
        line_start: 1923
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_count->datatype == ncclInt32)
      pos:
        line_end: 1838
        line_start: 1838
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_weights->ndim == 2 && tensor_is_contiguous(topk_weights) &&
        topk_weights->datatype == ncclFloat32)
      pos:
        line_end: 1984
        line_start: 1984
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_topk_weights == nullptr)
      pos:
        line_end: 1989
        line_start: 1989
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_x->ndim == 2 && tensor_is_contiguous(recv_x))
      pos:
        line_end: 2086
        line_start: 2086
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[1] * ncclTypeSize(x->datatype) == group->config.token_size_bytes)
      pos:
        line_end: 1804
        line_start: 1804
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_topk_weights->ndim == 2 && tensor_is_contiguous(recv_topk_weights))
      pos:
        line_end: 2101
        line_start: 2101
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[0] == handle->num_tokens)
      pos:
        line_end: 1800
        line_start: 1800
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[1] % 128 == 0)
      pos:
        line_end: 1803
        line_start: 1803
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_x->sizes[2] == group->hidden)
      pos:
        line_end: 1818
        line_start: 1818
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (scales->ndim == 3)
      pos:
        line_end: 1823
        line_start: 1823
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (recv_count->sizes[0] == group->num_local_experts)
      pos:
        line_end: 1839
        line_start: 1839
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: "((token_bytes_per_token % 16) == 0 &&\n               \"HT dispatch
        requires token bytes per token to be 16B aligned for TMA\")"
      pos:
        line_end: 1964
        line_start: 1963
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->datatype == ncclBfloat16)
      pos:
        line_end: 1948
        line_start: 1948
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (tensor_is_contiguous(scales))
      pos:
        line_end: 1824
        line_start: 1824
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    constantsTouched: []
    func_position:
      end: 2144
      start: 1780
    functionDepth: 1
    functionLinenumber: 1780
    functionLinenumberEnd: 2144
    functionName: ncclEpDispatch
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - cudaMemcpyAsync
    - static_cast<const int64_t*>
    - ncclTypeSize
    - cudaMemsetAsync
    - assert
    - dispatch_fn
    - find_tensor_by_tag
    - static_cast<float*>
    - static_cast<int>
    - is_internode_available
    - static_cast<int64_t*>
    - static_cast<int*>
    - nccl_ep::hybridep::dense_to_sparse_prob
    - static_cast<const float*>
    - nccl_ep::internode_ll::dispatch
    - static_cast<unsigned>
    - clean_meta
    - reinterpret_cast<uint64_t>
    - CUDA_CHECK
    - nccl_ep::hybridep::sparse_to_dense_prob
    - nccl_ep::hybridep::call_dispatch
    - tensor_is_contiguous
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpDispatch(\n    ncclEpHandle_t handle,\n    const
      ncclNDTensor_t* inputs,\n    unsigned int num_inputs,\n    const ncclNDTensor_t*
      outputs,\n    unsigned int num_outputs,\n    const ncclNDTensor_t* local_tensors,\n
      \   unsigned int num_local_tensors,\n    unsigned int send_only,\n    const
      ncclEpDispatchConfig_t* config,\n    cudaStream_t stream\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2160,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2163,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2170,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2173,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2181,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2182,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2182,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2183,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2184,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2185,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2186,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2187,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2190,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2191,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2191,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2192,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2195,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2196,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2196,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2197,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2198,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2201,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2202,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2202,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2203,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2204,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2205,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2206,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2209,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2210,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2211,1
    - Dst: clean_meta
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2216,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2219,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2222,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2226,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2227,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2228,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2228,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2229,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2230,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2231,1
    - Dst: static_cast<int64_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2239,1
    - Dst: static_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2240,1
    - Dst: static_cast<int*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2241,1
    - Dst: static_cast<int64_t*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2242,1
    - Dst: nccl_ep::internode_ll::combine
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2247,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2257,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2257,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2258,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2258,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2259,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2259,1
    - Dst: combine_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2286,1
    - Dst: is_internode_available
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2297,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2301,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2302,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2303,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2303,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2304,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2307,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2308,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2311,1
    - Dst: ncclTypeSize
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2311,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2318,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2319,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2325,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2327,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2328,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2328,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2329,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2330,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2331,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2335,1
    - Dst: find_tensor_by_tag
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2338,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2339,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2340,1
    - Dst: tensor_is_contiguous
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2340,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2341,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2342,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2346,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2347,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2347,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2358,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2361,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2361,1
    - Dst: nccl_ep::hybridep::sparse_to_dense_prob_combine
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2367,1
    - Dst: static_cast<const float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2368,1
    - Dst: static_cast<size_t>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2382,1
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2383,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2383,1
    - Dst: nccl_ep::hybridep::call_combine
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2437,1
    - Dst: nccl_ep::hybridep::dense_to_sparse_prob_combine
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2449,1
    - Dst: static_cast<float*>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2452,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 104
    argCount: 10
    argNames:
    - handle
    - inputs
    - num_inputs
    - outputs
    - num_outputs
    - local_tensors
    - num_local_tensors
    - send_only
    - config
    - stream
    argTypes:
    - ncclEpHandle_t
    - ncclNDTensor_t*
    - unsigned int
    - ncclNDTensor_t*
    - unsigned int
    - ncclNDTensor_t*
    - unsigned int
    - unsigned int
    - ncclEpCombineConfig_t*
    - cudaStream_t
    assertStmts:
    - condition: (x->datatype == ncclBfloat16)
      pos:
        line_end: 2182
        line_start: 2182
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (out != nullptr)
      pos:
        line_end: 2225
        line_start: 2225
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->ndim == 2 && tensor_is_contiguous(x))
      pos:
        line_end: 2302
        line_start: 2302
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_weights != nullptr)
      pos:
        line_end: 2172
        line_start: 2172
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (src_info->ndim == 2)
      pos:
        line_end: 2194
        line_start: 2194
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (src_info->datatype == ncclInt32)
      pos:
        line_end: 2196
        line_start: 2196
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_weights->sizes[0] <= num_max_dispatch_tokens_per_rank)
      pos:
        line_end: 2205
        line_start: 2205
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (combined_topk_weights->datatype == ncclFloat32)
      pos:
        line_end: 2330
        line_start: 2330
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (combined_x->sizes[1] == hidden)
      pos:
        line_end: 2341
        line_start: 2341
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x != nullptr)
      pos:
        line_end: 2162
        line_start: 2162
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->ndim == 3)
      pos:
        line_end: 2180
        line_start: 2180
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (tensor_is_contiguous(x))
      pos:
        line_end: 2181
        line_start: 2181
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[0] == src_info->sizes[0])
      pos:
        line_end: 2197
        line_start: 2197
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: ((hidden * ncclTypeSize(x->datatype)) % sizeof(int4) == 0)
      pos:
        line_end: 2310
        line_start: 2310
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_weights->sizes[1] == topk_idx->sizes[1])
      pos:
        line_end: 2203
        line_start: 2203
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (combined_topk_weights->sizes[0] == num_combined_tokens)
      pos:
        line_end: 2328
        line_start: 2328
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (combined_x->sizes[0] == num_combined_tokens)
      pos:
        line_end: 2340
        line_start: 2340
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[2] % sizeof(int4) == 0)
      pos:
        line_end: 2185
        line_start: 2185
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (tensor_is_contiguous(src_info))
      pos:
        line_end: 2195
        line_start: 2195
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (out->ndim == 2)
      pos:
        line_end: 2226
        line_start: 2226
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (handle->ll.layout.total_bytes <= handle->group->config.rdma_buffer_size)
      pos:
        line_end: 2218
        line_start: 2218
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (tensor_is_contiguous(out))
      pos:
        line_end: 2227
        line_start: 2227
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->datatype == ncclBfloat16)
      pos:
        line_end: 2303
        line_start: 2303
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[1] == num_ranks * num_max_dispatch_tokens_per_rank)
      pos:
        line_end: 2184
        line_start: 2184
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_idx->ndim == 2)
      pos:
        line_end: 2189
        line_start: 2189
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (combined_topk_weights != nullptr)
      pos:
        line_end: 2326
        line_start: 2326
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_idx->datatype == ncclInt64)
      pos:
        line_end: 2191
        line_start: 2191
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_weights->ndim == 2)
      pos:
        line_end: 2200
        line_start: 2200
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (tensor_is_contiguous(topk_weights))
      pos:
        line_end: 2201
        line_start: 2201
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (out->sizes[1] == hidden)
      pos:
        line_end: 2229
        line_start: 2229
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (out->datatype == x->datatype)
      pos:
        line_end: 2230
        line_start: 2230
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[0] == num_experts / num_ranks)
      pos:
        line_end: 2183
        line_start: 2183
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x->sizes[2] % 128 == 0)
      pos:
        line_end: 2186
        line_start: 2186
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_weights->sizes[0] == topk_idx->sizes[0])
      pos:
        line_end: 2202
        line_start: 2202
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (topk_weights->datatype == ncclFloat32)
      pos:
        line_end: 2204
        line_start: 2204
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (combined_topk_weights->sizes[1] == num_topk)
      pos:
        line_end: 2329
        line_start: 2329
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (x != nullptr)
      pos:
        line_end: 2301
        line_start: 2301
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (combined_x->ndim == 2 && tensor_is_contiguous(combined_x))
      pos:
        line_end: 2339
        line_start: 2339
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (out->sizes[0] == num_combined_tokens)
      pos:
        line_end: 2228
        line_start: 2228
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (combined_x != nullptr)
      pos:
        line_end: 2338
        line_start: 2338
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (combined_topk_weights->ndim == 2 && tensor_is_contiguous(combined_topk_weights))
      pos:
        line_end: 2327
        line_start: 2327
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (num_local_tensors == 0)
      pos:
        line_end: 2334
        line_start: 2334
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (tensor_is_contiguous(topk_idx))
      pos:
        line_end: 2190
        line_start: 2190
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    constantsTouched: []
    func_position:
      end: 2464
      start: 2146
    functionDepth: 1
    functionLinenumber: 2146
    functionLinenumberEnd: 2464
    functionName: ncclEpCombine
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - nccl_ep::hybridep::call_combine
    - static_cast<size_t>
    - cudaMemcpyAsync
    - ncclTypeSize
    - cudaMemsetAsync
    - assert
    - find_tensor_by_tag
    - static_cast<float*>
    - static_cast<int>
    - is_internode_available
    - static_cast<int64_t*>
    - nccl_ep::hybridep::sparse_to_dense_prob_combine
    - static_cast<int*>
    - static_cast<const float*>
    - nccl_ep::hybridep::dense_to_sparse_prob_combine
    - clean_meta
    - reinterpret_cast<uint64_t>
    - combine_fn
    - CUDA_CHECK
    - tensor_is_contiguous
    - nccl_ep::internode_ll::combine
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpCombine(\n    ncclEpHandle_t handle,\n    const
      ncclNDTensor_t* inputs,\n    unsigned int num_inputs,\n    const ncclNDTensor_t*
      outputs,\n    unsigned int num_outputs,\n    const ncclNDTensor_t* local_tensors,\n
      \   unsigned int num_local_tensors,\n    unsigned int send_only,\n    const
      ncclEpCombineConfig_t* config,\n    cudaStream_t stream\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclEpHandle_t::ll::continue_fn
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - handle
    - config
    - stream
    argTypes:
    - ncclEpHandle_t
    - ncclEpCompleteConfig_t*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2466
    functionDepth: 0
    functionLinenumber: 2466
    functionLinenumberEnd: 2480
    functionName: ncclEpComplete
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - ncclEpHandle_t::ll::continue_fn
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpComplete(\n        ncclEpHandle_t handle,\n    const
      ncclEpCompleteConfig_t* config,\n    cudaStream_t stream\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDA_CHECK
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2493,1
    - Dst: cudaMemcpy
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2493,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2503,1
    - Dst: assert
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2504,1
    - Dst: static_cast<unsigned int>
      Src: /src/nccl/contrib/nccl_ep/nccl_ep.cc:2505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - handle
    - num_recv_tokens
    argTypes:
    - ncclEpHandle_t
    - unsigned int*
    assertStmts:
    - condition: (actual_recv_tokens >= 0)
      pos:
        line_end: 2502
        line_start: 2502
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - condition: (actual_recv_tokens <= handle->group->max_recv_tokens)
      pos:
        line_end: 2503
        line_start: 2503
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    constantsTouched: []
    func_position:
      end: 2510
      start: 2482
    functionDepth: 0
    functionLinenumber: 2482
    functionLinenumberEnd: 2510
    functionName: ncclEpHandleGetNumRecvTokens
    functionSourceFile: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    functionUses: 0
    functionsReached:
    - CUDA_CHECK
    - cudaMemcpy
    - static_cast<unsigned int>
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclEpHandleGetNumRecvTokens(\n        ncclEpHandle_t
      handle,\n    unsigned int* num_recv_tokens\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - dtype_t
    - dtype_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: nccl_ep::ceil_div
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ceil_div(dtype_t a, dtype_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl_ep::ceil_div
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - dtype_t
    - dtype_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: nccl_ep::align
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 0
    functionsReached:
    - nccl_ep::ceil_div
    linkageType: ''
    returnType: __host__
    signature: __host__ align(dtype_t a, dtype_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EP_HOST_ASSERT
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: nccl_ep::clean_meta
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 0
    functionsReached:
    - EP_HOST_ASSERT
    linkageType: ''
    returnType: std::pair<int*, int>
    signature: std::pair<int*, int> clean_meta()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<out_ptr_t>
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:194,1
    - Dst: reinterpret_cast<count_ptr_t>
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ptr'
    - count
    argTypes:
    - in_ptr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: nccl_ep::advance
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<out_ptr_t>
    - reinterpret_cast<count_ptr_t>
    linkageType: ''
    returnType: out_ptr_t
    signature: out_ptr_t advance(const in_ptr_t& ptr, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EP_HOST_ASSERT
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:208,1
    - Dst: std::max
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:209,1
    - Dst: std::max
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:215,1
    - Dst: EP_HOST_ASSERT
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:216,1
    - Dst: std::max
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:222,1
    - Dst: EP_HOST_ASSERT
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:223,1
    - Dst: std::max
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:229,1
    - Dst: nccl_ep::align
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:230,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:237,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:238,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:239,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:240,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:241,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:242,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:243,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - rdma_buffer
    - num_max_dispatch_tokens_per_rank
    - hidden
    - num_ranks
    - num_experts
    argTypes:
    - void*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 248
    functionName: nccl_ep::LowLatencyLayout
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 1
    functionsReached:
    - EP_HOST_ASSERT
    - static_cast<int>
    - nccl_ep::align
    - nccl_ep::advance
    - std::max
    linkageType: ''
    returnType: void
    signature: void LowLatencyLayout(void* rdma_buffer, int num_max_dispatch_tokens_per_rank,
      int hidden, int num_ranks, int num_experts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl_ep::LowLatencyLayout
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - num_max_dispatch_tokens_per_rank
    - hidden
    - num_ranks
    - num_experts
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: nccl_ep::get_low_latency_rdma_size_hint
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 1
    functionsReached:
    - nccl_ep::LowLatencyLayout
    linkageType: ''
    returnType: unsigned long int
    signature: unsigned long int get_low_latency_rdma_size_hint(int num_max_dispatch_tokens_per_rank,
      int hidden, int num_ranks, int num_experts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - dtype_t
    - dtype_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: nccl_ep::ceil_div
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ceil_div(dtype_t a, dtype_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl_ep::ceil_div
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - dtype_t
    - dtype_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: nccl_ep::align
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 1
    functionsReached:
    - nccl_ep::ceil_div
    linkageType: ''
    returnType: __host__
    signature: __host__ align(dtype_t a, dtype_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EP_HOST_ASSERT
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: nccl_ep::clean_meta
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 0
    functionsReached:
    - EP_HOST_ASSERT
    linkageType: ''
    returnType: std::pair<int*, int>
    signature: std::pair<int*, int> clean_meta()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<out_ptr_t>
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:194,1
    - Dst: reinterpret_cast<count_ptr_t>
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ptr'
    - count
    argTypes:
    - in_ptr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: nccl_ep::advance
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<out_ptr_t>
    - reinterpret_cast<count_ptr_t>
    linkageType: ''
    returnType: out_ptr_t
    signature: out_ptr_t advance(const in_ptr_t& ptr, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EP_HOST_ASSERT
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:208,1
    - Dst: std::max
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:209,1
    - Dst: std::max
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:215,1
    - Dst: EP_HOST_ASSERT
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:216,1
    - Dst: std::max
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:222,1
    - Dst: EP_HOST_ASSERT
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:223,1
    - Dst: std::max
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:229,1
    - Dst: nccl_ep::align
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:230,1
    - Dst: static_cast<int>
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:237,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:238,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:239,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:240,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:241,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:242,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:243,1
    - Dst: nccl_ep::advance
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - rdma_buffer
    - num_max_dispatch_tokens_per_rank
    - hidden
    - num_ranks
    - num_experts
    argTypes:
    - void*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 248
    functionName: nccl_ep::LowLatencyLayout
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 2
    functionsReached:
    - EP_HOST_ASSERT
    - static_cast<int>
    - nccl_ep::align
    - nccl_ep::advance
    - std::max
    linkageType: ''
    returnType: void
    signature: void LowLatencyLayout(void* rdma_buffer, int num_max_dispatch_tokens_per_rank,
      int hidden, int num_ranks, int num_experts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nccl_ep::LowLatencyLayout
      Src: /src/nccl/contrib/nccl_ep/include/common.hpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - num_max_dispatch_tokens_per_rank
    - hidden
    - num_ranks
    - num_experts
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: nccl_ep::get_low_latency_rdma_size_hint
    functionSourceFile: /src/nccl/contrib/nccl_ep/include/common.hpp
    functionUses: 1
    functionsReached:
    - nccl_ep::LowLatencyLayout
    linkageType: ''
    returnType: unsigned long int
    signature: unsigned long int get_low_latency_rdma_size_hint(int num_max_dispatch_tokens_per_rank,
      int hidden, int num_ranks, int num_experts)
Fuzzer filename: /src/fuzz_xml.cpp
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- proxy.h
- doca_verbs_umem.hpp
- nvml.h
- common/doca_gpunetio_verbs_def.h
- profiler/profiler_v6.h
- linux/limits.h
- stdarg.h
- argcheck.h
- stdint.h
- param/parser_list.h
- doca_verbs_ibv_wrapper.h
- env.h
- impl/reduce_copy__types.h
- compiler.h
- nccl_net.h
- algorithm
- core__funcs.h
- enqueue.h
- net/net_v6.h
- float.h
- dlfcn.h
- profiler/profiler_v2.h
- profiler_v6.h
- graph/topo.h
- stdio.h
- net_v4.h
- nccl_device/impl/ptr__types.h
- ibvwrap.h
- tuner_v5.h
- tuner.h
- nccl_gin.h
- nccl_device/gin/gdaki/gin_gdaki_device_host_common.h
- nvtx3/nvToolsExtPayloadHelper.h
- nvtxDetail/nvtxExtImplMemCudaRt_v1.h
- doca_gpunetio_gdrcopy.h
- host/doca_error.h
- memory
- errno.h
- doca_verbs_uar.hpp
- net_v11.h
- gin/gin_host_proxy.h
- net_v2.h
- string
- nvtxDetail/nvtxTypes.h
- barrier__types.h
- string.h
- doca_gpunetio.hpp
- sys/time.h
- reduce_copy__impl.h
- proxy/gin_proxy.h
- nvtxDetail/nvtxExtTypes.h
- host/mlx5_ifc.h
- nvtx_payload_schemas.h
- endian.h
- ../doca_gpunetio_config.h
- param/parser_common.h
- ../coop.h
- iphlpapi.h
- cstring
- tuner/tuner_v4.h
- param/parsers.h
- xml.h
- sys/stat.h
- cstddef
- nccl_device/lsa_barrier.h
- initializer_list
- param/parser_bitset.h
- network/unpack/unpack.h
- ../gin_barrier.h
- profiler/profiler_v4.h
- nccl_device/impl/ll_a2a__funcs.h
- info.h
- nvtxDetail/nvtxImplSync_v3.h
- mpi.h
- primitives.h
- gin_scratch.h
- netinet/tcp.h
- nvToolsExtPayload.h
- chrono
- nccl_device/impl/ll_a2a__types.h
- signal.h
- tuner/tuner_v5.h
- channel.h
- limits
- unpack_defs.h
- transport.h
- nvtx3/nvtx3.hpp
- nccl_device/gin/gin_device_host_common.h
- gin__types.h
- network/unpack/unpack_defs.h
- optional
- nccl/env.h
- sys/syslog.h
- netinet/in.h
- windows.h
- unistd.h
- Iphlpapi.h
- mpi_utils.h
- profiler_plugin_ce.h
- gin_barrier__types.h
- nccl_git_version.h
- vector__funcs.h
- cpuid.h
- doca_gpunetio.h
- coop.h
- pthread.h
- common_kernel.h
- android/log.h
- gin.h
- impl/core__types.h
- doca_verbs_srq.hpp
- gin/gin_device_common.h
- nccl_device/ptr.h
- net_v9.h
- nvtxInit.h
- io.h
- cstdio
- topo.h
- p2p_resiliency.h
- vector__types.h
- device.h
- bitops.h
- ../gin_device_host_common.h
- getopt.h
- netdb.h
- atomic
- ws2tcpip.h
- gin_device_common.h
- doca_verbs_mlx5dv_wrapper.h
- host/mlx5_prm.h
- host/doca_verbs.h
- syslog.h
- doca_verbs_qp.hpp
- device/doca_gpunetio_dev_verbs_counter.cuh
- doca_verbs_cuda_wrapper.h
- nccl_env.h
- nmmintrin.h
- nccl_device/impl/gin_barrier__funcs.h
- Windows.h
- net_v5.h
- cuda_fp8.h
- cpuset.h
- unordered_set
- net_socket_v1.h
- net/net_v10.h
- common.h
- plugin/profiler/profiler_v6.h
- stddef.h
- lsa_barrier__types.h
- device/doca_gpunetio_dev_verbs_qp.cuh
- param/common.h
- cstdlib
- cctype
- net/if.h
- linux/types.h
- profiler/profiler_v5.h
- ../ll_a2a.h
- sys/wait.h
- BaseTsd.h
- gin/gin_host_win_stub.h
- device/hybridep_configs.cuh
- ../core.h
- ../lsa_barrier.h
- os.h
- nccl_device/impl/barrier__funcs.h
- net_v8.h
- queue.h
- mlx5/mlx5dvcore.h
- gin_win_stub.h
- stdexcept
- param/param_registry.h
- comm.h
- profiler_v4.h
- profiler_v3.h
- nvtxExtHelperMacros.h
- ../net_device.h
- random
- nvmlwrap.h
- cuda_fp16.h
- register.h
- ../comm.h
- type_traits
- net/net_v8.h
- tuner/tuner_v6.h
- doca_gpunetio_verbs_def.h
- nvtxDetail/nvtxImpl.h
- nccl_device/gin_win_stub.h
- ctype.h
- x86intrin.h
- ../device/symmetric/gin_scratch__funcs.h
- processthreadsapi.h
- prims_ll128.h
- bits/c++config.h
- nccl_profiler.h
- scheduler.h
- sys/types.h
- profiler_v2.h
- timer.h
- ../plugin.c
- cuda_bf16.h
- collectives.h
- nccl/profiler_v6.h
- host/doca_gpunetio_high_level.h
- profileapi.h
- lsa_barrier__funcs.h
- plugin/nccl_net.h
- array
- sym_kernels.h
- new
- cerrno
- gin/gin_v13.h
- cooperative_groups.h
- profiler.h
- ../gin_scratch.h
- mem_manager.h
- doca_verbs_net_wrapper.h
- nccl_device/impl/gin__funcs.h
- sys/mman.h
- wchar.h
- gin_scratch__types.h
- compiler/gcc.h
- param/parser_default.h
- alloc.h
- mlx5/mlx5dvwrap.h
- stdlib.h
- connect.h
- cudaTypedefs.h
- nvtxDetail/nvtxImplCuda_v3.h
- rma/rma.h
- nccl_device/core.h
- nvToolsExtMem.h
- param/param.h
- cfloat
- net/net_v9.h
- ws2ipdef.h
- checks.h
- nccl_tuner.h
- graph.h
- memory.h
- emmintrin.h
- env_v1.h
- plugin/nccl_gin.h
- uchar.h
- sys/un.h
- ll_a2a__types.h
- nvtxDetail/nvtxExtPayloadHelperInternal.h
- ../reduce_copy.h
- dirent.h
- device/doca_gpunetio_dev_verbs_cq.cuh
- ifaddrs.h
- ibvcore.h
- nvtxInitDefs.h
- p2p.h
- nccl_device/reduce_copy.h
- nvToolsExt.h
- vector
- nvtxDetail/nvtxExtImplPayload_v1.h
- nvtxInitDecls.h
- net_device.h
- nvtxExtImpl.h
- coll_net.h
- profiler/net_socket.h
- device/doca_gpunetio_dev_verbs_common.cuh
- env/env_v1.h
- set
- ../gin_device_common.h
- gin_proxy_device_host_common.h
- host/doca_gpunetio.h
- net_v3.h
- print_event.h
- sys/socket.h
- nccl_device/gin_barrier.h
- net/net_v7.h
- inttypes.h
- dev_runtime.h
- rma/rma_proxy.h
- utility.h
- profiler_net.h
- event.h
- nvtxExtInit.h
- driver_types.h
- fcntl.h
- nccl_utils.h
- limits.h
- mlx5/mlx5dvsymbols.h
- include/nccl_ep.h
- doca_gpunetio_host.h
- cinttypes
- register_inline.h
- nccl_device/gin/gin_device_api.h
- socket.h
- rings.h
- gin_scratch__funcs.h
- sys/resource.h
- devcomm_v22902.h
- doca_gpunetio_config.h
- cudawrap.h
- strongstream.h
- gdrwrap.h
- ../common/doca_gpunetio_verbs_def.h
- nccl_device/gin/gin_device_common.h
- android/api-level.h
- gin/gin_v12.h
- impl/gin_barrier__types.h
- net_v7.h
- nccl.h
- ctime
- nccl_device/ll_a2a.h
- net_v6.h
- gin/gin_v11.h
- impl/lsa_barrier__types.h
- net.h
- ras.h
- nccl_device/impl/ptr__funcs.h
- intrin.h
- ce_coll.h
- nccl_device/impl/comm__funcs.h
- cassert
- cuda.h
- functional
- net_v10.h
- stdbool.h
- profiler_v1.h
- gin_device_host_common.h
- stdalign.h
- sched.h
- net/net_v11.h
- nccl_device/impl/reduce_copy__types.h
- infiniband/verbs.h
- poll.h
- nccl_device/net_device.h
- multimem__funcs.h
- tuner/tuner_v3.h
- immintrin.h
- ipcsocket.h
- cmath
- nccl_device/impl/core__funcs.h
- rma/rma_ce.h
- climits
- nccl_device/barrier.h
- profiler/profiler_v1.h
- nccl_device/impl/comm__types.h
- profiler_v5.h
- device/macros.cuh
- common/doca_gpunetio_verbs_dev.h
- os/windows.h
- nccl_device/impl/lsa_barrier__funcs.h
- doca_verbs_cq.hpp
- assert.h
- doca_verbs_device_attr.hpp
- net/net_v12.h
- nvtxImplCore.h
- cstdbool
- ../utility.h
- arpa/inet.h
- nccl/common.h
- nccl_device_wrapper.h
- param/utils.h
- nvtxDetail/nvtxExtImplCounters_v1.h
- nccl_device/utility.h
- utils.h
- nvtx3/nvToolsExtPayload.h
- prims_ll.h
- ../device/symmetric/gin_scratch.h
- nccl_device/coop.h
- mnnvl.h
- cuda_runtime_api.h
- param/parser_enum.h
- gin_v11.h
- debug.h
- reduce_kernel.h
- ptr__types.h
- cuda/atomic
- gdaki/gin_host_gdaki.h
- utility
- err.h
- mutex
- profiler/profiler_v3.h
- core.h
- condition_variable
- ras_internal.h
- unordered_map
- math.h
- op128.h
- cstdint
- nvtxDetail/nvtxExtImplMem_v1.h
- ../ptr.h
- nccl_device/gin/proxy/gin_proxy_device_host_common.h
- core__types.h
- stdatomic.h
- shm.h
- list
- compiler/msvc.h
- net_ib_v1.h
- nvtxDetail/nvtxImplCudaRt_v3.h
- reduce_copy__types.h
- ../barrier.h
- gin_gdaki_device_host_common.h
- strings.h
- bootstrap.h
- allocator.h
- nvtxExtPayloadTypeInfo.h
- ibvsymbols.h
- libloaderapi.h
- winsock2.h
- malloc.h
- gdaki/gin_gdaki.h
- shmutils.h
- device/hybridep_adapter.cuh
- nvtxDetail/nvtxLinkOnce.h
- nccl_device/impl/core__types.h
- trees.h
- process.h
- link.h
- cuda_runtime.h
- plugin.h
- os/linux.h
- group.h
- CL/cl.h
- sys/syscall.h
- Iptypes.h
- gin_barrier__funcs.h
- infiniband/mlx5dv.h
- device/doca_gpunetio_dev_verbs_onesided.cuh
- time.h
- profiler/net_ib.h
- net_v12.h
- doca_internal.hpp
- nvtx.h
- doca_error.h
- nccl_device/impl/barrier__types.h
- comm__types.h
- nccl_common.h
- param.h
- p2p_resiliency_recovery.h
- gin_host_gdaki.h
- gdrapi.h
- doca_gpunetio/doca_gpunetio_device.h
- ../gin.h
- prims_simple.h
- doca_gpunetio_log.hpp
- cstdarg
- include/common.hpp
- gin/gin_host.h
- tuner/tuner_v2.h
- thread
- nccl_device/impl/reduce_copy__funcs.h
- nvtxDetail/nvtxImplOpenCL_v3.h
- nccl_device.h
report: name
sources:
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/fuzz_xml.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - computeLsaSize
  - ncclDevrIsOneLsaTeam
  - ncclDevrInitOnce
  - ncclDevrFinalize
  - symMemorySetAccessForVASegment
  - symMemoryExportSegmentHandle
  - symMemoryImportAndMapSegmentHandle
  - symMemoryImportAndMapSegmentsForRank
  - symMemoryMapLsaTeam
  - symBindTeamMemory
  - symUnbindTeamMemory
  - symTeamObtain
  - symTeamDestroyAll
  - symMemoryRegisterGin
  - symMemoryRegisterRma
  - symMemoryObtain
  - symMemoryDropRef
  - symWindowTableInitOnce
  - allocAndPopulateSegmentWindows
  - symWindowCreate
  - symWindowDestroy
  - ncclDevrWindowRegisterInGroup
  - deepCopyDevCommRequirements
  - freeDevCommRequirements
  - ncclGinResourcesRequested
  - ncclDevCommGdakiDump
  - ncclDevCommProxyDump
  - ncclDevCommGdakiDump
  - ncclDevCommProxyDump
  - ncclDevCommDump
  - ncclDevrCommCreateInternal
  - ncclCommWindowRegister
  - ncclCommWindowDeregister
  - ncclDevrFindWindow
  - ncclDevrWindowIsMultiSegment
  - ncclDevrWindowHasSysmemSegment
  - getNcclVersionCompat
  - ncclDevCommCopyLsaData
  - ncclCommQueryProperties
  - ncclDevCommCreate
  - ncclDevCommDestroy
  - ncclWinGetUserPtr
  - ncclDevrWorldToLsaRank
  - ncclDevrGetLsaRankPtr
  - ncclDevrGetRmaDevWin
  - ncclDevrGetLsaTeamPtrMC
  - findCommAndHostWindowFromDeviceWindow
  - ncclGetMultimemDevicePointer
  - ncclGetLsaMultimemDevicePointer
  - ncclGetLsaDevicePointer
  - ncclGetPeerDevicePointer
  - listFindSortedLub
  - listInsert
  - listRemove
  source_file: /src/nccl/src/dev_runtime.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* ginHostWins[NCCL_GIN_MAX_CONNECTIONS]'
        type: void
      - name: ginDevWins[NCCL_GIN_MAX_CONNECTIONS]
        type: ncclGinWindow_t
      - name: memType
        type: CUmemLocationType
      - name: segmentSize
        type: size_t
      item_type: struct
      name: multiSegmentGinInfo
      pos:
        line_end: 51
        line_start: 46
        source_file: /src/nccl/src/dev_runtime.cc
    - fields:
      - name: refCount
        type: int
      - name: '* next'
        type: struct ncclDevrMemory
      - name: '* memHandles'
        type: CUmemGenericAllocationHandle
      - name: '* primaryAddr'
        type: void
      - name: size
        type: size_t
      - name: bigOffset
        type: size_t
      - name: '* ginHostWins[NCCL_GIN_MAX_CONNECTIONS]'
        type: void
      - name: ginDevWins[NCCL_GIN_MAX_CONNECTIONS]
        type: ncclGinWindow_t
      - name: '* rmaHostWins[NCCL_GIN_MAX_CONNECTIONS]'
        type: void
      - name: rmaDevWins[NCCL_GIN_MAX_CONNECTIONS]
        type: ncclGinWindow_t
      - name: winFlags
        type: int
      - name: numSegments
        type: int
      - name: hasSysmemSegment
        type: bool
      - name: '* segmentSizes'
        type: size_t
      - name: maxGlobalNumSegments
        type: int
      - name: globalHasSysmemSegment
        type: bool
      - name: '* lsaNumSegments'
        type: int
      - name: numGinSegments
        type: int
      - name: '* ginSegmentInfos'
        type: struct multiSegmentGinInfo
      item_type: struct
      name: ncclDevrMemory
      pos:
        line_end: 78
        line_start: 54
        source_file: /src/nccl/src/dev_runtime.cc
    - fields:
      - name: userAddr
        type: uintptr_t
      - name: size
        type: size_t
      - name: '* win'
        type: struct ncclDevrWindow
      item_type: struct
      name: ncclDevrWindowSorted
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/nccl/src/dev_runtime.cc
    - fields:
      - name: '* next'
        type: struct ncclDevrTeam
      - name: team
        type: struct ncclTeam
      - name: mcHandle
        type: CUmemGenericAllocationHandle
      - name: '* mcBasePtr'
        type: void
      - name: worldRankList[]
        type: int
      item_type: struct
      name: ncclDevrTeam
      pos:
        line_end: 92
        line_start: 86
        source_file: /src/nccl/src/dev_runtime.cc
    - fields:
      - name: type
        type: CUmemLocationType
      - name: segmentSize
        type: size_t
      item_type: struct
      name: symLsaMessage
      pos:
        line_end: 249
        line_start: 242
        source_file: /src/nccl/src/dev_runtime.cc
    - fields:
      - name: numSegments
        type: int
      - name: hasSysmemSegment
        type: bool
      item_type: struct
      name: segmentInfo
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nccl/src/dev_runtime.cc
    typedefs: []
    union: []
- function_names:
  - STR2
  - STR
  - ctaPolicyIsValid
  - getEnvCtaPolicyOnce
  - initGdrCopy
  - initOnceFunc
  - ncclInit
  - envInitOnceFunc
  - ncclInitEnv
  - ncclGetVersion
  - ncclGetUniqueId
  - NCCL_NO_OPTIMIZE::commPoison
  - ncclDestructorFnFree
  - ncclCommPushFree
  - ncclDestructorFnCudaFree
  - ncclCommPushCudaFree
  - ncclDestructorFnCudaHostFree
  - ncclCommPushCudaHostFree
  - ncclDestructorFnCudaGdrFree
  - ncclCommPushCudaGdrFree
  - commFree
  - dmaBufSupported
  - ncclCommEnsureReady
  - commAlloc
  - devCommSetup
  - showVersion
  - fillInfo
  - setupChannel
  - computeBuffSizes
  - initNvlDomainInfo
  - ncclP2pSchedule
  - initTransportsRank
  - ncclCommFinalizeAsyncJobFree
  - commGetSplitInfo
  - getParentRanks
  - ncclCommInitRankFunc
  - NCCL_CONFIG_DEFAULT
  - envConfigOverride
  - copyCommConfig
  - parseCommConfig
  - ncclCommInitJobFree
  - ncclCommInitRankDev
  - ncclCommInitRank
  - ncclCommInitAll
  - ncclCommSetAsyncError
  - ncclCommInitRankConfig
  - ncclCommInitRankScalable
  - commDestroySync
  - commCleanup
  - ncclCommFinalize
  - commReclaim
  - ncclCommDestroy
  - setCommAbortFlags
  - commRevokeAsync
  - ncclCommRevoke
  - ncclCommAbort
  - childCommCleanupJob
  - ncclCommInitChildComm
  - ncclCommShrink
  - ncclCommGetUniqueId
  - ncclCommGrow
  - 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: 46
        line_start: 45
        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: 48
        line_start: 47
        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: 200
        line_start: 199
        source_file: /src/nccl/src/init.cc
      type_or_value: __attribute__((optnone))
    - item_type: preproc_def
      name: NCCL_NO_OPTIMIZE
      pos:
        line_end: 202
        line_start: 201
        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: 393
        line_start: 392
        source_file: /src/nccl/src/init.cc
      type_or_value: (1<<20)
    - item_type: preproc_def
      name: VERSION_STRING
      pos:
        line_end: 671
        line_start: 670
        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: 781
        line_start: 780
        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: 782
        line_start: 781
        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: 783
        line_start: 782
        source_file: /src/nccl/src/init.cc
      type_or_value: '(1 << 22) '
    - item_type: preproc_def
      name: TIMER_INIT_TOTAL
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/nccl/src/init.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: TIMER_INIT_KERNELS
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/nccl/src/init.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: TIMER_INIT_BOOTSTRAP
      pos:
        line_end: 835
        line_start: 834
        source_file: /src/nccl/src/init.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: TIMER_INIT_ALLGATHER
      pos:
        line_end: 836
        line_start: 835
        source_file: /src/nccl/src/init.cc
      type_or_value: '3'
    - item_type: preproc_def
      name: TIMER_INIT_TOPO
      pos:
        line_end: 837
        line_start: 836
        source_file: /src/nccl/src/init.cc
      type_or_value: '4'
    - item_type: preproc_def
      name: TIMER_INIT_GRAPHS
      pos:
        line_end: 838
        line_start: 837
        source_file: /src/nccl/src/init.cc
      type_or_value: '5'
    - item_type: preproc_def
      name: TIMER_INIT_CONNECT
      pos:
        line_end: 839
        line_start: 838
        source_file: /src/nccl/src/init.cc
      type_or_value: '6'
    - item_type: preproc_def
      name: TIMER_INIT_ALLOC
      pos:
        line_end: 840
        line_start: 839
        source_file: /src/nccl/src/init.cc
      type_or_value: '7'
    - item_type: preproc_def
      name: TIMERS_INIT_COUNT
      pos:
        line_end: 841
        line_start: 840
        source_file: /src/nccl/src/init.cc
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_MAX_CGA_CLUSTER_SIZE
      pos:
        line_end: 1660
        line_start: 1659
        source_file: /src/nccl/src/init.cc
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_COMMINIT_FUNCNAME_LEN
      pos:
        line_end: 1666
        line_start: 1665
        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: 955
        line_start: 946
        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
      - name: p2pnChannelsPerPeer
        type: int
      - name: p2pMaxPeers
        type: int
      - name: minNetBw
        type: float
      - name: nicFused
        type: bool
      - name: localNetDeviceCount
        type: int
      - name: localCollNetCount
        type: int
      - name: isMultiRankGpu
        type: bool
      item_type: struct
      name: allGatherInfo
      pos:
        line_end: 970
        line_start: 957
        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: childCount
        type: int
      - name: '* excludeRanksList'
        type: int
      - name: excludeRanksCount
        type: int
      - name: funcName[NCCL_COMMINIT_FUNCNAME_LEN]
        type: char
      - name: isGrow
        type: bool
      item_type: struct
      name: ncclCommInitRankAsyncJob
      pos:
        line_end: 1685
        line_start: 1666
        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: 1690
        line_start: 1687
        source_file: /src/nccl/src/init.cc
    - fields:
      - name: key
        type: int
      - name: color
        type: int
      item_type: struct
      name: commSplitInfo
      pos:
        line_end: 1703
        line_start: 1700
        source_file: /src/nccl/src/init.cc
    - fields:
      - name: base
        type: struct ncclAsyncJob
      - name: comm
        type: ncclComm_t
      item_type: struct
      name: ncclCommRevokeAsyncJob
      pos:
        line_end: 2768
        line_start: 2765
        source_file: /src/nccl/src/init.cc
    typedefs: []
    union: []
- function_names:
  - ncclMemManagerInit
  - ncclMemManagerDestroy
  - ncclMemTrackInternal
  - ncclMemTrack
  - ncclMemTrackImportFromPeer
  - ncclMemUntrack
  - ncclDynMemMarkExportToPeer
  - ncclCommMemSuspend
  - ncclCommMemResume
  - ncclCommSuspend
  - ncclCommResume
  - ncclCommMemStats
  source_file: /src/nccl/src/mem_manager.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclAsyncLaunch
  - ncclAsyncJobMain
  - ncclAsyncJobComplete
  - ncclGroupStart
  - ncclGroupEnd
  - ncclGroupSimulateEnd
  - ncclP2PPreconnectFunc
  - ncclCollPreconnect
  - ncclPrepareTasksAndCollPreconnectFunc
  - ncclCollPreconnectFunc
  - ncclCommGroupArgsGlobalCheck
  - ncclCommGroupRegisterSymmetric
  - doLaunches
  - groupLocalResetJobState
  - groupCleanup
  - asyncJobLaunch
  - ncclPrepareTasksAndCollPreconnectJobFree
  - ncclPreconnectJobFree
  - ncclGroupSymmetricJobFree
  - ncclPrepareTasksAndCollPreconnect
  - 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: 25
        line_start: 24
        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: 133
        line_start: 129
        source_file: /src/nccl/src/group.cc
    - fields:
      - name: base
        type: struct ncclAsyncJob
      - name: '* comm'
        type: struct ncclComm
      - name: '* simInfo'
        type: ncclSimInfo_t
      item_type: struct
      name: ncclPrepareTasksAndCollPreconnectJob
      pos:
        line_end: 139
        line_start: 135
        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: 227
        line_start: 224
        source_file: /src/nccl/src/group.cc
    - fields:
      - name: base
        type: struct ncclAsyncJob
      - name: '* comm'
        type: struct ncclComm
      item_type: struct
      name: ncclGroupDebugJob
      pos:
        line_end: 232
        line_start: 229
        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
  - proxyCpusetOnceFunc
  - ncclProxyProgress
  - ncclProxyStart
  - ncclProxyProgressCreate
  - ncclProxyProgressDestroy
  - ncclProxyNewConnection
  - ncclProxyGetConnection
  - proxyFree
  - ncclProxyFreeConnections
  - ncclProxyConnect
  - ncclProxyCallBlockingUDS
  - ncclProxyClientGetFdBlocking
  - ncclProxyClientBatchQueryFdBlocking
  - 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: 13
        line_start: 12
        source_file: /src/nccl/src/proxy.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_MAX_PROXY_CONNECTIONS
      pos:
        line_end: 28
        line_start: 27
        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: 47
        line_start: 46
        source_file: /src/nccl/src/proxy.cc
      type_or_value: NCCL_MAX_OPS
    - item_type: preproc_def
      name: DEBUG_PROXY_PRINT
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/nccl/src/proxy.cc
      type_or_value: printf
    - item_type: preproc_def
      name: OP_SEEN
      pos:
        line_end: 238
        line_start: 237
        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: 1058
        line_start: 1057
        source_file: /src/nccl/src/proxy.cc
      type_or_value: '7'
    - item_type: preproc_def
      name: NCCL_PROXY_CONN_POOL_SIZE
      pos:
        line_end: 1059
        line_start: 1058
        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: 1060
        line_start: 1059
        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: 50
        line_start: 47
        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: 1064
        line_start: 1060
        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: 1122
        line_start: 1116
        source_file: /src/nccl/src/proxy.cc
    - fields:
      - name: '* connection'
        type: ncclProxyConnection
      - name: devShmPath[16]
        type: char
      item_type: struct
      name: ncclProxyInitResp
      pos:
        line_end: 1127
        line_start: 1124
        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: 9
        line_start: 9
        source_file: /src/nccl/src/enhcompat.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclSymkLLKernelMask
  - ncclSymkDynamicSmemKernelMask
  - kernelMask_coll
  - kernelMask_user
  - softmin
  - softplus
  - model
  - queryModel
  - getLsaBw
  - getGinLat
  - getGinBw
  - getBusMul_ReduceScatter_RailA2A
  - getSmBw_ReduceScatter_RailA2A
  - getSmLat_ReduceScatter_RailA2A
  - calcSatBlocks_ReduceScatter_RailA2A
  - getRequirements_gin
  - queryModel_gin
  - queryModel_lsa
  - ncclSymkInitOnce
  - ncclSymkFinalize
  - ncclSymkImplemented
  - ncclSymkMask
  - ncclSymkAvailable
  - ncclSymkPickKernel
  - ncclSymkKernelIdToString
  - ncclSymkMaxChunkElts
  - ncclSymkMakeDevWork
  - ncclGetSymRegType
  source_file: /src/nccl/src/sym_kernels.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NVLINK_BW_IDX_HOPPER
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/nccl/src/sym_kernels.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_NVLINK_BW_IDX_BLACKWELL
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/nccl/src/sym_kernels.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_NVLINK_BW_IDX_NUM
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/nccl/src/sym_kernels.cc
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclFuncToString
  - ncclDevRedOpToString
  - ncclDatatypeToString
  - ncclAlgoToString
  - ncclProtoToString
  - ncclAllGather
  - ncclAlltoAll
  - ncclAllReduce
  - ncclBroadcast
  - ncclBcast
  - ncclGather
  - ncclReduce
  - ncclReduceScatter
  - ncclScatter
  - ncclSend
  - ncclRecv
  - ncclPutSignal
  - ncclSignal
  - ncclWaitSignal
  source_file: /src/nccl/src/collectives.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclCeInit
  - ncclCeFinalize
  - ncclCeImplemented
  - ncclCeAvailable
  - ncclPrepMCSync
  - ncclPrepUCSync
  - ncclMemOpSync
  - ncclCeInitBatchOpsParams
  - ncclCeFreeBatchOpsParams
  - ncclCeLaunchBatchOps
  - ncclCeAllGather
  - ncclCeAlltoAll
  - ncclCeScatter
  - ncclCeGather
  - ncclLaunchCeColl
  source_file: /src/nccl/src/ce_coll.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclMemAlloc
  - ncclMemFree
  - ncclSpaceConstruct
  - ncclSpaceDestruct
  - insertSegment
  - ncclSpaceAlloc
  - ncclSpaceFree
  - ncclShadowPoolConstruct
  - ncclShadowPoolDestruct
  - hashInsert
  - ncclShadowPoolAlloc
  - ncclShadowPoolFree
  - ncclShadowPoolToHost
  source_file: /src/nccl/src/allocator.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* next'
        type: struct ncclShadowPage
      - name: objSize
        type: int
      - name: freeMask
        type: uint64_t
      - name: '* devObjs'
        type: void
      item_type: struct
      name: ncclShadowPage
      pos:
        line_end: 265
        line_start: 260
        source_file: /src/nccl/src/allocator.cc
    - fields:
      - name: '* next'
        type: struct ncclShadowObject
      - name: '* devObj'
        type: void
      - name: '* hostObj'
        type: void
      - name: '* page'
        type: struct ncclShadowPage
      item_type: struct
      name: ncclShadowObject
      pos:
        line_end: 271
        line_start: 266
        source_file: /src/nccl/src/allocator.cc
    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
  - socketDoubleSendRecv
  - NET_HANDLE
  - BOOTSTRAP_HANDLE
  - rootSend
  - bootstrapRoot
  - bootstrapCreateRoot
  - bootstrapGetUniqueId
  - bcastGrowHandle
  - 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: 142
        line_start: 142
        source_file: /src/nccl/src/bootstrap.cc
    preproc_defs:
    - item_type: preproc_def
      name: BOOTSTRAP_N_CHECK_ABORT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '10000'
    - item_type: preproc_def
      name: BOOTSTRAP_TAG_CONNECT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: (0x1 << 31)
    - item_type: preproc_def
      name: BOOTSTRAP_TAG_ALLGATHER
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: (0x1 << 30)
    - item_type: preproc_def
      name: BOOTSTRAP_TAG_COMMSPLIT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: (0x1 << 29)
    - item_type: preproc_def
      name: BOOTSTRAP_TAG_INTRANODE_ALLGATHER
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: (0x1 << 28)
    - item_type: preproc_def
      name: BOOTSTRAP_TAG_GROW_BOUNDARY
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: (0x1 << 27)
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_CREATE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_SEND
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_RECV
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_RING
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '3'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_TOTAL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '4'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_DELAY
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '5'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_N
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '6'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_ROOT_WAIT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_ROOT_SEND
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_ROOT_RECV
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_ROOT_N
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '3'
    - item_type: preproc_def
      name: MAX_OOB_DEVS
      pos:
        line_end: 538
        line_start: 537
        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: 96
        line_start: 93
        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: offset
        type: int
      - name: listenRootAddress
        type: union ncclSocketAddress
      - name: connectInfo
        type: union ringConnectInfo
      item_type: struct
      name: extInfo
      pos:
        line_end: 270
        line_start: 262
        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: 480
        line_start: 475
        source_file: /src/nccl/src/bootstrap.cc
    - fields: []
      item_type: struct
      name: bootstrapRing_t
      pos:
        line_end: 493
        line_start: 482
        source_file: /src/nccl/src/bootstrap.cc
    - fields:
      - name: peerSocket
        type: struct ncclSocket
      item_type: struct
      name: bootstrapListen_t
      pos:
        line_end: 504
        line_start: 494
        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: 519
        line_start: 506
        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: 622
        line_start: 617
        source_file: /src/nccl/src/bootstrap.cc
    - fields:
      - name: rank
        type: int
      - name: tag
        type: int
      item_type: struct
      name: socketAckInfo
      pos:
        line_end: 949
        line_start: 946
        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: 260
        line_start: 257
        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
  - ncclAddProxyOpIfNeeded
  - ncclAddWorkBatchToPlan
  - finishPlan
  - ncclTestBudget
  - ncclTasksRegAndEnqueue
  - ncclPrepareTasks
  - addProfilerProxyOpIfNeeded
  - scheduleCollTasksToPlan
  - addP2pToPlan
  - calcP2pChannelCount
  - scheduleP2pTasksToPlan
  - waitWorkFifoAvailable
  - uploadWork_cleanup_fn
  - uploadWork_cleanup_fn
  - uploadWork
  - geteActivationMask
  - gettaskEventHandle
  - uploadProxyOps
  - hostStreamPlanTask
  - hostStreamPlanCallback
  - reclaimPlan
  - persistentDestructor
  - getImplicitOrder
  - ncclLaunchPrepare
  - ncclLaunchKernelBefore_NoUncapturedCuda
  - ncclLaunchKernel
  - ncclLaunchKernelAfter_NoCuda
  - KernelFinishCallback_fn
  - KernelFinishCallback_fn
  - ncclLaunchFinish
  - ncclGetCollNetSupport
  - initCollCostTable
  - updateCollCostTable
  - topoGetAlgoInfo
  - ncclGetAlgoInfo
  - calcCollChunking
  - hostToDevRedOp
  - ncclPlannerSetCapturingGraph
  - p2pTaskAppend
  - collTaskAppend
  - ceCollTaskAppend
  - rmaTaskAppend
  - 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: 1498
        line_start: 1494
        source_file: /src/nccl/src/enqueue.cc
    - enumerators:
      - name: ncclImplicitOrderNone
      - name: ncclImplicitOrderLaunch
      - name: ncclImplicitOrderSerial
      item_type: enum
      name: ncclImplicitOrder
      pos:
        line_end: 1498
        line_start: 1494
        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: 286
        line_start: 283
        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: 1202
        line_start: 1199
        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: 1202
        line_start: 1199
        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: 1796
        line_start: 1793
        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: 1796
        line_start: 1793
        source_file: /src/nccl/src/enqueue.cc
    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: 11
        line_start: 10
        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: 346
        line_start: 343
        source_file: /src/nccl/src/transport.cc
    typedefs: []
    union: []
- function_names:
  - getHostNameForLog
  - ncclDebugInit
  - ncclDebugLog
  - ncclResetDebugInitInternal
  - 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: 23
        line_start: 22
        source_file: /src/nccl/src/debug.cc
      type_or_value: (-2)
    structs: []
    typedefs:
    - item_type: typedef
      name: '* (*ncclGetEnvFunc_t)(const char*)'
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/nccl/src/debug.cc
      type: char
    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: 233
        line_start: 232
        source_file: /src/nccl/src/device/op128.h
      type_or_value: '"relaxed.gpu"'
    - item_type: preproc_def
      name: PTX_relaxed_gpu
      pos:
        line_end: 235
        line_start: 234
        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: 162
        line_start: 159
        source_file: /src/nccl/src/device/op128.h
    - fields:
      - name: Size
        type: int
      item_type: struct
      name: BytePackOf<BytePack<0>>
      pos:
        line_end: 167
        line_start: 164
        source_file: /src/nccl/src/device/op128.h
    typedefs: []
    union:
    - fields: []
      item_type: union
      name: BytePack<0>
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/nccl/src/device/op128.h
    - fields:
      - name: u8[1]
        type: uint8_t
      item_type: union
      name: BytePack<1>
      pos:
        line_end: 103
        line_start: 101
        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: 110
        line_start: 105
        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: 119
        line_start: 112
        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: 130
        line_start: 121
        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: 143
        line_start: 132
        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: 156
        line_start: 145
        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: 95
        line_start: 87
        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: 102
        line_start: 98
        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: 109
        line_start: 105
        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: 172
        line_start: 112
        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: 395
        line_start: 175
        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: 244
        line_start: 177
        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: 561
        line_start: 398
        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: 470
        line_start: 400
        source_file: /src/nccl/src/device/all_gather.h
    typedefs: []
    union: []
- function_names:
  - setDataPtrsHelper
  - setDataPtrsHelper
  - setDataPtrsHelper
  - setDataPtrsHelper
  - runAllGatherV
  - run
  - run
  - run
  source_file: /src/nccl/src/device/all_gather_v.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkBatch<ncclFuncAllGatherV, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 95
        line_start: 90
        source_file: /src/nccl/src/device/all_gather_v.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkBatch<ncclFuncAllGatherV, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL>
      pos:
        line_end: 101
        line_start: 97
        source_file: /src/nccl/src/device/all_gather_v.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkBatch<ncclFuncAllGatherV, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL128>
      pos:
        line_end: 107
        line_start: 103
        source_file: /src/nccl/src/device/all_gather_v.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: 62
        line_start: 57
        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: 69
        line_start: 65
        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: 76
        line_start: 72
        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: 16
        line_start: 15
        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: 43
        line_start: 25
        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: 58
        line_start: 45
        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: 73
        line_start: 60
        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: 91
        line_start: 82
        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: 103
        line_start: 94
        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: 140
        line_start: 111
        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: 238
        line_start: 233
        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: 249
        line_start: 241
        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: 385
        line_start: 252
        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: 518
        line_start: 388
        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: 626
        line_start: 521
        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: 752
        line_start: 629
        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: 759
        line_start: 755
        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: 766
        line_start: 762
        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: 773
        line_start: 769
        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: 780
        line_start: 776
        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: 70
        line_start: 65
        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: 77
        line_start: 73
        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: 84
        line_start: 80
        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: 17
        line_start: 16
        source_file: /src/nccl/src/device/common.h
      type_or_value: (ncclCollUnroll())
    - item_type: preproc_def
      name: NCCL_GRID_CONSTANT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/device/common.h
      type_or_value: __grid_constant__
    - item_type: preproc_def
      name: START
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/nccl/src/device/common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STOP
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/nccl/src/device/common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FINI
      pos:
        line_end: 315
        line_start: 314
        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
      - name: redOpArgs
        type: uint64_t
      item_type: struct
      name: ncclShmemGroup
      pos:
        line_end: 45
        line_start: 33
        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 ncclKernelComm
      - 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: workStorage[ncclMaxDevWorkBatchBytes()]
        type: char
      - name: devicePlugin
        type: "union {\n    unpackShmem unpack;\n  }"
      item_type: struct
      name: ncclShmemData
      pos:
        line_end: 69
        line_start: 47
        source_file: /src/nccl/src/device/common.h
    - fields: []
      item_type: struct
      name: RunWorkColl
      pos:
        line_end: 264
        line_start: 260
        source_file: /src/nccl/src/device/common.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkBatch
      pos:
        line_end: 310
        line_start: 278
        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: primsModePatRs
        value: '1'
      - name: primsModePatAg
        value: '2'
      item_type: enum
      name: primsMode
      pos:
        line_end: 14
        line_start: 10
        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: 211
        line_start: 175
        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: 10
        line_start: 9
        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: 175
        line_start: 174
        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: 64
        line_start: 59
        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: 71
        line_start: 67
        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: 78
        line_start: 74
        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: 141
        line_start: 81
        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: 348
        line_start: 144
        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: 211
        line_start: 146
        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: 511
        line_start: 351
        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: 421
        line_start: 353
        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: 173
        line_start: 12
        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: 59
        line_start: 56
        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
  - __forceinline__ static BytePack<Size>::preOp
  - preOp
  - __forceinline__ static BytePack<Size>::postOp
  - __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
  - FuncSumPostDiv
  - FuncSumPostDiv
  - FuncSumPostDiv
  - FuncSumPostDiv
  - FuncSumPostDiv
  - FuncSumPostDiv
  - FuncSumPostDiv
  - FuncSumPostDiv
  - divide
  - reduce
  - postOp
  - postOp
  - postOp
  - postOp
  - postOp
  - postOp
  - postOp
  - postOp
  - postOp
  - postOp
  - 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: 1021
        line_start: 1020
        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: 1022
        line_start: 1021
        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: 1023
        line_start: 1022
        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: 1024
        line_start: 1023
        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: 1026
        line_start: 1025
        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: 1027
        line_start: 1026
        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: 1028
        line_start: 1027
        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: 1029
        line_start: 1028
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PtxAcc_for_f16
      pos:
        line_end: 1038
        line_start: 1037
        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: 1039
        line_start: 1038
        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: 1040
        line_start: 1039
        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: 1041
        line_start: 1040
        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: 1048
        line_start: 1047
        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: 1049
        line_start: 1048
        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: 1050
        line_start: 1049
        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: 1051
        line_start: 1050
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '".acc::f16"'
    structs:
    - fields: []
      item_type: struct
      name: IsFloatingPoint
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<half>
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<__nv_bfloat16>
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<__nv_fp8_e4m3>
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<__nv_fp8_e5m2>
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<float>
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<double>
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncCopy
      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: FuncSum
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncProd
      pos:
        line_end: 46
        line_start: 46
        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: 57
        line_start: 49
        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: 69
        line_start: 66
        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: 80
        line_start: 72
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_Cast_MaybeEmpty
      pos:
        line_end: 123
        line_start: 123
        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: 127
        line_start: 125
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_Reduce_MaybeEmpty
      pos:
        line_end: 130
        line_start: 130
        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: 134
        line_start: 132
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_PreOp_MaybeEmpty
      pos:
        line_end: 137
        line_start: 137
        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: 142
        line_start: 139
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_PostOp_MaybeEmpty
      pos:
        line_end: 145
        line_start: 145
        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: 150
        line_start: 147
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_LoadMultimem_MaybeEmpty
      pos:
        line_end: 153
        line_start: 153
        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: 157
        line_start: 155
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Cast
      pos:
        line_end: 210
        line_start: 203
        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: 217
        line_start: 213
        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: 224
        line_start: 220
        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: 230
        line_start: 226
        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: 237
        line_start: 233
        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: 243
        line_start: 239
        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: 251
        line_start: 247
        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: 257
        line_start: 253
        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: 292
        line_start: 288
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_Reduce
      pos:
        line_end: 306
        line_start: 299
        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: 314
        line_start: 310
        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: 320
        line_start: 316
        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: 326
        line_start: 322
        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: 332
        line_start: 328
        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: 345
        line_start: 336
        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: 369
        line_start: 348
        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: 384
        line_start: 372
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      item_type: struct
      name: Apply_PreOp
      pos:
        line_end: 479
        line_start: 466
        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: 488
        line_start: 482
        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: 496
        line_start: 491
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      item_type: struct
      name: Apply_PostOp
      pos:
        line_end: 516
        line_start: 503
        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: 525
        line_start: 519
        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: 533
        line_start: 528
        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: 548
        line_start: 540
        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: 560
        line_start: 552
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: FuncPreMulSum<half>
      pos:
        line_end: 584
        line_start: 566
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: FuncPreMulSum<__nv_bfloat16>
      pos:
        line_end: 609
        line_start: 591
        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: 624
        line_start: 615
        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: 636
        line_start: 627
        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: 646
        line_start: 641
        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: 655
        line_start: 650
        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: 670
        line_start: 661
        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: 678
        line_start: 673
        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: 697
        line_start: 686
        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: 707
        line_start: 700
        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: 724
        line_start: 717
        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: 733
        line_start: 726
        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: 743
        line_start: 736
        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: 752
        line_start: 745
        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: 765
        line_start: 760
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: FuncSumPostDiv<__nv_bfloat16>
      pos:
        line_end: 787
        line_start: 769
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: FuncSumPostDiv<half>
      pos:
        line_end: 809
        line_start: 791
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: scalar
        type: float
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncSumPostDiv<float>
      pos:
        line_end: 820
        line_start: 812
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: scalar
        type: double
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncSumPostDiv<double>
      pos:
        line_end: 831
        line_start: 823
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: scalar2
        type: __half2
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncSumPostDiv<__nv_fp8_e4m3>
      pos:
        line_end: 845
        line_start: 836
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: scalar2
        type: __half2
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncSumPostDiv<__nv_fp8_e5m2>
      pos:
        line_end: 857
        line_start: 848
        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: 891
        line_start: 862
        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: 900
        line_start: 894
        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<float>, /*EltPerPack=*/1>
      pos:
        line_end: 911
        line_start: 906
        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<double>, /*EltPerPack=*/1>
      pos:
        line_end: 919
        line_start: 914
        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<__nv_bfloat16>, /*EltPerPack=*/1>
      pos:
        line_end: 932
        line_start: 923
        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<__nv_bfloat16>, /*EltPerPack=*/2>
      pos:
        line_end: 941
        line_start: 936
        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<half>, /*EltPerPack=*/1>
      pos:
        line_end: 955
        line_start: 946
        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<half>, /*EltPerPack=*/2>
      pos:
        line_end: 964
        line_start: 959
        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<__nv_fp8_e4m3>, /*EltPerPack=*/1>
      pos:
        line_end: 977
        line_start: 970
        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<__nv_fp8_e4m3>, /*EltPerPack=*/2>
      pos:
        line_end: 986
        line_start: 979
        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<__nv_fp8_e5m2>, /*EltPerPack=*/1>
      pos:
        line_end: 996
        line_start: 989
        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<__nv_fp8_e5m2>, /*EltPerPack=*/2>
      pos:
        line_end: 1005
        line_start: 998
        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: 1015
        line_start: 1010
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_LoadMultimem
      pos:
        line_end: 1162
        line_start: 1157
        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: 1179
        line_start: 1166
        source_file: /src/nccl/src/device/reduce_kernel.h
    typedefs: []
    union: []
- function_names:
  - min
  - loadInt
  - reduceCopyPacks
  - reduceCopy
  - reduceCopy
  source_file: /src/nccl/src/device/common_kernel.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclGinOutboxSession
  - ncclGinInboxA2ASession
  source_file: /src/nccl/src/device/symmetric/gin_scratch.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ncclGinOutboxSession(Coop, ncclGin_BackendMask<ginBackendMask> const&,
          ncclGinOutboxHandle handle, uint32_t index)
        type: NCCL_DEVICE_INLINE
      - name: ncclGinOutboxSession()
        type: NCCL_DEVICE_INLINE
      - name: ncclSymPtr<char>
        type: NCCL_DEVICE_INLINE
      - name: ncclGinScratch_GetBufPtr
        type: NCCL_DEVICE_INLINE
      - name: ncclGinCounter_t
        type: NCCL_DEVICE_INLINE
      - name: advance(Coop, int n)
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGinOutboxSession
      pos:
        line_end: 55
        line_start: 37
        source_file: /src/nccl/src/device/symmetric/gin_scratch.h
    - fields:
      - name: ncclGinInboxA2ASession(Coop, ncclGin_BackendMask<ginBackendMask> const&,
          ncclTeam team, ncclGinInboxA2AHandle, uint32_t index)
        type: NCCL_DEVICE_INLINE
      - name: ncclGinInboxA2ASession()
        type: NCCL_DEVICE_INLINE
      - name: getSendPeer(int step, bool stepLtPeers=false) const
        type: NCCL_DEVICE_INLINE
      - name: getRecvPeer(int step, bool stepLtPeers=false) const
        type: NCCL_DEVICE_INLINE
      - name: ncclSymPtr<char>
        type: NCCL_DEVICE_INLINE
      - name: ncclGinScratch_GetBufPtr
        type: NCCL_DEVICE_INLINE
      - name: endRound(Coop)
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGinInboxA2ASession
      pos:
        line_end: 104
        line_start: 65
        source_file: /src/nccl/src/device/symmetric/gin_scratch.h
    typedefs: []
    union: []
- function_names:
  - ncclGinOutboxSession<Coop, ginBackendMask>::~ncclGinOutboxSession()
  - ncclGinOutboxSession<Coop, ginBackendMask>::apportion
  - ncclGinOutboxSession<Coop, ginBackendMask>::waitBufs
  - ncclSymPtr<char> ncclGinOutboxSession<Coop, ginBackendMask>::getBuf(int i) const
  - ncclGinScratch_GetBufPtr ncclGinOutboxSession<Coop, ginBackendMask>::make_getBufPtr(int
    i0) const
  - ncclGinCounter_t ncclGinOutboxSession<Coop, ginBackendMask>::getCounter(int i)
    const
  - ncclGinOutboxSession<Coop, ginBackendMask>::advance
  - ncclGinInboxA2ASession<Coop, ginBackendMask>::~ncclGinInboxA2ASession()
  - ncclGinInboxA2ASession<Coop, ginBackendMask>::apportion
  - ncclGinInboxA2ASession<Coop, ginBackendMask>::getSendPeer
  - ncclGinInboxA2ASession<Coop, ginBackendMask>::getRecvPeer
  - ncclSymPtr<char> ncclGinInboxA2ASession<Coop, ginBackendMask>::getBuf(int step)
    const
  - ncclGinScratch_GetBufPtr ncclGinInboxA2ASession<Coop, ginBackendMask>::make_getBufPtr(int
    step0) const
  - ncclGinInboxA2ASession<Coop, ginBackendMask>::postSends
  - ncclGinInboxA2ASession<Coop, ginBackendMask>::waitRecvs
  - ncclGinInboxA2ASession<Coop, ginBackendMask>::finishRecvs
  - ncclGinInboxA2ASession<Coop, ginBackendMask>::endRound
  source_file: /src/nccl/src/device/symmetric/gin_scratch__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '* operator()(int i) const'
  - getStatePtr
  - getStateSymPtr
  - getStatePtr
  - getBufSymPtr
  - getBufsPtr
  - getSignal0
  - resetSignals
  - getC2SSignal
  - getR2RSignal
  - waitC2S
  - waitR2R
  - getPeer
  - sendC2S
  source_file: /src/nccl/src/device/symmetric/gin_scratch__types.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bufHandle
        type: ncclDevResourceHandle
      - name: counter0
        type: ncclGinCounter_t
      - name: size_log2
        type: uint32_t
      item_type: struct
      name: ncclGinOutboxHandle
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/nccl/src/device/symmetric/gin_scratch__types.h
    - fields:
      - name: CursorBits
        type: int
      - name: unpadded
        type: "struct Unpadded {\n    uint32_t nBufs_log2:5, cursor:CursorBits;\n
          \ }"
      item_type: struct
      name: ncclGinOutboxState
      pos:
        line_end: 30
        line_start: 25
        source_file: /src/nccl/src/device/symmetric/gin_scratch__types.h
    - fields:
      - name: nBufs_log2
        type: uint32_t
      item_type: struct
      name: Unpadded
      pos:
        line_end: 29
        line_start: 27
        source_file: /src/nccl/src/device/symmetric/gin_scratch__types.h
    - fields:
      - name: bufHandle
        type: ncclDevResourceHandle
      - name: signals
        type: ncclGinSignal_t
      - name: size_log2
        type: uint32_t
      - name: nPeers_rcp32
        type: uint32_t
      item_type: struct
      name: ncclGinInboxA2AHandle
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/nccl/src/device/symmetric/gin_scratch__types.h
    - fields:
      - name: RoundBits
        type: int
      - name: unpadded
        type: "struct Unpadded {\n    // Memory to ensure the same buffers aren't
          controlled with different contexts.\n    uint32_t ginContextId_plus_1:9;\n
          \   // Num of bufs we are divided into. +1 so the zero default is invalid
          (-1).\n    uint32_t nBufs_log2_plus_1:5;\n    // Every time num bufs changes
          we move to next phase.\n    uint32_t phase:2;\n    // Number of completed
          alltoalls for this phase.\n    uint32_t monoRound:RoundBits;\n    // Step
          counter that does not reset.\n    uint32_t monoStep;\n  }"
      item_type: struct
      name: ncclGinInboxA2AState
      pos:
        line_end: 57
        line_start: 41
        source_file: /src/nccl/src/device/symmetric/gin_scratch__types.h
    - fields:
      - name: ginContextId_plus_1
        type: uint32_t
      - name: nBufs_log2_plus_1
        type: uint32_t
      - name: phase
        type: uint32_t
      - name: monoRound
        type: uint32_t
      - name: monoStep
        type: uint32_t
      item_type: struct
      name: Unpadded
      pos:
        line_end: 56
        line_start: 45
        source_file: /src/nccl/src/device/symmetric/gin_scratch__types.h
    - fields:
      - name: '* bufs'
        type: char
      - name: nBufs_minus_1
        type: uint32_t
      - name: cursor
        type: uint32_t
      item_type: struct
      name: ncclGinScratch_GetBufPtr
      pos:
        line_end: 68
        line_start: 61
        source_file: /src/nccl/src/device/symmetric/gin_scratch__types.h
    - fields:
      - name: coop
        type: Coop
      - name: '& comm'
        type: ncclDevComm
      - name: gin
        type: ncclGin_BackendMask<ginBackendMask>
      - name: handle
        type: ncclGinOutboxHandle
      - name: block
        type: int
      - name: state
        type: ncclGinOutboxState::Unpadded
      - name: ncclSymPtr<ncclGinOutboxState>
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGinOutboxSession_internal
      pos:
        line_end: 91
        line_start: 73
        source_file: /src/nccl/src/device/symmetric/gin_scratch__types.h
    - fields:
      - name: coop
        type: Coop
      - name: '& comm'
        type: ncclDevComm
      - name: gin
        type: ncclGin_BackendMask<ginBackendMask>
      - name: team
        type: ncclTeam
      - name: handle
        type: ncclGinInboxA2AHandle
      - name: block
        type: int
      - name: nPeers
        type: int
      - name: state
        type: ncclGinInboxA2AState::Unpadded
      - name: ncclSymPtr<char>
        type: NCCL_DEVICE_INLINE
      - name: ncclGinSignal_t
        type: NCCL_DEVICE_INLINE
      - name: ncclGinSignal_t
        type: NCCL_DEVICE_INLINE
      - name: ncclGinSignal_t
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGinInboxA2ASession_internal
      pos:
        line_end: 177
        line_start: 96
        source_file: /src/nccl/src/device/symmetric/gin_scratch__types.h
    - fields:
      - name: railSignals
        type: ncclGinSignal_t
      item_type: struct
      name: ncclGinSyncHandle
      pos:
        line_end: 183
        line_start: 180
        source_file: /src/nccl/src/device/symmetric/gin_scratch__types.h
    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: 31
        line_start: 30
        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: 32
        line_start: 31
        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: 33
        line_start: 32
        source_file: /src/nccl/src/device/network/unpack/unpack.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PAGE_SIZE
      pos:
        line_end: 153
        line_start: 152
        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: 16
        line_start: 15
        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: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 32
        line_start: 31
        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: 34
        line_start: 32
        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: 49
        line_start: 48
        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: 50
        line_start: 49
        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: 51
        line_start: 50
        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: 52
        line_start: 51
        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: 38
        line_start: 35
        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: 44
        line_start: 40
        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: 54
        line_start: 52
        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: 60
        line_start: 56
        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: 24
        line_start: 17
        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:
  - stubInit
  - stubDevices
  - stubGetProperties
  - stubListen
  - stubConnect
  - stubAccept
  - stubRegMr
  - stubRegMrDmaBuf
  - stubDeregMr
  - stubIsend
  - stubIrecv
  - stubIflush
  - stubTest
  - stubCloseSend
  - stubCloseRecv
  - stubCloseListen
  - stubGetDeviceMr
  - stubIrecvConsumed
  - stubMakeVDevice
  - stubFinalize
  - stubSetNetAttr
  source_file: /src/nccl/src/transport/net_socket_stub.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nvlsCanConnect
  - nvlsSendFree
  - nvlsRecvFree
  - ncclNvlsGroupCreate
  - ncclNvlsGroupConnect
  - nvlsGroupUnbind
  - ncclNvlsDeregBuffer
  - nvlsGroupUnmapMem
  - ncclNvlsTreeSm100Tuning
  - ncclNvlsTuning
  - ncclNvlsInit
  - ncclNvlsTreeConnect
  - nvlsAllocateMem
  - ncclNvlsBufferSetup
  - ncclNvlsSetup
  - ncclNvlsFree
  - tryRegisterBuffer
  - nvlsRegisterBuffer
  - ncclNvlsLocalRegisterBuffer
  - cleanupNvls
  - ncclNvlsGraphRegisterBuffer
  - 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: 148
        line_start: 147
        source_file: /src/nccl/src/transport/nvls.cc
      type_or_value: (1 << 21)
    - item_type: preproc_def
      name: NVLS_NCHANNELS_SM90
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/nccl/src/transport/nvls.cc
      type_or_value: '16'
    - item_type: preproc_def
      name: NVLS_NCHANNELS_SM100
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/nccl/src/transport/nvls.cc
      type_or_value: '32'
    - item_type: preproc_def
      name: NVLS_NCHANNELS_SM100_NVL
      pos:
        line_end: 151
        line_start: 150
        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: 23
        line_start: 20
        source_file: /src/nccl/src/transport/nvls.cc
    - fields:
      - name: reg
        type: struct ncclReg
      - name: offset
        type: intptr_t
      - name: handleTypes
        type: int
      item_type: struct
      name: localRegData
      pos:
        line_end: 29
        line_start: 25
        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: 896
        line_start: 892
        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
  - 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
  - collnetHandleCmp
  - 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: 34
        line_start: 33
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '8'
    - item_type: preproc_def
      name: COLLNET_MAX_GROUPS
      pos:
        line_end: 35
        line_start: 34
        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: 37
        line_start: 36
        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: 38
        line_start: 37
        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: 39
        line_start: 38
        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: 40
        line_start: 39
        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: 41
        line_start: 40
        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: 42
        line_start: 41
        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: 44
        line_start: 43
        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: 45
        line_start: 44
        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: 46
        line_start: 45
        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: 47
        line_start: 46
        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: 24
        line_start: 22
        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: 30
        line_start: 27
        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: 80
        line_start: 76
        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: 92
        line_start: 82
        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: 97
        line_start: 94
        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: 118
        line_start: 99
        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: enum ncclTopoFlushType
      - 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: 140
        line_start: 120
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: netDev
        type: int
      - name: useGdr
        type: enum ncclTopoGdrMode
      - name: needFlush
        type: enum ncclTopoFlushType
      - name: '* collNet'
        type: struct ncclCollNetSharedRes
      item_type: struct
      name: setupReq
      pos:
        line_end: 163
        line_start: 158
        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: 244
        line_start: 240
        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: 350
        line_start: 346
        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: 1186
        line_start: 1183
        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: 1259
        line_start: 1255
        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: 1525
        line_start: 1522
        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: 17
        line_start: 14
        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
  - ncclNetSocketFinalize
  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: 205
        line_start: 199
        source_file: /src/nccl/src/transport/net_socket.cc
    preproc_defs:
    - item_type: preproc_def
      name: MAX_LINE_LEN
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/nccl/src/transport/net_socket.cc
      type_or_value: (2047)
    - item_type: preproc_def
      name: MAX_SOCKETS
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/nccl/src/transport/net_socket.cc
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_THREADS
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/nccl/src/transport/net_socket.cc
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_REQUESTS
      pos:
        line_end: 193
        line_start: 192
        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: 430
        line_start: 429
        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: 27
        line_start: 23
        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: 212
        line_start: 207
        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: 220
        line_start: 214
        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: 230
        line_start: 222
        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: 235
        line_start: 232
        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: 249
        line_start: 237
        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: 255
        line_start: 251
        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: threadMutex
        type: std::mutex
      - name: threadCond
        type: std::condition_variable
      item_type: struct
      name: ncclNetSocketThreadResources
      pos:
        line_end: 264
        line_start: 257
        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: 272
        line_start: 266
        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: std::thread
      - name: threadResources[MAX_THREADS]
        type: struct ncclNetSocketThreadResources
      item_type: struct
      name: ncclNetSocketComm
      pos:
        line_end: 286
        line_start: 274
        source_file: /src/nccl/src/transport/net_socket.cc
    typedefs: []
    union: []
- function_names:
  - stubInit
  - stubDevices
  - stubGetProperties
  - stubListen
  - stubConnect
  - stubAccept
  - stubRegMr
  - stubRegMrDmaBuf
  - stubDeregMr
  - stubIsend
  - stubIrecv
  - stubIflush
  - stubTest
  - stubCloseSend
  - stubCloseRecv
  - stubCloseListen
  - stubGetDeviceMr
  - stubIrecvConsumed
  - stubMakeVDevice
  - stubFinalize
  - stubSetNetAttr
  source_file: /src/nccl/src/transport/net_ib_stub.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    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
  - populateCommNetAttrs
  - setNetAttrs
  - printNetAttrs
  - setXferNetAttrs
  - 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
  - netHandleCmp
  - 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: 25
        line_start: 24
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_NET_MAP_DEVMEM
      pos:
        line_end: 26
        line_start: 25
        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: 27
        line_start: 26
        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: 28
        line_start: 27
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_NET_MAP_GDCMEM
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_NET_MAP_MEMS
      pos:
        line_end: 30
        line_start: 29
        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: 32
        line_start: 31
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        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: 35
        line_start: 34
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '0x1fffffff'
    - item_type: preproc_def
      name: NCCL_SHARED_STEPS
      pos:
        line_end: 641
        line_start: 640
        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: 71
        line_start: 64
        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: 85
        line_start: 73
        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: sameDevice
        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: 115
        line_start: 87
        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: enum ncclTopoFlushType
      - 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: sameDevice
        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: 149
        line_start: 117
        source_file: /src/nccl/src/transport/net.cc
    - fields:
      - name: buffer
        type: uintptr_t
      - name: size
        type: size_t
      - name: numSegments
        type: int
      item_type: struct
      name: netRegInfo
      pos:
        line_end: 156
        line_start: 151
        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: enum ncclTopoFlushType
      - name: channelId
        type: int
      - name: connIndex
        type: int
      - name: sameDevice
        type: int
      item_type: struct
      name: setupReq
      pos:
        line_end: 182
        line_start: 171
        source_file: /src/nccl/src/transport/net.cc
    - fields:
      - name: handle
        type: ncclNetHandle_t
      - name: netAttr
        type: ncclNetAttr_t
      item_type: struct
      name: netSendConnectArgs
      pos:
        line_end: 414
        line_start: 411
        source_file: /src/nccl/src/transport/net.cc
    - fields:
      - name: proxyRank
        type: int
      - name: netAttr
        type: ncclNetAttr_t
      item_type: struct
      name: netRecvConnectArgs
      pos:
        line_end: 419
        line_start: 416
        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: 1767
        line_start: 1763
        source_file: /src/nccl/src/transport/net.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
  - p2pDeregisterMemHandle
  - p2pSendProxyFree
  - p2pRecvProxyFree
  - p2pSendProxyProgress
  - ipcHandleMultiSegmentRegistration
  - ipcRegisterBuffer
  - ncclIpcLocalRegisterBuffer
  - cleanupIpc
  - ncclIpcGraphRegisterBuffer
  - ncclIpcDeregBuffer
  - p2pProxyRegister
  - p2pHandleCmp
  - p2pProxyDeregister
  - initCeOperation
  - ncclP2pUsesMemcpy
  source_file: /src/nccl/src/transport/p2p.cc
  types:
    enum:
    - enumerators:
      - name: P2P_DIRECT
      - name: P2P_CUMEM
      - name: P2P_IPC
      - name: P2P_INTERMEDIATE
      item_type: enum
      name: p2pType
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/nccl/src/transport/p2p.cc
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_P2P_MAX_PHYSICAL_SEGMENTS
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/nccl/src/transport/p2p.cc
      type_or_value: '8192'
    structs:
    - fields:
      - name: '* directPtr'
        type: void
      - name: size
        type: size_t
      - name: ipcDesc
        type: ncclIpcDesc
      item_type: struct
      name: ncclP2pBuff
      pos:
        line_end: 25
        line_start: 21
        source_file: /src/nccl/src/transport/p2p.cc
    - fields:
      - name: size
        type: size_t
      - name: refcount
        type: int
      - name: peerRank
        type: int
      item_type: struct
      name: ncclP2pRequest
      pos:
        line_end: 31
        line_start: 27
        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: 39
        line_start: 33
        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: 48
        line_start: 42
        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: 53
        line_start: 50
        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: 71
        line_start: 54
        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: 89
        line_start: 74
        source_file: /src/nccl/src/transport/p2p.cc
    - fields:
      - name: p2pBuff
        type: struct ncclP2pBuff
      item_type: struct
      name: p2pCuMemProxyInfo
      pos:
        line_end: 94
        line_start: 92
        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: 1166
        line_start: 1162
        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: 14
        line_start: 13
        source_file: /src/nccl/src/transport/shm.cc
      type_or_value: '128'
    - item_type: preproc_def
      name: SHM_HANDLE_TYPE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/transport/shm.cc
      type_or_value: ncclCuMemHandleType
    - item_type: preproc_def
      name: SHM_SEND_SIDE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/nccl/src/transport/shm.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: SHM_RECV_SIDE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/nccl/src/transport/shm.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: MAX_SHM_NAME_LEN
      pos:
        line_end: 100
        line_start: 99
        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: 19
        line_start: 16
        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: 25
        line_start: 21
        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: 33
        line_start: 27
        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: 41
        line_start: 35
        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: 57
        line_start: 43
        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: 62
        line_start: 59
        source_file: /src/nccl/src/transport/shm.cc
    typedefs: []
    union: []
- function_names:
  - ncclIbRecvCommGetQpForCts
  - ncclIbRequestRetrieveAsIndex
  source_file: /src/nccl/src/transport/net_ib/p2p.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_IB_FLUSH_REQ_WR_ID_OFFSET
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/nccl/src/transport/net_ib/p2p.h
      type_or_value: '0x1000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclIbRegMrDmaBufInternal2
  - ncclIbRegMrDmaBufInternal
  - ncclIbRegMrDmaBuf
  - ncclIbRegMr
  - ncclIbDeregMrInternal
  - ncclIbDeregMr
  source_file: /src/nccl/src/transport/net_ib/reg.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclGinIbGdrSupport
  - ncclGinIbGdrGpuSupport
  - ncclGinIbGdakiInit
  - ncclGinIbInitType
  - ncclGinIbInit
  - ncclGinIbFinalize
  - ncclGinIbAllGather
  - ncclGinIbAllToAll
  - ncclGinIbP2PBarrier
  - ncclGinIbConnect
  - ncclGinIbCloseColl
  - ncclGinIbGdakiInit
  - ncclGinIbGdakiDevices
  - ncclGinIbGdakiGetProperties
  - ncclGinIbGdakiListen
  - ncclGinIbGdakiConnect
  - ncclGinIbGdakiCreateContext
  - ncclGinIbGdakiRegMrSym
  - ncclGinIbGdakiDeregMrSym
  - ncclGinIbGdakiDestroyContext
  - ncclGinIbGdakiProgress
  - ncclGinIbGdakiQueryLastError
  - ncclGinIbProxyInit
  - ncclGinIbProxyGetProperties
  - ncclGinIbProxyConnect
  - ncclGinIbProxyCreateContext
  - ncclGinIbProxyDestroyContext
  - ncclGinIbProxyRegMrSymDmaBuf
  - ncclGinIbProxyRegMrSym
  - ncclGinIbProxyDeregMrSym
  - ncclGinIbProxyCloseColl
  - ncclGinIbProxyIPut
  - ncclGinIbProxyIGet
  - ncclGinIbProxyIPutSignal
  - ncclGinIbProxyTest
  - ncclGinIbProxyIFlush
  source_file: /src/nccl/src/transport/net_ib/gin.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*mrHandle'
        type: struct ncclIbMrHandle
      - name: '*base_vas'
        type: uintptr_t
      - name: '*rkeys'
        type: uint32_t
      item_type: struct
      name: ncclIbGinProxyMrHandle
      pos:
        line_end: 373
        line_start: 369
        source_file: /src/nccl/src/transport/net_ib/gin.cc
    - fields:
      - name: '**        fullRecvComm'
        type: void
      - name: '**        fullSendComm'
        type: void
      - name: rank
        type: int
      - name: nContexts
        type: int
      item_type: struct
      name: ncclGinIbProxyCtx
      pos:
        line_end: 402
        line_start: 397
        source_file: /src/nccl/src/transport/net_ib/gin.cc
    typedefs: []
    union: []
- function_names:
  - ncclIbMatchVfPath
  - ncclIbCompareDevs
  - ncclIbGetPciPath
  - ncclIbGetRealPort
  - firstBitSet
  - ncclIbWidth
  - ncclIbSpeed
  - ncclIbRelaxedOrderingCapable
  - ncclMlx5dvDmaBufCapable
  - ncclIbQueryOooRqSize
  - ncclIbMakeVDeviceInternal
  - ncclIbMakeVDevice
  - ncclIbSetNetAttr
  - ncclIbFinalizeDevices
  - ncclIbInitDevices
  - ncclIbInit
  - ncclIbDevices
  - ncclIbGetPhysProperties
  - ncclIbGetProperties
  - ncclIbFinalize
  source_file: /src/nccl/src/transport/net_ib/init.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclIbPortRecoveryQpsToError
  - ncclIbPortRecoveryPostRecvWorkRequest
  - ncclIbPortRecoveryDrainCqAndPostReceiveWRs
  - ncclIbPortRecoveryContextInit
  - ncclIbPortRecoveryContextDestroy
  - ncclIbPortRecoveryDevInit
  - ncclIbPortRecoveryDevDestroy
  - ncclIbPortRecoverySenderQpsCreate
  - ncclIbPortRecoverySenderQpsToRts
  - ncclIbPortRecoveryReceiverQpsCreateToRts
  - ncclIbPortRecoveryQpsDestroy
  - ncclIbPortRecoveryQpsRestore
  - ncclIbPortRecoveryHandleCompletionReceiver
  - ncclIbPortRecoveryHandleCompletionSender
  - ncclIbPortRecoveryPollCq
  - ncclIbPortRecoveryPostAliveMessages
  - ncclIbPortRecoveryPostAck
  - ncclIbPortRecoveryProgressAliveMessagesSender
  - ncclIbPortRecoveryProgressAliveMessagesReceiver
  - ncclIbPortRecoveryProgressAliveMessages
  - ncclIbPortRecoveryProgressAckSender
  - ncclIbPortRecoveryProgressAckReceiver
  - ncclIbPortRecoveryProgressAck
  - ncclIbPortRecoveryContextProgress
  - ncclIbPortRecoveryHandleCloseRequests
  - ncclIbPortRecoveryAsyncThreadMain
  - ncclIbPortRecoveryInit
  - ncclIbPortRecoveryClose
  - ncclIbPortRecoveryThreadStart
  - ncclIbPortRecoveryThreadStop
  - ncclIbPortRecoveryHandleFailure
  source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
  types:
    enum:
    - enumerators:
      - name: ncclIbPortRecoveryStateInit
      - name: ncclIbPortRecoveryStateAck
      - name: ncclIbPortRecoveryStateAliveMessages
      - name: ncclIbPortRecoveryStateFailed
      - name: ncclIbPortRecoveryStateSuccess
      item_type: enum
      name: ncclIbPortRecoveryState
      pos:
        line_end: 110
        line_start: 76
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - enumerators:
      - name: ncclIbPortRecoveryStateProgressResultInProgress
      - name: ncclIbPortRecoveryStateProgressResultFailed
      - name: ncclIbPortRecoveryStateProgressResultGoToPrevState
      - name: ncclIbPortRecoveryStateProgressResultGoToNextState
      item_type: enum
      name: ncclIbPortRecoveryStateProgressResult
      pos:
        line_end: 673
        line_start: 668
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    preproc_defs:
    - item_type: preproc_def
      name: MSEC_TO_NSEC
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
      type_or_value: 1000000ULL
    - item_type: preproc_def
      name: NCCL_IB_RESILIENCY_PORT_RECOVERY_ALIVE_MSG_SEQUENCE_SIZE_MIN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_IB_RESILIENCY_PORT_RECOVERY_ALIVE_MSG_BATCH_SIZE_MAX
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
      type_or_value: '10'
    - item_type: preproc_def
      name: NCCL_IB_RESILIENCY_PORT_RECOVERY_CQ_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
      type_or_value: (NCCL_IB_RESILIENCY_PORT_RECOVERY_ALIVE_MSG_BATCH_SIZE_MAX*2)
    - item_type: preproc_def
      name: NCCL_IB_PORT_RECOVERY_WR_ID
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
      type_or_value: (0xAAAA)
    - item_type: preproc_def
      name: NCCL_IB_RESILIENCY_PORT_RECOVERY_ACK_MSG_ID
      pos:
        line_end: 544
        line_start: 543
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
      type_or_value: (0x1234)
    structs:
    - fields:
      - name: '* resCtx'
        type: struct ncclIbResiliency
      - name: completed
        type: bool
      item_type: struct
      name: ncclIbPortRecoveryCloseRequest
      pos:
        line_end: 69
        line_start: 66
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    - fields:
      - name: '* resCtx'
        type: struct ncclIbResiliency
      - name: devIndex
        type: int
      - name: state
        type: enum ncclIbPortRecoveryState
      - name: '* recoveryCq'
        type: struct ibv_cq
      - name: timeInit
        type: uint64_t
      - name: nFailedAttempts
        type: int
      - name: timeLastMsg
        type: uint64_t
      - name: aliveMsgNextId
        type: uint32_t
      - name: ackReceived
        type: bool
      - name: ackPosted
        type: bool
      - name: ackCompleted
        type: bool
      item_type: struct
      name: ncclIbPortRecoveryContext
      pos:
        line_end: 147
        line_start: 112
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.cc
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/connect.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* qpContext'
        type: void
      - name: type
        type: enum ibv_qp_type
      - name: oooRq
        type: bool
      - name: '* cq'
        type: struct ibv_cq
      - name: '* pd'
        type: struct ibv_pd
      - name: maxRecvWorkRequest
        type: uint32_t
      - name: maxSendWorkRequest
        type: uint32_t
      item_type: struct
      name: ncclIbQpCreateAttr
      pos:
        line_end: 21
        line_start: 13
        source_file: /src/nccl/src/transport/net_ib/connect.h
    - 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: 35
        line_start: 24
        source_file: /src/nccl/src/transport/net_ib/connect.h
    - fields:
      - name: probingQpsInfo[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbQpInfo
      - name: portRecoveryQpsInfo[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbQpInfo
      item_type: struct
      name: ncclIbResiliencyInfo
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/nccl/src/transport/net_ib/connect.h
    - fields:
      - name: qpInfo[NCCL_IB_MAX_QPS]
        type: struct ncclIbQpInfo
      - name: resiliencyInfo
        type: struct ncclIbResiliencyInfo
      - name: devs[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbDevInfo
      - name: devName[MAX_MERGED_DEV_NAME]
        type: char
      - name: addr
        type: uint64_t
      - name: ndevs
        type: int
      - name: tc
        type: int
      - name: sl
        type: int
      item_type: struct
      name: ncclIbConnectionMetadata
      pos:
        line_end: 66
        line_start: 50
        source_file: /src/nccl/src/transport/net_ib/connect.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/p2p_resiliency_recovery.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclIbStatsCheckFatalCount
  - ncclIbGetNetCommDevBase
  - ncclIbBaseCommInit
  - ncclIbRecvCommInit
  - ncclIbSendCommInit
  - ncclIbAsyncThreadMain
  source_file: /src/nccl/src/transport/net_ib/common.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCL_IB_LLSTR
  - ncclIbCommBaseGetQpByIndex
  - ncclIbCommBaseGetQpForRequest
  - ncclIbCommBaseGetQpByQpNum
  - ncclIbCommBaseGetNqpsPerRequest
  - ncclIbPostRecvWorkRequest
  - ncclIbStatsInit
  - ncclIbStatsFatalError
  - ncclIbQpFatalError
  - ncclIbCqFatalError
  - ncclIbDevFatalError
  source_file: /src/nccl/src/transport/net_ib/common.h
  types:
    enum:
    - enumerators:
      - name: BY_INDEX
        value: '0'
      - name: BY_ID
        value: '1'
      item_type: enum
      name: ncclIbRequestMatchingScheme
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/nccl/src/transport/net_ib/common.h
    - 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: 73
        line_start: 69
        source_file: /src/nccl/src/transport/net_ib/common.h
    preproc_defs:
    - item_type: preproc_def
      name: ENABLE_TIMER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MAXSUFFIXSIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAXNAMESIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: (64 + MAXSUFFIXSIZE)
    - item_type: preproc_def
      name: NCCL_IB_MAX_DEVS_PER_NIC
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: NCCL_NET_MAX_DEVS_PER_NIC
    - item_type: preproc_def
      name: MAX_MERGED_DEV_NAME
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/nccl/src/transport/net_ib/common.h
      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: 107
        line_start: 106
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_IB_VDEVS
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: MAX_IB_DEVS*8
    - item_type: preproc_def
      name: MAX_QPS_PER_REQ
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_NET_IB_MAX_RECVS
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_NET_IB_REQ_UNUSED
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_NET_IB_REQ_SEND
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_NET_IB_REQ_RECV
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_NET_IB_REQ_FLUSH
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_NET_IB_REQ_GIN_IPUT
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_NET_IB_REQ_GIN_IGET
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NCCL_IB_MAX_QPS
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: '128'
    - item_type: preproc_def
      name: NET_IB_MAX_REQUESTS
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: (NCCL_NET_MAX_REQUESTS*NCCL_NET_IB_MAX_RECVS)
    - item_type: preproc_def
      name: NCCL_IB_RECV_WR_ID_DUMMY
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/nccl/src/transport/net_ib/common.h
      type_or_value: UINT64_MAX
    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: 49
        line_start: 44
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: '*slots'
        type: struct ncclIbMr
      - name: capacity
        type: int
      item_type: struct
      name: ncclIbMrCache
      pos:
        line_end: 54
        line_start: 51
        source_file: /src/nccl/src/transport/net_ib/common.h
    - 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: 63
        line_start: 59
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: fatalErrorCount
        type: int
      item_type: struct
      name: ncclIbStats
      pos:
        line_end: 67
        line_start: 65
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: mutex
        type: std::mutex
      - 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: fullPciPath[PATH_MAX]
        type: char
      - name: '* pciPath'
        type: char
      - name: realPort
        type: int
      - name: maxQp
        type: int
      - name: latency
        type: float
      - name: mrCache
        type: struct ncclIbMrCache
      - name: ar
        type: int
      - name: oooRqSize
        type: uint32_t
      - 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: 104
        line_start: 76
        source_file: /src/nccl/src/transport/net_ib/common.h
    - 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: rkey
        type: uint32_t
      - name: remoteGid
        type: union ibv_gid
      item_type: struct
      name: ncclIbDevInfo
      pos:
        line_end: 136
        line_start: 115
        source_file: /src/nccl/src/transport/net_ib/common.h
    - 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: 143
        line_start: 139
        source_file: /src/nccl/src/transport/net_ib/common.h
    - 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: 152
        line_start: 146
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: sizes[NCCL_NET_IB_MAX_RECVS]
        type: int
      - name: completions[NCCL_IB_MAX_QPS]
        type: bool
      item_type: struct
      name: ncclIbRequestCompletionRecord
      pos:
        line_end: 183
        line_start: 169
        source_file: /src/nccl/src/transport/net_ib/common.h
    - 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: id
        type: uint64_t
      - name: nreqs
        type: int
      - name: '* ginProxyCtx'
        type: void
      item_type: struct
      name: ncclIbRequest
      pos:
        line_end: 228
        line_start: 185
        source_file: /src/nccl/src/transport/net_ib/common.h
    - 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: 236
        line_start: 230
        source_file: /src/nccl/src/transport/net_ib/common.h
    - 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
      item_type: struct
      name: ncclIbSendFifo
      pos:
        line_end: 245
        line_start: 238
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: state
        type: ibv_qp_state
      - name: pkeyIndex
        type: int
      - name: portNum
        type: uint8_t
      - name: qpAccessFlags
        type: int
      item_type: struct
      name: ncclIbQpInitAttr
      pos:
        line_end: 252
        line_start: 247
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: mtu
        type: enum ibv_mtu
      - name: linkLayer
        type: uint8_t
      - name: tc
        type: uint8_t
      - name: sl
        type: int
      - name: remoteQpNum
        type: uint32_t
      - name: remoteLid
        type: uint32_t
      - name: remoteGid
        type: union ibv_gid
      - name: localIbPort
        type: uint8_t
      - name: localGid
        type: union ibv_gid
      - name: localGidIndex
        type: int32_t
      item_type: struct
      name: ncclIbQpRtrAttr
      pos:
        line_end: 267
        line_start: 254
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: timeout
        type: int
      - name: retryCnt
        type: int
      item_type: struct
      name: ncclIbQpRtsAttr
      pos:
        line_end: 272
        line_start: 269
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: '* qp'
        type: struct ibv_qp
      - name: devIndex
        type: int
      - name: ece
        type: struct ibv_ece
      - name: eceSupported
        type: int
      - name: initAttr
        type: struct ncclIbQpInitAttr
      - name: rtrAttr
        type: struct ncclIbQpRtrAttr
      - name: rtsAttr
        type: struct ncclIbQpRtsAttr
      - name: remDevIdx
        type: int
      item_type: struct
      name: ncclIbQp
      pos:
        line_end: 293
        line_start: 274
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: elems[NET_IB_MAX_REQUESTS][NCCL_NET_IB_MAX_RECVS]
        type: int
      - name: addr
        type: uint64_t
      - name: rkeys[NCCL_IB_MAX_DEVS_PER_NIC]
        type: uint32_t
      item_type: struct
      name: ncclIbRemCompletionsRecords
      pos:
        line_end: 312
        line_start: 300
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: base
        type: struct ncclIbNetCommDevBase
      - name: '* ctsFifoMr'
        type: struct ibv_mr
      - name: '* putSignalScratchpadMr'
        type: struct ibv_mr
      - name: '* cmplsRecordsMr'
        type: struct ibv_mr
      - name: sge
        type: struct ibv_sge
      item_type: struct
      name: ncclIbSendCommDev
      pos:
        line_end: 321
        line_start: 315
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: '* mrs[NCCL_IB_MAX_DEVS_PER_NIC]'
        type: ibv_mr
      item_type: struct
      name: ncclIbMrHandle
      pos:
        line_end: 327
        line_start: 325
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: vProps
        type: ncclNetVDeviceProps_t
      - name: isSend
        type: bool
      - name: reqs[NET_IB_MAX_REQUESTS]
        type: struct ncclIbRequest
      - name: qps[NCCL_IB_MAX_QPS]
        type: struct ncclIbQp
      - name: '* activeQps[NCCL_IB_MAX_QPS]'
        type: struct ncclIbQp
      - name: fifoHead
        type: uint64_t
      - name: nqps
        type: int
      - name: splitDataOnQps
        type: int
      - name: sock
        type: struct ncclSocket
      - name: ready
        type: int
      - name: nRemDevs
        type: int
      - name: remOooRq
        type: bool
      - name: localOooRq
        type: bool
      - name: recvMatchingScheme
        type: int
      - name: nDataQps
        type: int
      - name: remDevs[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbDevInfo
      - name: stats
        type: struct ncclIbStats
      - name: '* resiliency'
        type: struct ncclIbResiliency
      item_type: struct
      name: ncclIbNetCommBase
      pos:
        line_end: 355
        line_start: 332
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: base
        type: struct ncclIbNetCommBase
      - name: ctsFifo[NET_IB_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: '* sendReqs[NET_IB_MAX_REQUESTS][NCCL_NET_IB_MAX_RECVS]'
        type: struct ncclIbRequest
      - name: sendReqsCnt[NET_IB_MAX_REQUESTS]
        type: int
      - name: remCmplsRecords
        type: struct ncclIbRemCompletionsRecords
      - name: ar
        type: int
      - name: putSignalScratchpad
        type: uint64_t
      item_type: struct
      name: ncclIbSendComm
      pos:
        line_end: 441
        line_start: 416
        source_file: /src/nccl/src/transport/net_ib/common.h
    - 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: 455
        line_start: 451
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: elems[NET_IB_MAX_REQUESTS][NCCL_NET_IB_MAX_RECVS]
        type: struct ncclIbSendFifo
      - name: addr
        type: uint64_t
      - name: rkeys[NCCL_IB_MAX_DEVS_PER_NIC]
        type: uint32_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: ncclIbRemCtsFifo
      pos:
        line_end: 471
        line_start: 459
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: base
        type: struct ncclIbNetCommDevBase
      - name: gpuFlush
        type: struct ncclIbGpuFlush
      - name: '* ctsFifoMr'
        type: struct ibv_mr
      - name: '* cmplsRecordsMr'
        type: struct ibv_mr
      - name: sge
        type: struct ibv_sge
      item_type: struct
      name: ncclIbRecvCommDev
      pos:
        line_end: 490
        line_start: 473
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: base
        type: struct ncclIbNetCommBase
      - name: devs[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbRecvCommDev
      - name: '* recvReqs[NET_IB_MAX_REQUESTS]'
        type: struct ncclIbRequest
      - name: remCtsFifo
        type: struct ncclIbRemCtsFifo
      - name: cmplsRecords[NET_IB_MAX_REQUESTS]
        type: struct ncclIbRequestCompletionRecord
      - name: gpuFlushHostMem
        type: int
      - name: flushEnabled
        type: int
      - name: prepostReceiveWorkRequests
        type: bool
      - name: ibRecvWorkRequest
        type: struct ibv_recv_wr
      item_type: struct
      name: ncclIbRecvComm
      pos:
        line_end: 514
        line_start: 494
        source_file: /src/nccl/src/transport/net_ib/common.h
    - fields:
      - name: dev
        type: int
      - name: sock
        type: struct ncclSocket
      - name: '* stage'
        type: struct ncclIbCommStage
      item_type: struct
      name: ncclIbListenComm
      pos:
        line_end: 525
        line_start: 521
        source_file: /src/nccl/src/transport/net_ib/common.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gin.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*         ctx'
        type: void
      - name: rank
        type: int
      - name: nranks
        type: int
      - name: '*         recvComm'
        type: void
      - name: '*         sendComm'
        type: void
      - name: dev
        type: int
      - name: ib
        type: "struct {\n    struct ibv_context* context;\n    struct ibv_pd *pd;\n
          \ }"
      - name: (*getProperties)(int dev, void *props)
        type: ncclResult_t
      - name: (*allGather)(struct ncclGinIbCollComm *cComm, void *srcBuf, void *recvBuf,
          size_t len)
        type: ncclResult_t
      - name: (*allToAll)(struct ncclGinIbCollComm *cComm, void *srcBuf, void *recvBuf,
          size_t len)
        type: ncclResult_t
      - name: (*getGidIndex)(struct ibv_context *context, uint8_t portNum, struct
          ibv_port_attr* portAttr, int *gidIndex)
        type: ncclResult_t
      item_type: struct
      name: ncclGinIbCollComm
      pos:
        line_end: 29
        line_start: 14
        source_file: /src/nccl/src/transport/net_ib/gin.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.h
  types:
    enum:
    - enumerators:
      - name: ncclIbResiliencyDevStateOk
        value: '0'
      - name: ncclIbResiliencyDevStateRecovered
      - name: ncclIbResiliencyDevStateError
      - name: ncclIbResiliencyDevStateRecoveryInProgress
      - name: ncclIbResiliencyDevStateRecoveryFailed
      - name: ncclIbResiliencyDevStateErrorPermanent
      item_type: enum
      name: ncclIbResiliencyDevState
      pos:
        line_end: 26
        line_start: 13
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.h
    - enumerators:
      - name: ncclIbResiliencyRequestStatePending
        value: '0'
      - name: ncclIbResiliencyRequestStateProbePosted
      - name: ncclIbResiliencyRequestStateProbeCompleted
      item_type: enum
      name: ncclIbResiliencyRequestSendState
      pos:
        line_end: 91
        line_start: 82
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.h
    preproc_defs: []
    structs:
    - fields:
      - name: state
        type: std::atomic<ncclIbResiliencyDevState>
      - name: '* probingCq'
        type: struct ibv_cq
      - name: nOutstandingProbes
        type: int
      - name: '* probingResultMr'
        type: struct ibv_mr
      - name: '* portRecoveryCq'
        type: struct ibv_cq
      item_type: struct
      name: ncclIbResiliencyDev
      pos:
        line_end: 43
        line_start: 28
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.h
    - fields:
      - name: '* baseComm'
        type: struct ncclIbNetCommBase
      - name: recoveryEnabled
        type: bool
      - name: devs[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbResiliencyDev
      - name: ndevs
        type: int
      - name: probingQps[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbQp
      - name: nProbingQps
        type: int
      - name: inProgress
        type: bool
      - name: outstandingRequests
        type: int
      - name: portRecoveryQps[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbQp
      - name: nPortRecoveryQps
        type: int
      - name: outstandingRecovery
        type: int
      item_type: struct
      name: ncclIbResiliency
      pos:
        line_end: 80
        line_start: 45
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.h
    - fields:
      - name: devIndex
        type: int
      - name: time
        type: uint64_t
      item_type: struct
      name: ncclIbResiliencyErrorInfo
      pos:
        line_end: 99
        line_start: 93
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.h
    - fields:
      - name: state
        type: enum ncclIbResiliencyRequestSendState
      - name: '* request'
        type: struct ncclIbRequest
      - name: errorInfo
        type: struct ncclIbResiliencyErrorInfo
      - name: failedAttempts
        type: int
      - name: id
        type: uint64_t
      item_type: struct
      name: ncclIbResiliencyRequestSend
      pos:
        line_end: 114
        line_start: 103
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.h
    - fields:
      - name: addr
        type: uint64_t
      - name: rkey
        type: uint32_t
      item_type: struct
      name: ncclIbResiliencyRemoteCompletionRecordsInfo
      pos:
        line_end: 121
        line_start: 116
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.h
    - fields:
      - name: base
        type: struct ncclIbResiliency
      - name: failedRequests[NET_IB_MAX_REQUESTS]
        type: struct ncclIbResiliencyRequestSend
      - name: probingResults[NET_IB_MAX_REQUESTS][NCCL_IB_MAX_QPS]
        type: bool
      - name: remCmplRecordsInfo[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbResiliencyRemoteCompletionRecordsInfo
      item_type: struct
      name: ncclIbResiliencySend
      pos:
        line_end: 151
        line_start: 123
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.h
    typedefs: []
    union: []
- function_names:
  - ncclIbInitCommDevBase
  - ncclIbDestroyBase
  - ncclIbExtractLocalSubnetPrefix
  - ncclIbExtractFlid
  - envIbAddrFamily
  - envIbAddrRange
  - getGidAddrFamily
  - matchGidAddrPrefix
  - NETMASK
  - configuredGid
  - linkLocalGid
  - validGid
  - ncclIbRoceGetVersionNum
  - ncclUpdateGidIndex
  - ncclIbGetGidIndex
  - ncclIbQpInit
  - ncclIbCreateQpMlx5
  - ncclIbQpCreate
  - ncclIbQpRtr
  - ncclIbQpRts
  - ncclIbQpReset
  - ncclIbQpError
  - ncclIbListen
  - ncclIbSenderQpsCreate
  - ncclIbSenderQpsToRts
  - ncclIbGetTrafficClass
  - ncclIbSetTrafficClass
  - ncclIbConnect
  - ncclIbCheckVProps
  - ncclIbReceiverQpsCreateToRts
  - ncclIbPostReceiveWorkRequestsOnQp
  - ncclIbReceiverPrePostReceiveWorkRequests
  - ncclIbAccept
  - ncclIbCloseSend
  - ncclIbCloseRecv
  - ncclIbCloseListen
  source_file: /src/nccl/src/transport/net_ib/connect.cc
  types:
    enum:
    - enumerators:
      - name: ncclIbCommStateStart
        value: '0'
      - name: ncclIbCommStateAccept
        value: '3'
      - name: ncclIbCommStateConnect
        value: '1'
      - name: ncclIbCommStateRecv
        value: '5'
      - name: ncclIbCommStateSend
        value: '4'
      - 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: 40
        line_start: 29
        source_file: /src/nccl/src/transport/net_ib/connect.cc
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_IB_SL_DEFAULT
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/nccl/src/transport/net_ib/connect.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_IB_TC_DEFAULT
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/nccl/src/transport/net_ib/connect.cc
      type_or_value: '0'
    structs:
    - fields:
      - name: oooRq
        type: bool
      item_type: struct
      name: ncclIbDevExtraProps
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/nccl/src/transport/net_ib/connect.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: 47
        line_start: 42
        source_file: /src/nccl/src/transport/net_ib/connect.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: 53
        line_start: 49
        source_file: /src/nccl/src/transport/net_ib/connect.cc
    typedefs: []
    union: []
- function_names:
  - ncclIbResiliencyCheckErrorNotFatal
  - ncclIbResiliencyReplaceQps
  - ncclIbResiliencySendRequestInit
  - ncclIbResiliencySendRequestFree
  - ncclIbResiliencyRepostRequest
  - ncclIbResiliencyHandleCompletionErrorReceiver
  - ncclIbResiliencyHandleCompletionErrorSender
  - ncclIbResiliencyHandleDeviceFailure
  - ncclIbResiliencyHandleProbeCompleted
  - ncclIbResiliencyProbePost
  - ncclIbResiliencyProbeHandleCompletionEvent
  - ncclIbResiliencyProbeProgress
  - ncclIbResiliencyInit
  - ncclIbResiliencyDestroy
  - ncclIbResiliencyDevInit
  - ncclIbResiliencyDevDestroy
  - ncclIbResiliencyDataCqSizeGet
  - ncclIbResiliencyDataRqSizeGet
  - ncclIbResiliencyDeviceNumSet
  - ncclIbResiliencySenderCreateQps
  - ncclIbResiliencySenderQpsToRts
  - ncclIbResiliencyReceiverQpsCreateToRts
  - ncclIbResiliencyClose
  - ncclIbResiliencyRemoteCompletionRecordsSet
  - ncclIbResiliencyRequestIsComplete
  - ncclIbResiliencyHandleCompletionError
  - ncclIbResiliencyActiveQpsRestore
  - ncclIbResiliencyProgress
  source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSEC_TO_NSEC
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
      type_or_value: 1000000ULL
    - item_type: preproc_def
      name: MAX_PROBE_WC
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/nccl/src/transport/net_ib/p2p_resiliency.cc
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclIbGetRequest
  - ncclIbFreeRequest
  - ncclIbAddEvent
  - ncclIbPrintWr
  - ncclIbMultiSend
  - ncclIbIsend
  - ncclIbPostFifo
  - ncclIbIrecv
  - ncclIbIflush
  - HCA_NAME
  - getReqQpIndex
  - ncclIbRequestRetrieveFromCompletion
  - ncclIbRequestIsComplete
  - ncclIbRequestComplete
  - ncclIbLogCompletionWithError
  - ncclIbCompletionEventProcess
  - ncclIbTest
  source_file: /src/nccl/src/transport/net_ib/p2p.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IB_WRITE_CHUNK_ALIGNMENT
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/nccl/src/transport/net_ib/p2p.cc
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - KNL_MODULE_LOADED
  - ibGdrSupportInitOnce
  - ncclIbGdrSupport
  - ibPeerMemSupportInitOnce
  - ncclIbPeerMemSupport
  - ibDmaBufSupportInitOnce
  - ncclIbDmaBufSupport
  source_file: /src/nccl/src/transport/net_ib/gdr.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DOCACHECK
  - DOCACHECKGOTO
  - gdakiRelaxedOrderingEnabled
  - gdakiRegMr
  - GdakiHostGPUMemHandle::allocate
  - GdakiHostGPUMemHandle::deallocate
  - GdakiHostGPUMemHandle::copy_h_to_d
  - GdakiHostGPUMemHandle::copy_d_to_h
  - GdakiHostGPUMemHandle::GdakiHostGPUMemHandle
  - ~GdakiHostGPUMemHandle()
  - GdakiGlobalGPUBufferTable::allocate
  - GdakiGlobalGPUBufferTable::deallocate
  - GdakiGlobalGPUBufferTable::register_mr
  - GdakiGlobalGPUBufferTable::deregister_mr
  - GdakiGlobalGPUBufferTable::exchange_info
  - GdakiGlobalGPUBufferTable::allocate_elements
  - GdakiGlobalGPUBufferTable::free_elements
  - GdakiGlobalGPUBufferTable::get_rkeys_d
  - GdakiGlobalGPUBufferTable::GdakiGlobalGPUBufferTable
  - ~GdakiGlobalGPUBufferTable()
  - gdaki_round_up
  - gdakiFillExchInfo
  - gdakiCreateVerbsAh
  - gdakiConnectQp
  - ncclGinGdakiCreateContext
  - ncclGinGdakiDestroyContext
  - ncclGinGdakiRegMrSym
  - ncclGinGdakiDeregMrSym
  - ncclGinGdakiProgress
  - ncclGinGdakiQueryLastError
  source_file: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VERBS_TEST_DBR_SIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
      type_or_value: (8)
    - item_type: preproc_def
      name: MAX_PCI_ADDRESS_LEN
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
      type_or_value: 32U
    structs:
    - fields:
      - name: type
        type: int
      - name: '*mr'
        type: struct ibv_mr
      - name: '*gdaki_mhandle_hd_mhandle'
        type: GdakiHostGPUMemHandle<struct ncclGinGdakiMemHandle>
      - name: '*rkeys_hd_mhandle'
        type: GdakiHostGPUMemHandle<uint32_t>
      item_type: struct
      name: gdaki_mem_handle
      pos:
        line_end: 306
        line_start: 301
        source_file: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    - fields:
      - name: lid
        type: int
      - name: qpn
        type: int
      - name: gid
        type: union ibv_gid
      - name: vgid
        type: struct doca_verbs_gid
      - name: gid_index
        type: int
      item_type: struct
      name: gdaki_exch_info
      pos:
        line_end: 314
        line_start: 308
        source_file: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    - fields:
      - name: cuda_id
        type: int
      - name: '*gdev'
        type: struct doca_gpu
      - name: '*ib_dev'
        type: struct ibv_device
      - name: '*ah'
        type: struct doca_verbs_ah_attr
      - name: ib_dev_attr
        type: struct ibv_device_attr
      - name: gid
        type: struct doca_verbs_gid
      - name: rgid
        type: union ibv_gid
      - name: port_attr
        type: struct ibv_port_attr
      - name: port_num
        type: uint8_t
      - name: gid_index
        type: int
      - name: qp_rq_size
        type: uint32_t
      - name: qp_sq_size
        type: uint32_t
      - name: '**gqp_groups'
        type: struct doca_gpu_verbs_qp_group_hl
      - name: '**gqps'
        type: struct doca_gpu_verbs_qp_hl
      - name: '**companion_gqps'
        type: struct doca_gpu_verbs_qp_hl
      - name: '*counters_table'
        type: GdakiGlobalGPUBufferTable<uint64_t>
      - name: '*signals_table'
        type: GdakiGlobalGPUBufferTable<uint64_t>
      - name: '*gin_gdaki_gpu_ctx_hd_mhandle'
        type: GdakiHostGPUMemHandle<struct ncclGinGdakiGPUContext>
      - name: sink_buffer
        type: "struct {\n    void *addr;\n    struct ibv_mr *mr;\n    CUmemGenericAllocationHandle
          mhandle;\n  }"
      - name: last_error_query_time
        type: uint64_t
      - name: '*collComm'
        type: struct ncclGinIbCollComm
      - name: '*devHandle'
        type: ncclNetDeviceHandle_t
      - name: nContexts
        type: int
      item_type: struct
      name: gdaki_context
      pos:
        line_end: 348
        line_start: 316
        source_file: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.cc
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/gin_host_gdaki.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - doca_verbs_cq::doca_verbs_cq
  - doca_verbs_cq::~doca_verbs_cq()
  - doca_verbs_cq::create_cq_obj
  - doca_verbs_cq::create
  - doca_verbs_cq::destroy
  - doca_verbs_cq_attr_create
  - doca_verbs_cq_attr_destroy
  - doca_verbs_cq_attr_set_cq_size
  - doca_verbs_cq_attr_set_cq_context
  - doca_verbs_cq_attr_set_external_umem
  - doca_verbs_cq_attr_set_external_dbr_umem
  - doca_verbs_cq_attr_set_external_uar
  - doca_verbs_cq_attr_set_cq_overrun
  - doca_verbs_cq_attr_set_cq_collapsed
  - doca_verbs_cq_create
  - doca_verbs_cq_destroy
  - doca_verbs_cq_get_wq
  - doca_verbs_cq_get_dbr_addr
  - doca_verbs_cq_get_cqn
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOCA_VERBS_CQE_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.cpp
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_uar_id
  - get_reg_addr
  - get_dbr_less_addr
  - get_uar_mtype
  - doca_verbs_uar
  - '&operator=(doca_verbs_uar const &)'
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: destroy() noexcept
        type: doca_error_t
      - name: create()
        type: void
      - name: '*m_uar_obj'
        type: struct mlx5dv_devx_uar
      - name: '*m_ibv_ctx'
        type: struct ibv_context
      - name: m_allocation_type
        type: enum doca_verbs_uar_allocation_type
      - name: m_uar_id
        type: uint32_t
      - name: '*m_reg_addr'
        type: void
      - name: '*m_dbr_less_addr'
        type: void
      item_type: struct
      name: doca_verbs_uar
      pos:
        line_end: 116
        line_start: 42
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.hpp
    typedefs: []
    union: []
- function_names:
  - get_umem_id
  - get_umem_size
  - get_umem_address
  - doca_verbs_umem
  - '&operator=(doca_verbs_umem const &)'
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: destroy() noexcept
        type: doca_error_t
      - name: create()
        type: void
      - name: '*m_umem_obj'
        type: struct mlx5dv_devx_umem
      - name: '*m_ibv_ctx'
        type: struct ibv_context
      - name: '*m_address'
        type: void
      - name: m_size
        type: size_t
      - name: m_access_flags
        type: uint32_t
      - name: m_umem_id
        type: uint32_t
      - name: m_dmabuf_fd
        type: int
      - name: m_dmabuf_offset
        type: size_t
      item_type: struct
      name: doca_verbs_umem
      pos:
        line_end: 117
        line_start: 42
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.hpp
    typedefs: []
    union: []
- function_names:
  - doca_verbs_wrapper_init_once
  - doca_verbs_wrapper_init_dlopen
  - doca_verbs_wrapper_mlx5dv_init_obj
  - doca_verbs_wrapper_mlx5dv_devx_obj_create
  - doca_verbs_wrapper_mlx5dv_devx_obj_destroy
  - doca_verbs_wrapper_mlx5dv_devx_obj_query
  - doca_verbs_wrapper_mlx5dv_devx_obj_modify
  - doca_verbs_wrapper_mlx5dv_devx_general_cmd
  - doca_verbs_wrapper_mlx5dv_devx_query_eqn
  - doca_verbs_wrapper_mlx5dv_devx_umem_reg
  - doca_verbs_wrapper_mlx5dv_devx_umem_reg_ex
  - doca_verbs_wrapper_mlx5dv_devx_umem_dereg
  - doca_verbs_wrapper_mlx5dv_devx_alloc_uar
  - doca_verbs_wrapper_mlx5dv_devx_free_uar
  - doca_verbs_wrapper_mlx5dv_query_device
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*mlx5dv_init_obj_func_t)(struct mlx5dv_obj *obj, enum mlx5dv_obj_type
        obj_type)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "*(*mlx5dv_devx_obj_create_func_t)(struct ibv_context *context,\n                                                                 const
        void *in, size_t inlen,\n                                                                 void
        *out, size_t outlen)"
      pos:
        line_end: 56
        line_start: 54
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: mlx5dv_devx_obj
    - item_type: typedef
      name: (*mlx5dv_devx_obj_destroy_func_t)(struct mlx5dv_devx_obj *obj)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "(*mlx5dv_devx_obj_query_func_t)(struct mlx5dv_devx_obj *obj, const void
        *in,\n                                            size_t inlen, void *out,
        size_t outlen)"
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "(*mlx5dv_devx_obj_modify_func_t)(struct mlx5dv_devx_obj *obj, const void
        *in,\n                                             size_t inlen, void *out,
        size_t outlen)"
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "(*mlx5dv_devx_general_cmd_func_t)(struct ibv_context *context, const
        void *in,\n                                              size_t inlen, void
        *out, size_t outlen)"
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "(*mlx5dv_devx_query_eqn_func_t)(struct ibv_context *context, uint32_t
        cpus,\n                                            uint32_t *eqn)"
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "*(*mlx5dv_devx_umem_reg_func_t)(struct ibv_context *context,\n                                                                void
        *addr, size_t size,\n                                                                uint32_t
        access)"
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: mlx5dv_devx_umem
    - item_type: typedef
      name: "*(*mlx5dv_devx_umem_reg_ex_func_t)(\n    struct ibv_context *context,
        struct mlx5dv_devx_umem_in *umem_in)"
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: mlx5dv_devx_umem
    - item_type: typedef
      name: (*mlx5dv_devx_umem_dereg_func_t)(struct mlx5dv_devx_umem *umem)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "*(*mlx5dv_devx_alloc_uar_func_t)(struct ibv_context *context,\n                                                                uint32_t
        uar_type)"
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: mlx5dv_devx_uar
    - item_type: typedef
      name: (*mlx5dv_devx_free_uar_func_t)(struct mlx5dv_devx_uar *uar)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: void
    - item_type: typedef
      name: "(*mlx5dv_query_device_func_t)(struct ibv_context *context,\n                                          struct
        mlx5dv_context *attrs_out)"
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.cpp
      type: int
    union: []
- function_names:
  - CUDA_ROUND_UP
  - CUDA_ROUND_DOWN
  - doca_verbs_cuda_clear_error
  - DOCA_VERBS_CUDA_CALL_CLEAR_ERROR
  - doca_internal_utils_is_power_of_two
  - doca_internal_utils_next_power_of_two
  - doca_internal_utils_log2
  - doca_internal_utils_align_up_uint64
  - doca_internal_utils_align_up_uint32
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOCA_VERBS_PAGE_SIZE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
      type_or_value: '4096'
    - item_type: preproc_def
      name: DOCA_VERBS_CACHELINE_SIZE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
      type_or_value: (64)
    - item_type: preproc_def
      name: DOCA_VERBS_DB_UAR_SIZE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
      type_or_value: '8'
    structs:
    - fields:
      - name: byte_count
        type: __be32
      - name: lkey
        type: __be32
      - name: addr
        type: __be64
      item_type: struct
      name: doca_internal_mlx5_wqe_data_seg
      pos:
        line_end: 98
        line_start: 94
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
    - fields:
      - name: rsvd0[2]
        type: uint8_t
      - name: next_wqe_index
        type: __be16
      - name: signature
        type: uint8_t
      - name: rsvd1[11]
        type: uint8_t
      item_type: struct
      name: doca_internal_mlx5_wqe_mprq_next_seg
      pos:
        line_end: 105
        line_start: 100
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_internal.hpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - convert_doca_verbs_uar_type_to_mlx5_uar_type
  - convert_doca_verbs_uar_type_to_mlx5_uar_type
  - doca_verbs_uar::doca_verbs_uar
  - doca_verbs_uar::~doca_verbs_uar()
  - doca_verbs_uar::create
  - doca_verbs_uar::destroy
  - doca_verbs_uar_create
  - doca_verbs_uar_destroy
  - doca_verbs_uar_id_get
  - doca_verbs_uar_reg_addr_get
  - doca_verbs_uar_dbr_less_addr_get
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_uar.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_net_wrapper.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - priv_get_page_size
  - align_up_uint32
  - create_uar
  - create_gpu_umem
  - calc_cq_external_umem_size
  - mlx5_init_cqes
  - create_cq
  - calc_qp_external_umem_size
  - create_qp
  - doca_gpu_verbs_destroy_qp_hl_internal
  - doca_gpu_verbs_create_qp_hl
  - doca_gpu_verbs_destroy_qp_hl
  - doca_gpu_verbs_create_qp_group_hl
  - doca_gpu_verbs_destroy_qp_group_hl
  - doca_gpu_verbs_qp_flat_list_create_hl
  - doca_gpu_verbs_qp_flat_list_destroy_hl
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DBR_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
      type_or_value: (8)
    - item_type: preproc_def
      name: MAX_SEND_SEGS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
      type_or_value: (1)
    - item_type: preproc_def
      name: MAX_RECEIVE_SEGS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_high_level.cpp
      type_or_value: (1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - translate_gid_table_size
  - translate_gid_table_size
  - doca_verbs_device_attr::doca_verbs_device_attr
  - doca_verbs_device_attr::query_caps
  - doca_verbs_query_device
  - doca_verbs_device_attr_free
  - doca_verbs_device_attr_get_max_qp
  - doca_verbs_device_attr_get_max_qp_wr
  - doca_verbs_device_attr_get_max_sge
  - doca_verbs_device_attr_get_max_cq
  - doca_verbs_device_attr_get_max_cqe
  - doca_verbs_device_attr_get_max_mr
  - doca_verbs_device_attr_get_max_pd
  - doca_verbs_device_attr_get_max_ah
  - doca_verbs_device_attr_get_max_srq
  - doca_verbs_device_attr_get_max_srq_wr
  - doca_verbs_device_attr_get_max_srq_sge
  - doca_verbs_device_attr_get_max_pkeys
  - doca_verbs_device_attr_get_is_qp_type_supported
  - doca_verbs_device_attr_get_send_dbr_mode_no_dbr_ext
  - doca_verbs_device_attr_get_max_qp_init_rd_atom
  - doca_verbs_device_attr_get_max_qp_rd_atom
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRIV_DOCA_MLX5_GID_TABLE_8_ENTRIES
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
      type_or_value: '0x0'
    - item_type: preproc_def
      name: PRIV_DOCA_MLX5_GID_TABLE_16_ENTRIES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
      type_or_value: '0x1'
    - item_type: preproc_def
      name: PRIV_DOCA_MLX5_GID_TABLE_32_ENTRIES
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
      type_or_value: '0x2'
    - item_type: preproc_def
      name: PRIV_DOCA_MLX5_GID_TABLE_64_ENTRIES
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
      type_or_value: '0x3'
    - item_type: preproc_def
      name: PRIV_DOCA_MLX5_GID_TABLE_128_ENTRIES
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
      type_or_value: '0x4'
    - item_type: preproc_def
      name: PRIV_DOCA_MLX5_HCA_CAP_OPMOD_GET_MAX
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
      type_or_value: '0'
    - item_type: preproc_def
      name: PRIV_DOCA_MLX5_HCA_CAP_OPMOD_GET_CUR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.cpp
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - doca_verbs_srq
  - '&operator=(doca_verbs_srq const &)'
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pd'
        type: struct ibv_pd
      - name: srq_type
        type: enum doca_verbs_srq_type
      - name: srq_wr
        type: uint32_t
      - name: receive_max_sges
        type: uint32_t
      - name: '*external_umem'
        type: struct doca_verbs_umem
      - name: external_umem_offset
        type: uint64_t
      item_type: struct
      name: doca_verbs_srq_init_attr
      pos:
        line_end: 47
        line_start: 40
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.hpp
    - fields:
      - name: "create_srq_obj(uint32_t log_srq_size, uint32_t log_stride,\n                                uint64_t
          dbr_umem_offset, uint32_t dbr_umem_id,\n                                uint64_t
          wq_umem_offset, uint32_t wq_umem_id,\n                                struct
          doca_verbs_srq_init_attr &verbs_srq_init_attr) noexcept"
        type: doca_error_t
      - name: create(struct ibv_context *ctx)
        type: void
      - name: destroy() noexcept
        type: doca_error_t
      - name: '*get_srq_buf() const noexcept'
        type: void
      - name: get_srq_size() const noexcept
        type: uint32_t
      - name: get_rcv_wqe_size() const noexcept
        type: uint32_t
      - name: '*get_dbr_addr() const noexcept'
        type: void
      - name: get_srqn() const noexcept
        type: uint32_t
      - name: '*m_srq_obj'
        type: struct mlx5dv_devx_obj
      - name: '*m_umem_obj'
        type: struct mlx5dv_devx_umem
      - name: '*m_umem_buf'
        type: uint8_t
      - name: '*m_srq_buf'
        type: uint8_t
      - name: '*m_ctx'
        type: struct ibv_context
      - name: '*m_pd'
        type: struct ibv_pd
      - name: m_srq_num
        type: uint32_t
      - name: '*m_db_buffer'
        type: uint32_t
      - name: m_rcv_wqe_size
        type: uint32_t
      - name: m_rcv_max_sges
        type: uint32_t
      - name: m_srq_size
        type: uint32_t
      - name: m_log_rcv_wqe_size
        type: uint8_t
      - name: m_srq_type
        type: enum doca_verbs_srq_type
      - name: m_init_attr
        type: doca_verbs_srq_init_attr
      - name: '*m_verbs_device_attr'
        type: doca_verbs_device_attr
      item_type: struct
      name: doca_verbs_srq
      pos:
        line_end: 108
        line_start: 52
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.hpp
    typedefs: []
    union: []
- function_names:
  - doca_verbs_qp
  - '&operator=(doca_verbs_qp const &)'
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: gid
        type: struct doca_verbs_gid
      - name: addr_type
        type: enum doca_verbs_addr_type
      - name: dlid
        type: uint32_t
      - name: sl
        type: uint8_t
      - name: sgid_index
        type: uint8_t
      - name: static_rate
        type: uint8_t
      - name: hop_limit
        type: uint8_t
      - name: traffic_class
        type: uint8_t
      - name: is_global
        type: uint8_t
      item_type: struct
      name: doca_verbs_ah_attr
      pos:
        line_end: 50
        line_start: 40
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.hpp
    - fields:
      - name: '*pd'
        type: struct ibv_pd
      - name: '*send_cq'
        type: struct doca_verbs_cq
      - name: '*receive_cq'
        type: struct doca_verbs_cq
      - name: '*srq'
        type: struct doca_verbs_srq
      - name: '*external_umem'
        type: struct doca_verbs_umem
      - name: '*external_umem_dbr'
        type: struct doca_verbs_umem
      - name: '*external_uar'
        type: struct doca_verbs_uar
      - name: external_umem_offset
        type: uint64_t
      - name: external_umem_dbr_offset
        type: uint64_t
      - name: sq_sig_all
        type: int
      - name: sq_wr
        type: uint32_t
      - name: rq_wr
        type: uint32_t
      - name: send_max_sges
        type: uint32_t
      - name: receive_max_sges
        type: uint32_t
      - name: max_inline_data
        type: uint32_t
      - name: user_index
        type: uint32_t
      - name: qp_type
        type: uint32_t
      - name: '*qp_context'
        type: void
      - name: send_cqn
        type: uint32_t
      - name: receive_cqn
        type: uint32_t
      - name: core_direct_master
        type: uint8_t
      - name: send_dbr_mode
        type: uint8_t
      - name: emulate_no_dbr_ext
        type: bool
      item_type: struct
      name: doca_verbs_qp_init_attr
      pos:
        line_end: 76
        line_start: 52
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.hpp
    - fields:
      - name: next_state
        type: enum doca_verbs_qp_state
      - name: current_state
        type: enum doca_verbs_qp_state
      - name: path_mtu
        type: enum doca_verbs_mtu_size
      - name: rq_psn
        type: uint32_t
      - name: sq_psn
        type: uint32_t
      - name: dest_qp_num
        type: uint32_t
      - name: allow_remote_write
        type: int
      - name: allow_remote_read
        type: int
      - name: allow_remote_atomic
        type: enum doca_verbs_qp_atomic_type
      - name: '*ah_attr'
        type: doca_verbs_ah_attr
      - name: pkey_index
        type: uint16_t
      - name: port_num
        type: uint16_t
      - name: ack_timeout
        type: uint8_t
      - name: retry_cnt
        type: uint8_t
      - name: rnr_retry
        type: uint8_t
      - name: min_rnr_timer
        type: uint8_t
      - name: core_direct_master
        type: uint8_t
      - name: max_rd_atomic
        type: uint8_t
      - name: max_dest_rd_atomic
        type: uint8_t
      item_type: struct
      name: doca_verbs_qp_attr
      pos:
        line_end: 98
        line_start: 78
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.hpp
    - fields:
      - name: create(struct ibv_context *ibv_ctx)
        type: void
      - name: destroy() noexcept
        type: doca_error_t
      - name: get_qpn() const noexcept
        type: uint32_t
      - name: '*get_sq_buf() const noexcept'
        type: void
      - name: '*get_rq_buf() const noexcept'
        type: void
      - name: get_sq_size_wqebb() const noexcept
        type: uint32_t
      - name: get_rq_size() const noexcept
        type: uint32_t
      - name: get_rcv_wqe_size() const noexcept
        type: uint32_t
      - name: '*get_dbr_addr() const noexcept'
        type: void
      - name: '*get_uar_addr() const noexcept'
        type: void
      - name: get_uar_mtype() const noexcept
        type: enum doca_verbs_uar_allocation_type
      - name: get_send_dbr_mode() const noexcept
        type: enum doca_verbs_qp_send_dbr_mode
      - name: get_emulate_no_dbr_ext() const noexcept
        type: bool
      - name: "create_qp_obj(uint32_t uar_id, uint32_t log_rq_size, uint32_t log_sq_size,\n
          \                              uint32_t log_stride, uint64_t dbr_umem_offset,
          uint32_t dbr_umem_id,\n                               uint32_t wq_umem_id,\n
          \                              struct doca_verbs_qp_init_attr &verbs_qp_init_attr)
          noexcept"
        type: doca_error_t
      - name: rst2init(struct doca_verbs_qp_attr &verbs_qp_attr, int param_mask) noexcept
        type: doca_error_t
      - name: init2init(struct doca_verbs_qp_attr &verbs_qp_attr, int param_mask)
          noexcept
        type: doca_error_t
      - name: init2rtr(struct doca_verbs_qp_attr &verbs_qp_attr, int param_mask) noexcept
        type: doca_error_t
      - name: rtr2rts(struct doca_verbs_qp_attr &verbs_qp_attr, int param_mask) noexcept
        type: doca_error_t
      - name: rts2rts(struct doca_verbs_qp_attr &verbs_qp_attr, int param_mask) noexcept
        type: doca_error_t
      - name: qp2err(struct doca_verbs_qp_attr &verbs_qp_attr, int param_mask) noexcept
        type: doca_error_t
      - name: qp2rst(struct doca_verbs_qp_attr &verbs_qp_attr, int param_mask) noexcept
        type: doca_error_t
      - name: "query_qp(struct doca_verbs_qp_attr &verbs_qp_attr,\n                          struct
          doca_verbs_qp_init_attr &verbs_qp_init_attr) noexcept"
        type: doca_error_t
      - name: is_qp_attr_state_valid(enum doca_verbs_qp_state state) noexcept
        type: bool
      - name: is_qp_attr_path_mtu_valid(enum doca_verbs_mtu_size path_mtu) noexcept
        type: bool
      - name: is_qp_attr_queue_psn_valid(uint32_t psn) noexcept
        type: uint32_t
      - name: is_qp_attr_ah_add_type_valid(enum doca_verbs_addr_type addr_type) noexcept
        type: bool
      - name: is_qp_attr_ah_sgid_index_valid(uint8_t sgid_index) noexcept
        type: bool
      - name: is_qp_attr_pkey_index_valid(uint16_t pkey_index) noexcept
        type: bool
      - name: is_qp_attr_port_num_valid(uint16_t port_num) noexcept
        type: bool
      - name: is_qp_attr_valid(struct doca_verbs_qp_attr *verbs_qp_attr, int attr_mask)
          noexcept
        type: bool
      - name: get_current_state() const noexcept
        type: doca_verbs_qp_state
      - name: '*m_qp_obj'
        type: struct mlx5dv_devx_obj
      - name: '*m_umem_obj'
        type: struct mlx5dv_devx_umem
      - name: '*m_uar_obj'
        type: struct mlx5dv_devx_uar
      - name: '*m_umem_buf'
        type: uint8_t
      - name: '*m_wq_buf'
        type: uint8_t
      - name: '*m_ibv_ctx'
        type: struct ibv_context
      - name: '*m_pd'
        type: struct ibv_pd
      - name: m_qp_type
        type: uint32_t
      - name: m_addr_type
        type: doca_verbs_addr_type
      - name: m_current_state
        type: doca_verbs_qp_state
      - name: m_rcv_wqe_size
        type: uint32_t
      - name: m_send_wqe_size
        type: uint32_t
      - name: m_init_attr
        type: doca_verbs_qp_init_attr
      - name: '*m_verbs_device_attr'
        type: struct doca_verbs_device_attr
      - name: m_rcv_max_sges
        type: uint32_t
      - name: m_log_rcv_wqe_size
        type: uint8_t
      - name: m_rq_size
        type: uint32_t
      - name: m_send_max_sges
        type: uint32_t
      - name: m_sq_size_wqebb
        type: uint32_t
      - name: m_sq_size_wr
        type: uint32_t
      - name: m_max_inline_data_length
        type: uint32_t
      - name: '*m_uar_db_reg'
        type: uint64_t
      - name: '*m_sq_buf'
        type: uint8_t
      - name: '*m_rq_buf'
        type: uint8_t
      - name: m_qp_num
        type: uint32_t
      - name: '*m_db_buffer'
        type: uint32_t
      - name: '*m_srq'
        type: struct doca_verbs_srq
      item_type: struct
      name: doca_verbs_qp
      pos:
        line_end: 218
        line_start: 103
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.hpp
    typedefs: []
    union: []
- function_names:
  - doca_cuda_wrapper_init
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
  types:
    enum:
    - enumerators:
      - name: CUDA_SUCCESS
        value: '0'
      - name: CUDA_ERROR_NOT_INITIALIZED
        value: '3'
      item_type: enum
      name: cudaError_enum
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
    - enumerators:
      - name: CU_MEM_RANGE_HANDLE_TYPE_DMA_BUF_FD
        value: '0x1'
      - name: CU_MEM_RANGE_HANDLE_TYPE_MAX
        value: '0x7FFFFFFF'
      item_type: enum
      name: CUmemRangeHandleType_enum
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
    - enumerators:
      - name: CU_POINTER_ATTRIBUTE_SYNC_MEMOPS
        value: '6'
      item_type: enum
      name: CUpointer_attribute_enum
      pos:
        line_end: 54
        line_start: 51
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
    - enumerators:
      - name: CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING
        value: '118'
      - name: CU_DEVICE_ATTRIBUTE_DMA_BUF_SUPPORTED
        value: '124'
      item_type: enum
      name: CUdevice_attribute_enum
      pos:
        line_end: 63
        line_start: 56
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
    - enumerators:
      - name: CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER
        value: '100'
      - name: CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES
        value: '200'
      item_type: enum
      name: CUflushGPUDirectRDMAWritesScope_enum
      pos:
        line_end: 70
        line_start: 65
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
    preproc_defs:
    - item_type: preproc_def
      name: doca_verbs_wrapper_cuDeviceGetAttribute
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
      type_or_value: cuDeviceGetAttribute
    - item_type: preproc_def
      name: doca_verbs_wrapper_cuPointerSetAttribute
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
      type_or_value: cuPointerSetAttribute
    - item_type: preproc_def
      name: doca_verbs_wrapper_cuMemGetHandleForAddressRange
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
      type_or_value: cuMemGetHandleForAddressRange
    - item_type: preproc_def
      name: doca_verbs_wrapper_cuCtxGetCurrent
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
      type_or_value: cuCtxGetCurrent
    structs: []
    typedefs:
    - item_type: typedef
      name: CUdevice
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
      type: int
    - item_type: typedef
      name: CUdeviceptr
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
      type: unsigned long long
    - item_type: typedef
      name: '*CUcontext'
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.h
      type: void
    union: []
- function_names:
  - doca_gpu_log_print
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - priv_query_async_store_release_support
  - priv_is_power_of_two
  - priv_get_page_size
  - doca_gpu_create
  - doca_gpu_destroy
  - doca_gpu_mem_alloc
  - doca_gpu_mem_free
  - doca_gpu_dmabuf_fd
  - doca_gpu_verbs_can_gpu_register_uar
  - doca_gpu_verbs_export_uar
  - doca_gpu_verbs_unexport_uar
  - doca_gpu_verbs_export_qp
  - doca_gpu_verbs_get_qp_dev
  - doca_gpu_verbs_unexport_qp
  - doca_gpu_verbs_export_multi_qps_dev
  - doca_gpu_verbs_unexport_multi_qps_dev
  - priv_cpu_proxy_progress_full_assisted
  - priv_cpu_proxy_progress_dbr_assisted
  - doca_gpu_verbs_cpu_proxy_progress
  - priv_service_mainloop
  - doca_gpu_verbs_create_service
  - doca_gpu_verbs_service_monitor_qp
  - doca_gpu_verbs_destroy_service
  - doca_gpu_verbs_query_last_error
  - doca_gpu_verbs_reset_tracking_and_memory
  - doca_gpu_verbs_get_library_version
  - doca_gpu_verbs_check_device_code_compatibility
  - doca_gpu_verbs_check_host_code_compatibility
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GPU_PAGE_SHIFT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
      type_or_value: '16'
    - item_type: preproc_def
      name: GPU_PAGE_SIZE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
      type_or_value: (1UL << GPU_PAGE_SHIFT)
    - item_type: preproc_def
      name: GPU_FULL_ASYNC_STORE_RELEASE_SUPPORT_COMPUTE_CAP_MAJOR
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
      type_or_value: '10'
    structs:
    - fields:
      - name: base_addr
        type: uintptr_t
      - name: size_orig
        type: size_t
      - name: align_addr_gpu
        type: uintptr_t
      - name: align_addr_cpu
        type: uintptr_t
      - name: size
        type: size_t
      - name: mtype
        type: enum doca_gpu_mem_type
      - name: '*gdr_mh'
        type: void
      item_type: struct
      name: doca_gpu_mtable
      pos:
        line_end: 68
        line_start: 60
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    - fields:
      - name: service_thread
        type: pthread_t
      - name: service_lock
        type: pthread_rwlock_t
      - name: running
        type: bool
      - name: '*qps'
        type: std::set<struct doca_gpu_verbs_qp *>
      item_type: struct
      name: doca_gpu_verbs_service
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.cpp
    typedefs: []
    union: []
- function_names:
  - __devx_nullp
  - __devx_st_sz_bits
  - __devx_bit_sz
  - __devx_bit_off
  - __devx_dw_off
  - __devx_64_off
  - __devx_dw_bit_off
  - __devx_mask
  - __devx_dw_mask
  - DEVX_FLD_SZ_BYTES
  - DEVX_ST_SZ_BYTES
  - DEVX_ST_SZ_DW
  - DEVX_ST_SZ_QW
  - DEVX_UN_SZ_BYTES
  - DEVX_UN_SZ_DW
  - DEVX_BYTE_OFF
  - DEVX_ADDR_OF
  - _devx_set
  - DEVX_SET
  - _devx_get
  - DEVX_GET
  - _devx_set64
  - DEVX_SET64
  - _devx_get64
  - DEVX_GET64
  - doca_verbs_wrapper_mlx5dv_init_obj
  - doca_verbs_wrapper_mlx5dv_devx_obj_create
  - doca_verbs_wrapper_mlx5dv_devx_obj_destroy
  - doca_verbs_wrapper_mlx5dv_devx_obj_query
  - doca_verbs_wrapper_mlx5dv_devx_obj_modify
  - doca_verbs_wrapper_mlx5dv_devx_general_cmd
  - doca_verbs_wrapper_mlx5dv_devx_query_eqn
  - doca_verbs_wrapper_mlx5dv_devx_umem_reg
  - doca_verbs_wrapper_mlx5dv_devx_umem_reg_ex
  - doca_verbs_wrapper_mlx5dv_devx_umem_dereg
  - doca_verbs_wrapper_mlx5dv_devx_alloc_uar
  - doca_verbs_wrapper_mlx5dv_devx_free_uar
  - doca_verbs_wrapper_mlx5dv_query_device
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
  types:
    enum:
    - enumerators:
      - name: MLX5_IB_UAPI_UAR_ALLOC_TYPE_BF
        value: '0x0'
      - name: MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC
        value: '0x1'
      item_type: enum
      name: mlx5_ib_uapi_uar_alloc_type
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    - enumerators:
      - name: MLX5DV_UMEM_MASK_DMABUF
        value: 1 << 0
      item_type: enum
      name: mlx5dv_devx_umem_in_mask
      pos:
        line_end: 80
        line_start: 78
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    - enumerators:
      - name: MLX5DV_OBJ_QP
        value: 1 << 0
      - name: MLX5DV_OBJ_CQ
        value: 1 << 1
      - name: MLX5DV_OBJ_SRQ
        value: 1 << 2
      - name: MLX5DV_OBJ_DM
        value: 1 << 4
      - name: MLX5DV_OBJ_RWQ
        value: 1 << 3
      - name: MLX5DV_OBJ_AH
        value: 1 << 5
      - name: MLX5DV_OBJ_PD
        value: 1 << 6
      - name: MLX5DV_OBJ_DEVX
        value: 1 << 7
      item_type: enum
      name: mlx5dv_obj_type
      pos:
        line_end: 100
        line_start: 91
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    preproc_defs:
    - item_type: preproc_def
      name: ETHERNET_LL_SIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
      type_or_value: '6'
    - item_type: preproc_def
      name: MLX5DV_UAR_ALLOC_TYPE_BF
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
      type_or_value: MLX5_IB_UAPI_UAR_ALLOC_TYPE_BF
    - item_type: preproc_def
      name: MLX5DV_UAR_ALLOC_TYPE_NC
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
      type_or_value: MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC
    structs:
    - fields:
      - name: '*addr'
        type: void
      - name: size
        type: size_t
      - name: access
        type: uint32_t
      - name: pgsz_bitmap
        type: uint64_t
      - name: comp_mask
        type: uint64_t
      - name: dmabuf_fd
        type: int
      item_type: struct
      name: mlx5dv_devx_umem_in
      pos:
        line_end: 89
        line_start: 82
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    - fields:
      - name: umem_id
        type: uint32_t
      item_type: struct
      name: mlx5dv_devx_umem
      pos:
        line_end: 104
        line_start: 102
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    - fields:
      - name: '*obj'
        type: void
      item_type: struct
      name: mlx5dv_devx_obj
      pos:
        line_end: 109
        line_start: 106
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    - fields:
      - name: key
        type: "union {\n        struct {\n            __be32 qkey;\n            __be32
          reserved;\n        } qkey;\n        __be64 dc_key;\n    }"
      - name: dqp_dct
        type: __be32
      - name: stat_rate_sl
        type: uint8_t
      - name: fl_mlid
        type: uint8_t
      - name: rlid
        type: __be16
      - name: reserved0[4]
        type: uint8_t
      - name: rmac[ETHERNET_LL_SIZE]
        type: uint8_t
      - name: tclass
        type: uint8_t
      - name: hop_limit
        type: uint8_t
      - name: grh_gid_fl
        type: __be32
      - name: rgid[16]
        type: uint8_t
      item_type: struct
      name: doca_gpunetio_ib_mlx5_wqe_av
      pos:
        line_end: 129
        line_start: 111
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    - fields:
      - name: '*av'
        type: struct doca_gpunetio_ib_mlx5_wqe_av
      - name: comp_mask
        type: uint64_t
      item_type: struct
      name: mlx5dv_ah
      pos:
        line_end: 134
        line_start: 131
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    - fields:
      - name: pdn
        type: uint32_t
      - name: comp_mask
        type: uint64_t
      item_type: struct
      name: mlx5dv_pd
      pos:
        line_end: 139
        line_start: 136
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    - fields:
      - name: qp
        type: "struct {\n        struct ibv_qp *in;\n        struct mlx5dv_qp *out;\n
          \   }"
      - name: cq
        type: "struct {\n        struct ibv_cq *in;\n        struct mlx5dv_cq *out;\n
          \   }"
      - name: srq
        type: "struct {\n        struct ibv_srq *in;\n        struct mlx5dv_srq *out;\n
          \   }"
      - name: rwq
        type: "struct {\n        struct ibv_wq *in;\n        struct mlx5dv_rwq *out;\n
          \   }"
      - name: dm
        type: "struct {\n        struct ibv_dm *in;\n        struct mlx5dv_dm *out;\n
          \   }"
      - name: ah
        type: "struct {\n        struct ibv_ah *in;\n        struct mlx5dv_ah *out;\n
          \   }"
      - name: pd
        type: "struct {\n        struct ibv_pd *in;\n        struct mlx5dv_pd *out;\n
          \   }"
      - name: devx
        type: "struct {\n        struct mlx5dv_devx_obj *in;\n        struct mlx5dv_devx
          *out;\n    }"
      item_type: struct
      name: mlx5dv_obj
      pos:
        line_end: 174
        line_start: 141
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    - fields:
      - name: '*reg_addr'
        type: void
      - name: '*base_addr'
        type: void
      - name: page_id
        type: uint32_t
      - name: mmap_off
        type: off_t
      - name: comp_mask
        type: uint64_t
      item_type: struct
      name: mlx5dv_devx_uar
      pos:
        line_end: 182
        line_start: 176
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_mlx5dv_wrapper.h
    typedefs: []
    union: []
- function_names:
  - ~doca_verbs_device_attr()
  - '&operator=(doca_verbs_device_attr const &)'
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: query_caps(struct ibv_context *ibv_ctx)
        type: void
      - name: m_max_qp
        type: uint32_t
      - name: m_max_qp_wr
        type: uint32_t
      - name: m_max_sge
        type: uint32_t
      - name: m_max_cq
        type: uint32_t
      - name: m_max_cqe
        type: uint32_t
      - name: m_max_mr
        type: uint32_t
      - name: m_max_pd
        type: uint32_t
      - name: m_max_ah
        type: uint32_t
      - name: m_max_srq
        type: uint32_t
      - name: m_max_srq_wr
        type: uint32_t
      - name: m_max_srq_sge
        type: uint32_t
      - name: m_max_pkeys
        type: uint32_t
      - name: m_max_sq_desc_size
        type: uint32_t
      - name: m_max_rq_desc_size
        type: uint32_t
      - name: m_max_send_wqebb
        type: uint32_t
      - name: m_min_udp_sport
        type: uint16_t
      - name: m_max_udp_sport
        type: uint16_t
      - name: m_gid_table_size
        type: uint16_t
      - name: m_is_qp_rc_supported
        type: uint8_t
      - name: m_port_type
        type: uint8_t
      - name: m_is_rts2rts_qp_dscp_supported
        type: uint8_t
      - name: m_phys_port_cnt
        type: uint8_t
      - name: m_send_dbr_mode_no_dbr_ext
        type: uint8_t
      - name: m_max_qp_init_rd_atom
        type: uint8_t
      - name: m_max_qp_rd_atom
        type: uint8_t
      item_type: struct
      name: doca_verbs_device_attr
      pos:
        line_end: 98
        line_start: 45
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_device_attr.hpp
    typedefs: []
    union: []
- function_names:
  - MAX
  - QP_ATTR
  - qp_attr_to_string
  - print_if_missing_attr
  - print_missing_attrs
  - is_X2rst_attrs_valid
  - is_X2err_attrs_valid
  - is_rst2init_attrs_valid
  - is_init2init_attrs_valid
  - is_init2rtr_attrs_valid
  - is_rtr2rts_attrs_valid
  - is_rts2rts_attrs_valid
  - convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
  - query_roce_version
  - convert_doca_mtu_size_to_prm_mtu_size
  - convert_prm_mtu_size_to_doca_verbs_mtu_size
  - random_in_range
  - resolve_remote_mac
  - convert_prm_qp_state_to_doca_verbs_qp_state
  - qp_attr_to_string
  - print_if_missing_attr
  - print_missing_attrs
  - is_X2rst_attrs_valid
  - is_X2err_attrs_valid
  - is_rst2init_attrs_valid
  - is_init2init_attrs_valid
  - is_init2rtr_attrs_valid
  - is_rtr2rts_attrs_valid
  - is_rts2rts_attrs_valid
  - convert_doca_verbs_qp_attr_mask_to_legal_mlx5_qp_opt_param_mask
  - query_roce_version
  - convert_doca_mtu_size_to_prm_mtu_size
  - convert_prm_mtu_size_to_doca_verbs_mtu_size
  - random_in_range
  - resolve_remote_mac
  - convert_prm_qp_state_to_doca_verbs_qp_state
  - doca_verbs_qp::is_qp_attr_state_valid
  - doca_verbs_qp::is_qp_attr_path_mtu_valid
  - doca_verbs_qp::is_qp_attr_queue_psn_valid
  - doca_verbs_qp::is_qp_attr_ah_add_type_valid
  - doca_verbs_qp::is_qp_attr_ah_sgid_index_valid
  - doca_verbs_qp::is_qp_attr_pkey_index_valid
  - doca_verbs_qp::is_qp_attr_port_num_valid
  - doca_verbs_qp::is_qp_attr_valid
  - doca_verbs_qp::get_current_state
  - doca_verbs_qp::create_qp_obj
  - doca_verbs_qp::rst2init
  - doca_verbs_qp::init2init
  - doca_verbs_qp::init2rtr
  - doca_verbs_qp::rtr2rts
  - doca_verbs_qp::rts2rts
  - doca_verbs_qp::qp2err
  - doca_verbs_qp::qp2rst
  - doca_verbs_qp::query_qp
  - doca_verbs_qp::create
  - doca_verbs_qp::destroy
  - doca_verbs_qp::doca_verbs_qp
  - doca_verbs_qp::~doca_verbs_qp()
  - doca_verbs_qp::get_qpn
  - doca_verbs_qp::get_dbr_addr
  - doca_verbs_qp::get_uar_addr
  - doca_verbs_qp::get_uar_mtype
  - doca_verbs_qp::get_sq_buf
  - doca_verbs_qp::get_rq_buf
  - doca_verbs_qp::get_sq_size_wqebb
  - doca_verbs_qp::get_rq_size
  - doca_verbs_qp::get_rcv_wqe_size
  - doca_verbs_qp::get_send_dbr_mode
  - doca_verbs_qp::get_emulate_no_dbr_ext
  - doca_verbs_qp_init_attr_create
  - doca_verbs_qp_init_attr_destroy
  - doca_verbs_qp_init_attr_set_pd
  - doca_verbs_qp_init_attr_get_pd
  - doca_verbs_qp_init_attr_set_send_cq
  - doca_verbs_qp_init_attr_get_send_cq
  - doca_verbs_qp_init_attr_set_receive_cq
  - doca_verbs_qp_init_attr_get_receive_cq
  - doca_verbs_qp_init_attr_set_sq_sig_all
  - doca_verbs_qp_init_attr_get_sq_sig_all
  - doca_verbs_qp_init_attr_set_sq_wr
  - doca_verbs_qp_init_attr_get_sq_wr
  - doca_verbs_qp_init_attr_set_rq_wr
  - doca_verbs_qp_init_attr_get_rq_wr
  - doca_verbs_qp_init_attr_set_send_max_sges
  - doca_verbs_qp_init_attr_get_send_max_sges
  - doca_verbs_qp_init_attr_set_receive_max_sges
  - doca_verbs_qp_init_attr_get_receive_max_sges
  - doca_verbs_qp_init_attr_set_max_inline_data
  - doca_verbs_qp_init_attr_get_max_inline_data
  - doca_verbs_qp_init_attr_set_user_index
  - doca_verbs_qp_init_attr_get_user_index
  - doca_verbs_qp_init_attr_set_qp_type
  - doca_verbs_qp_init_attr_get_qp_type
  - doca_verbs_qp_init_attr_set_external_umem
  - doca_verbs_qp_init_attr_set_external_dbr_umem
  - doca_verbs_qp_init_attr_get_external_umem
  - doca_verbs_qp_init_attr_set_external_uar
  - doca_verbs_qp_init_attr_get_external_uar
  - doca_verbs_qp_init_attr_set_qp_context
  - doca_verbs_qp_init_attr_get_qp_context
  - doca_verbs_qp_init_attr_set_core_direct_master
  - doca_verbs_qp_init_attr_get_core_direct_master
  - doca_verbs_qp_init_attr_set_send_dbr_mode
  - doca_verbs_qp_init_attr_get_send_dbr_mode
  - doca_verbs_qp_init_attr_set_emulate_no_dbr_ext
  - doca_verbs_qp_init_attr_get_emulate_no_dbr_ext
  - doca_verbs_qp_attr_create
  - doca_verbs_qp_attr_destroy
  - doca_verbs_qp_attr_set_next_state
  - doca_verbs_qp_attr_get_next_state
  - doca_verbs_qp_attr_set_current_state
  - doca_verbs_qp_attr_get_current_state
  - doca_verbs_qp_attr_set_path_mtu
  - doca_verbs_qp_attr_get_path_mtu
  - doca_verbs_qp_attr_set_rq_psn
  - doca_verbs_qp_attr_get_rq_psn
  - doca_verbs_qp_attr_set_sq_psn
  - doca_verbs_qp_attr_get_sq_psn
  - doca_verbs_qp_attr_set_dest_qp_num
  - doca_verbs_qp_attr_get_dest_qp_num
  - doca_verbs_qp_attr_set_allow_remote_write
  - doca_verbs_qp_attr_get_allow_remote_write
  - doca_verbs_qp_attr_set_allow_remote_read
  - doca_verbs_qp_attr_get_allow_remote_read
  - doca_verbs_qp_attr_set_allow_remote_atomic
  - doca_verbs_qp_attr_get_allow_remote_atomic
  - doca_verbs_qp_attr_set_ah_attr
  - doca_verbs_qp_attr_get_ah_attr
  - doca_verbs_qp_attr_set_pkey_index
  - doca_verbs_qp_attr_get_pkey_index
  - doca_verbs_qp_attr_set_port_num
  - doca_verbs_qp_attr_get_port_num
  - doca_verbs_qp_attr_set_ack_timeout
  - doca_verbs_qp_attr_get_ack_timeout
  - doca_verbs_qp_attr_set_retry_cnt
  - doca_verbs_qp_attr_get_retry_cnt
  - doca_verbs_qp_attr_set_rnr_retry
  - doca_verbs_qp_attr_get_rnr_retry
  - doca_verbs_qp_attr_set_min_rnr_timer
  - doca_verbs_qp_attr_get_min_rnr_timer
  - doca_verbs_qp_attr_set_max_rd_atomic
  - doca_verbs_qp_attr_set_max_dest_rd_atomic
  - doca_verbs_ah_attr_create
  - doca_verbs_ah_attr_destroy
  - doca_verbs_ah_attr_set_gid
  - doca_verbs_ah_get_gid
  - doca_verbs_ah_attr_set_addr_type
  - doca_verbs_ah_get_addr_type
  - doca_verbs_ah_attr_set_dlid
  - doca_verbs_ah_get_dlid
  - doca_verbs_ah_attr_set_sl
  - doca_verbs_ah_get_sl
  - doca_verbs_ah_attr_set_sgid_index
  - doca_verbs_ah_get_sgid_index
  - doca_verbs_ah_attr_set_static_rate
  - doca_verbs_ah_get_static_rate
  - doca_verbs_ah_attr_set_hop_limit
  - doca_verbs_ah_get_hop_limit
  - doca_verbs_ah_attr_set_traffic_class
  - doca_verbs_ah_get_traffic_class
  - doca_verbs_qp_create
  - doca_verbs_qp_destroy
  - doca_verbs_qp_modify
  - doca_verbs_qp_query
  - doca_verbs_qp_get_qpn
  - doca_verbs_qp_get_dbr_addr
  - doca_verbs_qp_get_uar_addr
  - doca_verbs_qp_get_wq
  - doca_verbs_qp_init_attr_set_srq
  - doca_verbs_qp_init_attr_get_srq
  - doca_verbs_qp_get_send_dbr_mode
  - doca_verbs_qp_get_emulate_no_dbr_ext
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
  types:
    enum:
    - enumerators:
      - name: DOCA_VERBS_QP_RST2INIT
      - name: DOCA_VERBS_QP_RTR2RTS
      - name: DOCA_VERBS_QP_INIT2RTR
      - name: DOCA_VERBS_QP_RTS2RTS
      - name: DOCA_VERBS_QP_INIT2INIT
      item_type: enum
      name: doca_verbs_qp_state_mod
      pos:
        line_end: 79
        line_start: 73
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
    preproc_defs:
    - item_type: preproc_def
      name: USER_INDEX_MSB_8BITS_MASK
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
      type_or_value: '0xFF000000'
    - item_type: preproc_def
      name: DOCA_VERBS_LOG_OCTOWORD_SIZE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
      type_or_value: '4'
    - item_type: preproc_def
      name: DOCA_VERBS_OCTOWORD_SIZE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
      type_or_value: (1U << DOCA_VERBS_LOG_OCTOWORD_SIZE)
    - item_type: preproc_def
      name: DOCA_VERBS_DATA_SEG_SIZE_IN_BYTES
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
      type_or_value: sizeof(struct doca_internal_mlx5_wqe_data_seg)
    - item_type: preproc_def
      name: DOCA_VERBS_LOG_WQEBB_SIZE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
      type_or_value: '6'
    - item_type: preproc_def
      name: DOCA_VERBS_WQEBB_SIZE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
      type_or_value: (1U << DOCA_VERBS_LOG_WQEBB_SIZE)
    - item_type: preproc_def
      name: PRIV_DOCA_MAC_BYTE_LENGTH
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
      type_or_value: '6'
    - item_type: preproc_def
      name: PRIV_DOCA_VERBS_PORT_NUM
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
      type_or_value: '1'
    - item_type: preproc_def
      name: PRIV_DOCA_GID_BYTE_LENGTH
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_qp.cpp
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - DOCA_LOG
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_log.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MAX
  - doca_verbs_srq::create_srq_obj
  - doca_verbs_srq::destroy
  - doca_verbs_srq::create
  - doca_verbs_srq::doca_verbs_srq
  - doca_verbs_srq::~doca_verbs_srq()
  - doca_verbs_srq::get_srq_buf
  - doca_verbs_srq::get_srq_size
  - doca_verbs_srq::get_rcv_wqe_size
  - doca_verbs_srq::get_dbr_addr
  - doca_verbs_srq::get_srqn
  - doca_verbs_srq_init_attr_create
  - doca_verbs_srq_init_attr_destroy
  - doca_verbs_srq_create
  - doca_verbs_srq_destroy
  - doca_verbs_srq_init_attr_set_srq_wr
  - doca_verbs_srq_init_attr_get_srq_wr
  - doca_verbs_srq_init_attr_set_receive_max_sges
  - doca_verbs_srq_init_attr_get_receive_max_sges
  - doca_verbs_srq_init_attr_set_type
  - doca_verbs_srq_init_attr_get_type
  - doca_verbs_srq_init_attr_set_pd
  - doca_verbs_srq_init_attr_get_pd
  - doca_verbs_srq_init_attr_set_external_umem
  - doca_verbs_srq_init_attr_get_external_umem
  - doca_verbs_srq_get_wq
  - doca_verbs_srq_get_dbr_addr
  - doca_verbs_srq_get_srqn
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOCA_VERBS_SRQ_DB_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
      type_or_value: '64'
    - item_type: preproc_def
      name: DOCA_VERBS_LOG_WQEBB_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
      type_or_value: '6'
    - item_type: preproc_def
      name: DOCA_VERBS_MIN_SRQ_SIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
      type_or_value: '32'
    - item_type: preproc_def
      name: DOCA_VERBS_DATA_SEG_SIZE_IN_BYTES
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
      type_or_value: sizeof(struct doca_internal_mlx5_wqe_data_seg)
    - item_type: preproc_def
      name: DOCA_VERBS_CONTROL_SEG_SIZE_IN_BYTES
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_srq.cpp
      type_or_value: sizeof(struct doca_internal_mlx5_wqe_mprq_next_seg)
    structs: []
    typedefs: []
    union: []
- function_names:
  - doca_verbs_umem::doca_verbs_umem
  - doca_verbs_umem::~doca_verbs_umem()
  - doca_verbs_umem::create
  - doca_verbs_umem::destroy
  - doca_verbs_umem_create
  - doca_verbs_umem_destroy
  - doca_verbs_umem_get_id
  - doca_verbs_umem_get_size
  - doca_verbs_umem_get_address
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_umem.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_cqn
  - get_cq_buf
  - get_cq_num_entries
  - get_cq_uar_db_reg
  - get_cq_ci_dbr
  - get_cq_arm_dbr
  - doca_verbs_cq
  - '&operator=(doca_verbs_cq const &)'
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cq_size
        type: uint32_t
      - name: '*cq_context'
        type: void
      - name: '*external_umem'
        type: struct doca_verbs_umem
      - name: '*external_umem_dbr'
        type: struct doca_verbs_umem
      - name: external_umem_offset
        type: uint32_t
      - name: external_umem_dbr_offset
        type: uint64_t
      - name: '*external_uar'
        type: struct doca_verbs_uar
      - name: cq_overrun
        type: enum doca_verbs_cq_overrun
      - name: cq_collapsed
        type: uint8_t
      item_type: struct
      name: doca_verbs_cq_attr
      pos:
        line_end: 49
        line_start: 39
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.hpp
    - fields:
      - name: destroy() noexcept
        type: doca_error_t
      - name: create(struct doca_verbs_cq_attr &cq_attr)
        type: void
      - name: "create_cq_obj(uint32_t uar_id, uint32_t log_nb_cqes, uint64_t db_umem_offset,\n
          \                              uint32_t db_umem_id, uint32_t wq_umem_id,
          bool cq_overrun,\n                               uint8_t cq_collapsed) noexcept"
        type: doca_error_t
      - name: '*m_cq_obj'
        type: struct mlx5dv_devx_obj
      - name: '*m_umem_obj'
        type: struct mlx5dv_devx_umem
      - name: '*m_uar_obj'
        type: struct mlx5dv_devx_uar
      - name: '*m_ibv_ctx'
        type: struct ibv_context
      - name: '*m_umem_buf'
        type: uint8_t
      - name: '*m_cq_buf'
        type: uint8_t
      - name: '*m_db_buffer'
        type: uint32_t
      - name: '*m_uar_db_reg'
        type: uint64_t
      - name: m_num_cqes
        type: uint32_t
      - name: m_cqn
        type: uint32_t
      - name: '*m_ci_dbr'
        type: uint32_t
      - name: '*m_arm_dbr'
        type: uint32_t
      - name: m_cq_attr
        type: struct doca_verbs_cq_attr
      - name: '*m_verbs_device_attr'
        type: struct doca_verbs_device_attr
      item_type: struct
      name: doca_verbs_cq
      pos:
        line_end: 152
        line_start: 54
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cq.hpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cuda_dev
        type: CUdevice
      - name: '*mtable'
        type: std::unordered_map<uintptr_t, struct doca_gpu_mtable *>
      - name: support_gdrcopy
        type: bool
      - name: support_dmabuf
        type: bool
      - name: support_wq_gpumem
        type: bool
      - name: support_cq_gpumem
        type: bool
      - name: support_uar_gpumem
        type: bool
      - name: support_async_store_release
        type: bool
      - name: support_bf_uar
        type: bool
      - name: need_mcst
        type: bool
      item_type: struct
      name: doca_gpu
      pos:
        line_end: 59
        line_start: 39
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio.hpp
    typedefs: []
    union: []
- function_names:
  - TYPEOF
  - TYPEOF
  - DOCA_GPUNETIO_GDRCOPY_LOAD_SYM
  - doca_gpu_gdrcopy_ftable_init
  - doca_gpu_init_gdrcopy
  - doca_gpu_enable_gdrcopy
  - doca_gpu_gdrcopy_is_supported
  - priv_doca_gpu_gdrcopy_create_mapping
  - doca_gpu_gdrcopy_create_mapping
  - _doca_gpu_gdrcopy_destroy_mapping
  - doca_gpu_gdrcopy_destroy_mapping
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GPU_PAGE_SHIFT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
      type_or_value: '16'
    - item_type: preproc_def
      name: GPU_PAGE_SIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
      type_or_value: (1UL << GPU_PAGE_SHIFT)
    - item_type: preproc_def
      name: GPU_PAGE_OFFSET
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
      type_or_value: (GPU_PAGE_SIZE - 1)
    - item_type: preproc_def
      name: GPU_PAGE_MASK
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
      type_or_value: (~GPU_PAGE_OFFSET)
    - item_type: preproc_def
      name: DOCA_GPUNETIO_GDRCOPY_LIB_NAME
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
      type_or_value: '"libgdrapi.so.2"'
    structs:
    - fields:
      - name: h
        type: unsigned long
      item_type: struct
      name: gdr_mh_s
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    - fields:
      - name: '*handle'
        type: void
      - name: (*open)()
        type: gdr_t
      - name: (*close)(gdr_t g)
        type: int
      - name: "(*pin_buffer)(gdr_t g, unsigned long addr, size_t size, uint64_t p2p_token,\n
          \                     uint32_t va_space, gdr_mh_t *handle)"
        type: int
      - name: (*unpin_buffer)(gdr_t g, gdr_mh_t handle)
        type: int
      - name: (*map)(gdr_t g, gdr_mh_t handle, void **va, size_t size)
        type: int
      - name: (*unmap)(gdr_t g, gdr_mh_t handle, void *va, size_t size)
        type: int
      - name: (*copy_from_mapping)(gdr_mh_t handle, void *h_ptr, const void *map_d_ptr,
          size_t size)
        type: int
      - name: (*copy_to_mapping)(gdr_mh_t handle, const void *map_d_ptr, void *h_ptr,
          size_t size)
        type: int
      - name: (*runtime_get_version)(int *major, int *minor)
        type: void
      - name: (*driver_get_version)(gdr_t g, int *major, int *minor)
        type: int
      item_type: struct
      name: doca_gpu_gdrcopy_function_table
      pos:
        line_end: 83
        line_start: 70
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
    typedefs:
    - item_type: typedef
      name: '*gdr_t'
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_gpunetio_gdrcopy.cpp
      type: gdr
    union: []
- function_names:
  - get_cuda_symbol
  - doca_verbs_wrapper_init_once
  - init_cuda_wrapper
  - doca_verbs_wrapper_cuDeviceGetAttribute
  - doca_verbs_wrapper_cuPointerSetAttribute
  - doca_verbs_wrapper_cuMemGetHandleForAddressRange
  - doca_verbs_wrapper_cuCtxGetCurrent
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*cuDeviceGetAttribute_t)(int *pi, CUdevice_attribute attrib, CUdevice
        dev)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
      type: CUresult
    - item_type: typedef
      name: "(*cuPointerSetAttribute_t)(const void *value, CUpointer_attribute attribute,\n
        \                                           CUdeviceptr ptr)"
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
      type: CUresult
    - item_type: typedef
      name: "(*cuMemGetHandleForAddressRange_t)(int *pHandle, CUdeviceptr dptr, size_t
        size,\n                                                    CUmemRangeHandleType
        handleType,\n                                                    unsigned
        long long flags)"
      pos:
        line_end: 45
        line_start: 43
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
      type: CUresult
    - item_type: typedef
      name: (*cuCtxGetCurrent_t)(CUcontext *pctx)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_cuda_wrapper.cpp
      type: CUresult
    union: []
- function_names:
  - doca_verbs_wrapper_ibv_get_device_list
  - doca_verbs_wrapper_ibv_free_device_list
  - doca_verbs_wrapper_ibv_get_device_name
  - doca_verbs_wrapper_ibv_open_device
  - doca_verbs_wrapper_ibv_close_device
  - doca_verbs_wrapper_ibv_alloc_pd
  - doca_verbs_wrapper_ibv_dealloc_pd
  - doca_verbs_wrapper_ibv_reg_mr
  - doca_verbs_wrapper_ibv_dereg_mr
  - doca_verbs_wrapper_ibv_query_device
  - doca_verbs_wrapper_ibv_query_port
  - doca_verbs_wrapper_ibv_query_gid
  - doca_verbs_wrapper_ibv_create_ah
  - doca_verbs_wrapper_ibv_destroy_ah
  - doca_verbs_wrapper_ibv_create_cq
  - doca_verbs_wrapper_ibv_destroy_cq
  - doca_verbs_wrapper_ibv_create_srq
  - doca_verbs_wrapper_ibv_destroy_srq
  - doca_verbs_wrapper_ibv_create_qp
  - doca_verbs_wrapper_ibv_destroy_qp
  - doca_verbs_wrapper_ibv_modify_qp
  - doca_verbs_wrapper_ibv_query_qp
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
  types:
    enum:
    - enumerators:
      - name: IBV_ATOMIC_NONE
      - name: IBV_ATOMIC_GLOB
      - name: IBV_ATOMIC_HCA
      item_type: enum
      name: ibv_atomic_cap
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    - enumerators:
      - name: IBV_ACCESS_LOCAL_WRITE
        value: '1'
      - name: IBV_ACCESS_REMOTE_ATOMIC
        value: (1 << 3)
      - name: IBV_ACCESS_REMOTE_WRITE
        value: (1 << 1)
      - name: IBV_ACCESS_MW_BIND
        value: (1 << 4)
      - name: IBV_ACCESS_REMOTE_READ
        value: (1 << 2)
      - name: IBV_ACCESS_ZERO_BASED
        value: (1 << 5)
      - name: IBV_ACCESS_ON_DEMAND
        value: (1 << 6)
      - name: IBV_ACCESS_HUGETLB
        value: (1 << 7)
      - name: IBV_ACCESS_FLUSH_GLOBAL
        value: (1 << 8)
      - name: IBV_ACCESS_FLUSH_PERSISTENT
        value: (1 << 9)
      - name: IBV_ACCESS_RELAXED_ORDERING
        value: (1 << 20)
      item_type: enum
      name: ibv_access_flags
      pos:
        line_end: 151
        line_start: 139
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    preproc_defs: []
    structs:
    - 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: 77
        line_start: 71
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.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: 87
        line_start: 79
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    - fields:
      - name: fw_ver[64]
        type: char
      - name: node_guid
        type: __be64
      - name: sys_image_guid
        type: __be64
      - 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: unsigned 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: 132
        line_start: 91
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    - fields:
      - name: '*context'
        type: struct ibv_context
      - name: handle
        type: uint32_t
      item_type: struct
      name: ibv_pd
      pos:
        line_end: 137
        line_start: 134
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
    typedefs: []
    union:
    - fields:
      - name: raw[16]
        type: uint8_t
      - name: global
        type: "struct {\n        __be64 subnet_prefix;\n        __be64 interface_id;\n
          \   }"
      item_type: union
      name: ibv_gid
      pos:
        line_end: 69
        line_start: 63
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.h
- function_names:
  - doca_verbs_wrapper_init_once
  - init_ibverbs_library
  - doca_verbs_wrapper_ibv_get_device_list
  - doca_verbs_wrapper_ibv_free_device_list
  - doca_verbs_wrapper_ibv_get_device_name
  - doca_verbs_wrapper_ibv_open_device
  - doca_verbs_wrapper_ibv_close_device
  - doca_verbs_wrapper_ibv_alloc_pd
  - doca_verbs_wrapper_ibv_dealloc_pd
  - doca_verbs_wrapper_ibv_reg_mr
  - doca_verbs_wrapper_ibv_dereg_mr
  - doca_verbs_wrapper_ibv_query_device
  - doca_verbs_wrapper_ibv_query_port
  - doca_verbs_wrapper_ibv_query_gid
  - doca_verbs_wrapper_ibv_create_ah
  - doca_verbs_wrapper_ibv_destroy_ah
  - doca_verbs_wrapper_ibv_create_cq
  - doca_verbs_wrapper_ibv_destroy_cq
  - doca_verbs_wrapper_ibv_create_srq
  - doca_verbs_wrapper_ibv_destroy_srq
  - doca_verbs_wrapper_ibv_create_qp
  - doca_verbs_wrapper_ibv_destroy_qp
  - doca_verbs_wrapper_ibv_modify_qp
  - doca_verbs_wrapper_ibv_query_qp
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '**(*ibv_get_device_list_func_t)(int *num_devices)'
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: ibv_device
    - item_type: typedef
      name: (*ibv_free_device_list_func_t)(struct ibv_device **list)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: void
    - item_type: typedef
      name: '*(*ibv_get_device_name_func_t)(struct ibv_device *device)'
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: char
    - item_type: typedef
      name: '*(*ibv_open_device_func_t)(struct ibv_device *device)'
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: ibv_context
    - item_type: typedef
      name: (*ibv_close_device_func_t)(struct ibv_context *context)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    - item_type: typedef
      name: '*(*ibv_alloc_pd_func_t)(struct ibv_context *context)'
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: ibv_pd
    - item_type: typedef
      name: (*ibv_dealloc_pd_func_t)(struct ibv_pd *pd)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "*(*ibv_reg_mr_func_t)(struct ibv_pd *pd, void *addr, size_t length,\n
        \                                           int access)"
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: ibv_mr
    - item_type: typedef
      name: (*ibv_dereg_mr_func_t)(struct ibv_mr *mr)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "(*ibv_query_device_func_t)(struct ibv_context *context,\n                                       struct
        ibv_device_attr *device_attr)"
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "(*ibv_query_port_func_t)(struct ibv_context *context, uint8_t port_num,\n
        \                                    struct ibv_port_attr *port_attr)"
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "(*ibv_query_gid_func_t)(struct ibv_context *context, uint8_t port_num,
        int index,\n                                    union ibv_gid *gid)"
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    - item_type: typedef
      name: '*(*ibv_create_ah_func_t)(struct ibv_pd *pd, struct ibv_ah_attr *attr)'
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: ibv_ah
    - item_type: typedef
      name: (*ibv_destroy_ah_func_t)(struct ibv_ah *ah)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "*(*ibv_create_cq_func_t)(struct ibv_context *context, int cqe,\n                                               void
        *cq_context, struct ibv_comp_channel *channel,\n                                               int
        comp_vector)"
      pos:
        line_end: 70
        line_start: 68
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: ibv_cq
    - item_type: typedef
      name: (*ibv_destroy_cq_func_t)(struct ibv_cq *cq)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "*(*ibv_create_srq_func_t)(struct ibv_pd *pd,\n                                                 struct
        ibv_srq_init_attr *srq_init_attr)"
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: ibv_srq
    - item_type: typedef
      name: (*ibv_destroy_srq_func_t)(struct ibv_srq *srq)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "*(*ibv_create_qp_func_t)(struct ibv_pd *pd,\n                                               struct
        ibv_qp_init_attr *qp_init_attr)"
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: ibv_qp
    - item_type: typedef
      name: (*ibv_destroy_qp_func_t)(struct ibv_qp *qp)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    - item_type: typedef
      name: (*ibv_modify_qp_func_t)(struct ibv_qp *qp, struct ibv_qp_attr *attr, int
        attr_mask)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    - item_type: typedef
      name: "(*ibv_query_qp_func_t)(struct ibv_qp *qp, struct ibv_qp_attr *attr, int
        attr_mask,\n                                   struct ibv_qp_init_attr *init_attr)"
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/src/doca_verbs_ibv_wrapper.cpp
      type: int
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/doca_gpunetio_device.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/doca_gpunetio_config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOCA_GPUNETIO_HAVE_MLX5DV_UMEM_DMABUF
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/doca_gpunetio_config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_HAVE_DEDICATED_NC_UAR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/doca_gpunetio_config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_HAVE_CUDA_DMABUF
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/doca_gpunetio_config.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/doca_gpunetio_host.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_gpunetio.h
  types:
    enum:
    - enumerators:
      - name: DOCA_GPU_MEM_TYPE_GPU
        value: '0'
      - name: DOCA_GPU_MEM_TYPE_CPU_GPU
        value: '2'
      - name: DOCA_GPU_MEM_TYPE_GPU_CPU
        value: '1'
      item_type: enum
      name: doca_gpu_mem_type
      pos:
        line_end: 65
        line_start: 58
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_gpunetio.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*gpu_dev'
        type: struct doca_gpu
      - name: '*qp'
        type: struct doca_verbs_qp
      - name: '*cpu_db'
        type: uint64_t
      - name: sq_wqe_pi_last
        type: uint64_t
      - name: '*sq_db'
        type: uint64_t
      - name: '*sq_dbrec'
        type: __be32
      - name: cpu_proxy
        type: bool
      - name: sq_num_shift8_be
        type: uint32_t
      - name: send_dbr_mode_ext
        type: enum doca_gpu_verbs_send_dbr_mode_ext
      - name: '*qp_cpu'
        type: struct doca_gpu_dev_verbs_qp
      - name: '*qp_gpu'
        type: struct doca_gpu_dev_verbs_qp
      - name: '*qp_gpu_h'
        type: struct doca_gpu_dev_verbs_qp
      item_type: struct
      name: doca_gpu_verbs_qp
      pos:
        line_end: 95
        line_start: 78
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_gpunetio.h
    - fields:
      - name: has_error
        type: bool
      - name: syndrome
        type: int
      - name: vendor_err_synd
        type: int
      - name: hw_err_synd
        type: int
      - name: hw_synd_type
        type: int
      - name: wqe_counter
        type: int
      item_type: struct
      name: doca_gpu_verbs_qp_error_info
      pos:
        line_end: 107
        line_start: 100
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_gpunetio.h
    typedefs:
    - item_type: typedef
      name: '*doca_gpu_verbs_service_t'
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_gpunetio.h
      type: void
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_gpunetio_high_level.h
  types:
    enum:
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_MEM_REG_TYPE_DEFAULT
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_MEM_REG_TYPE_CUDA_DMABUF
        value: '1'
      - name: DOCA_GPUNETIO_VERBS_MEM_REG_TYPE_MAX
      - name: DOCA_GPUNETIO_VERBS_MEM_REG_TYPE_CUDA_PEERMEM
        value: '2'
      item_type: enum
      name: doca_gpu_verbs_mem_reg_type
      pos:
        line_end: 50
        line_start: 44
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_gpunetio_high_level.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*gpu_dev'
        type: struct doca_gpu
      - name: '*ibpd'
        type: struct ibv_pd
      - name: sq_nwqe
        type: uint16_t
      - name: reserved1[2]
        type: uint8_t
      - name: nic_handler
        type: enum doca_gpu_dev_verbs_nic_handler
      - name: mreg_type
        type: enum doca_gpu_verbs_mem_reg_type
      - name: send_dbr_mode_ext
        type: enum doca_gpu_verbs_send_dbr_mode_ext
      - name: cq_collapsed
        type: bool
      - name: reserved2[3]
        type: uint8_t
      - name: reserved3[16]
        type: uint8_t
      item_type: struct
      name: doca_gpu_verbs_qp_init_attr_hl
      pos:
        line_end: 63
        line_start: 52
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_gpunetio_high_level.h
    - fields:
      - name: '*gpu_dev'
        type: struct doca_gpu
      - name: '*cq_sq'
        type: struct doca_verbs_cq
      - name: '*cq_sq_umem_gpu_ptr'
        type: void
      - name: '*cq_sq_umem'
        type: struct doca_verbs_umem
      - name: '*cq_sq_umem_dbr_gpu_ptr'
        type: void
      - name: '*cq_sq_umem_dbr'
        type: struct doca_verbs_umem
      - name: '*qp'
        type: struct doca_verbs_qp
      - name: '*qp_umem_gpu_ptr'
        type: void
      - name: '*qp_umem'
        type: struct doca_verbs_umem
      - name: '*qp_umem_dbr_gpu_ptr'
        type: void
      - name: '*qp_umem_dbr'
        type: struct doca_verbs_umem
      - name: '*external_uar'
        type: struct doca_verbs_uar
      - name: nic_handler
        type: enum doca_gpu_dev_verbs_nic_handler
      - name: send_dbr_mode_ext
        type: enum doca_gpu_verbs_send_dbr_mode_ext
      - name: '*qp_gverbs'
        type: struct doca_gpu_verbs_qp
      item_type: struct
      name: doca_gpu_verbs_qp_hl
      pos:
        line_end: 88
        line_start: 65
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_gpunetio_high_level.h
    - fields:
      - name: qp_main
        type: struct doca_gpu_verbs_qp_hl
      - name: qp_companion
        type: struct doca_gpu_verbs_qp_hl
      item_type: struct
      name: doca_gpu_verbs_qp_group_hl
      pos:
        line_end: 93
        line_start: 90
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_gpunetio_high_level.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_prm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MLX5_ADAPTER_PAGE_SHIFT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_prm.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MLX5DV_UAR_ALLOC_TYPE_NC_DEDICATED
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_prm.h
      type_or_value: (1U << 31)
    structs:
    - fields:
      - name: status[0x4]
        type: uint8_t
      - name: as_notify[0x1]
        type: uint8_t
      - name: initiator_src_dct[0x1]
        type: uint8_t
      - name: dbr_umem_valid[0x1]
        type: uint8_t
      - name: reserved_at_7[0x1]
        type: uint8_t
      - name: cqe_sz[0x3]
        type: uint8_t
      - name: cc[0x1]
        type: uint8_t
      - name: reserved_at_c[0x1]
        type: uint8_t
      - name: scqe_break_moderation_en[0x1]
        type: uint8_t
      - name: oi[0x1]
        type: uint8_t
      - name: cq_period_mode[0x2]
        type: uint8_t
      - name: cqe_comp_en[0x1]
        type: uint8_t
      - name: mini_cqe_res_format[0x2]
        type: uint8_t
      - name: st[0x4]
        type: uint8_t
      - name: reserved_at_18[0x1]
        type: uint8_t
      - name: cqe_comp_layout[0x7]
        type: uint8_t
      - name: dbr_umem_id[0x20]
        type: uint8_t
      - name: reserved_at_40[0x14]
        type: uint8_t
      - name: page_offset[0x6]
        type: uint8_t
      - name: reserved_at_5a[0x2]
        type: uint8_t
      - name: mini_cqe_res_format_ext[0x2]
        type: uint8_t
      - name: cq_timestamp_format[0x2]
        type: uint8_t
      - name: reserved_at_60[0x3]
        type: uint8_t
      - name: log_cq_size[0x5]
        type: uint8_t
      - name: uar_page[0x18]
        type: uint8_t
      - name: reserved_at_80[0x4]
        type: uint8_t
      - name: cq_period[0xc]
        type: uint8_t
      - name: cq_max_count[0x10]
        type: uint8_t
      - name: reserved_at_a0[0x18]
        type: uint8_t
      - name: c_eqn[0x8]
        type: uint8_t
      - name: reserved_at_c0[0x3]
        type: uint8_t
      - name: log_page_size[0x5]
        type: uint8_t
      - name: reserved_at_c8[0x18]
        type: uint8_t
      - name: reserved_at_e0[0x20]
        type: uint8_t
      - name: reserved_at_100[0x8]
        type: uint8_t
      - name: last_notified_index[0x18]
        type: uint8_t
      - name: reserved_at_120[0x8]
        type: uint8_t
      - name: last_solicit_index[0x18]
        type: uint8_t
      - name: reserved_at_140[0x8]
        type: uint8_t
      - name: consumer_counter[0x18]
        type: uint8_t
      - name: reserved_at_160[0x8]
        type: uint8_t
      - name: producer_counter[0x18]
        type: uint8_t
      - name: local_partition_id[0xc]
        type: uint8_t
      - name: process_id[0x14]
        type: uint8_t
      - name: reserved_at_1A0[0x20]
        type: uint8_t
      - name: dbr_addr[0x40]
        type: uint8_t
      item_type: struct
      name: mlx5_ifc_cqc_bits
      pos:
        line_end: 131
        line_start: 84
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_prm.h
    - fields:
      - name: opcode[0x10]
        type: uint8_t
      - name: uid[0x10]
        type: uint8_t
      - name: reserved_at_20[0x10]
        type: uint8_t
      - name: op_mod[0x10]
        type: uint8_t
      - name: reserved_at_40[0x40]
        type: uint8_t
      - name: cq_context
        type: struct mlx5_ifc_cqc_bits
      - name: cq_umem_offset[0x40]
        type: uint8_t
      - name: cq_umem_id[0x20]
        type: uint8_t
      - name: cq_umem_valid[0x1]
        type: uint8_t
      - name: reserved_at_2e1[0x1f]
        type: uint8_t
      - name: reserved_at_300[0x580]
        type: uint8_t
      - name: pas[]
        type: uint8_t
      item_type: struct
      name: mlx5_ifc_create_cq_in_bits
      pos:
        line_end: 146
        line_start: 133
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_prm.h
    - fields:
      - name: rsvd0[32]
        type: uint8_t
      - name: srqn
        type: __be32
      - name: rsvd1[16]
        type: uint8_t
      - name: hw_err_synd
        type: uint8_t
      - name: hw_synd_type
        type: uint8_t
      - name: vendor_err_synd
        type: uint8_t
      - name: syndrome
        type: uint8_t
      - name: s_wqe_opcode_qpn
        type: __be32
      - name: wqe_counter
        type: __be16
      - name: signature
        type: uint8_t
      - name: op_own
        type: uint8_t
      item_type: struct
      name: mlx5_err_cqe_ex
      pos:
        line_end: 160
        line_start: 148
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_prm.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
  types:
    enum:
    - enumerators:
      - name: DOCA_VERBS_QP_STATE_RST
        value: '0x0'
      - name: DOCA_VERBS_QP_STATE_RTS
        value: '0x3'
      - name: DOCA_VERBS_QP_STATE_ERR
        value: '0x4'
      - name: DOCA_VERBS_QP_STATE_INIT
        value: '0x1'
      - name: DOCA_VERBS_QP_STATE_RTR
        value: '0x2'
      item_type: enum
      name: doca_verbs_qp_state
      pos:
        line_end: 108
        line_start: 102
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
    - enumerators:
      - name: DOCA_VERBS_ADDR_TYPE_IPv4
      - name: DOCA_VERBS_ADDR_TYPE_IPv6
      - name: DOCA_VERBS_ADDR_TYPE_IB_NO_GRH
      - name: DOCA_VERBS_ADDR_TYPE_IB_GRH
      item_type: enum
      name: doca_verbs_addr_type
      pos:
        line_end: 118
        line_start: 113
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
    - enumerators:
      - name: DOCA_VERBS_MTU_SIZE_256_BYTES
        value: '0x0'
      - name: DOCA_VERBS_MTU_SIZE_512_BYTES
        value: '0x1'
      - name: DOCA_VERBS_MTU_SIZE_1K_BYTES
        value: '0x2'
      - name: DOCA_VERBS_MTU_SIZE_2K_BYTES
        value: '0x3'
      - name: DOCA_VERBS_MTU_SIZE_4K_BYTES
        value: '0x4'
      - name: DOCA_VERBS_MTU_SIZE_RAW_ETHERNET
        value: '0x5'
      item_type: enum
      name: doca_verbs_mtu_size
      pos:
        line_end: 130
        line_start: 123
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
    - enumerators:
      - name: DOCA_VERBS_UAR_ALLOCATION_TYPE_BLUEFLAME
        value: '0'
      - name: DOCA_VERBS_UAR_ALLOCATION_TYPE_NONCACHE
        value: '1'
      - name: DOCA_VERBS_UAR_ALLOCATION_TYPE_NONCACHE_DEDICATED
        value: '2'
      item_type: enum
      name: doca_verbs_uar_allocation_type
      pos:
        line_end: 139
        line_start: 135
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
    - enumerators:
      - name: DOCA_VERBS_CQ_DISABLE_OVERRUN
        value: '0'
      - name: DOCA_VERBS_CQ_ENABLE_OVERRUN
        value: '1'
      item_type: enum
      name: doca_verbs_cq_overrun
      pos:
        line_end: 147
        line_start: 144
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
    - enumerators:
      - name: DOCA_VERBS_SRQ_TYPE_LINKED_LIST
      - name: DOCA_VERBS_SRQ_TYPE_CONTIGUOUS
      item_type: enum
      name: doca_verbs_srq_type
      pos:
        line_end: 155
        line_start: 152
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
    - enumerators:
      - name: DOCA_VERBS_QP_ATOMIC_MODE_NONE
        value: '0x0'
      - name: DOCA_VERBS_QP_ATOMIC_MODE_UP_TO_8BYTES
        value: '0x3'
      - name: DOCA_VERBS_QP_ATOMIC_MODE_IB_SPEC
        value: '0x1'
      item_type: enum
      name: doca_verbs_qp_atomic_type
      pos:
        line_end: 164
        line_start: 160
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
    - enumerators:
      - name: DOCA_VERBS_QP_SEND_DBR_MODE_DBR_VALID
        value: '0x0'
      - name: DOCA_VERBS_QP_SEND_DBR_MODE_NO_DBR_EXT
        value: '0x1'
      item_type: enum
      name: doca_verbs_qp_send_dbr_mode
      pos:
        line_end: 172
        line_start: 169
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
    preproc_defs:
    - item_type: preproc_def
      name: DOCA_VERBS_QP_TYPE_RC
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_ALLOW_REMOTE_WRITE
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_ALLOW_REMOTE_READ
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_PKEY_INDEX
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_MIN_RNR_TIMER
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_PORT_NUM
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_NEXT_STATE
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_CURRENT_STATE
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_PATH_MTU
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_RQ_PSN
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_SQ_PSN
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_DEST_QP_NUM
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_ACK_TIMEOUT
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 11)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_RETRY_CNT
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 12)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_RNR_RETRY
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 13)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_AH_ATTR
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 14)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_MAX_QP_RD_ATOMIC
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: DOCA_VERBS_QP_ATTR_MAX_DEST_RD_ATOMIC
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: (1 << 17)
    - item_type: preproc_def
      name: DOCA_VERBS_GID_BYTE_LENGTH
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: DOCA_VERBS_DMABUF_INVALID_FD
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
      type_or_value: '0xFFFFFFFF'
    structs:
    - fields:
      - name: raw[DOCA_VERBS_GID_BYTE_LENGTH]
        type: uint8_t
      item_type: struct
      name: doca_verbs_gid
      pos:
        line_end: 312
        line_start: 310
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_verbs.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_error.h
  types:
    enum:
    - enumerators:
      - name: DOCA_ERROR_BAD_CONFIG
        value: '29'
      - name: DOCA_ERROR_SKIPPED
        value: '30'
      - name: DOCA_ERROR_DRIVER
        value: '21'
      - name: DOCA_ERROR_ALREADY_EXIST
        value: '23'
      - name: DOCA_SUCCESS
        value: '0'
      - name: DOCA_ERROR_NOT_SUPPORTED
        value: '4'
      - name: DOCA_ERROR_NOT_PERMITTED
        value: '2'
      - name: DOCA_ERROR_INVALID_VALUE
        value: '6'
      - name: DOCA_ERROR_INITIALIZATION
        value: '8'
      - name: DOCA_ERROR_NOT_CONNECTED
        value: '14'
      - name: DOCA_ERROR_NOT_FOUND
        value: '16'
      - name: DOCA_ERROR_SHUTDOWN
        value: '10'
      - name: DOCA_ERROR_CONNECTION_ABORTED
        value: '12'
      - name: DOCA_ERROR_BAD_STATE
        value: '18'
      - name: DOCA_ERROR_IN_PROGRESS
        value: '26'
      - name: DOCA_ERROR_AUTHENTICATION
        value: '28'
      - name: DOCA_ERROR_OPERATING_SYSTEM
        value: '20'
      - name: DOCA_ERROR_UNEXPECTED
        value: '22'
      - name: DOCA_ERROR_DEVICE_FATAL_ERROR
        value: '31'
      - name: DOCA_ERROR_FULL
        value: '24'
      - name: DOCA_ERROR_UNKNOWN
        value: '1'
      - name: DOCA_ERROR_IN_USE
        value: '3'
      - name: DOCA_ERROR_AGAIN
        value: '5'
      - name: DOCA_ERROR_NO_MEMORY
        value: '7'
      - name: DOCA_ERROR_TIME_OUT
        value: '9'
      - name: DOCA_ERROR_NO_LOCK
        value: '15'
      - name: DOCA_ERROR_CONNECTION_RESET
        value: '11'
      - name: DOCA_ERROR_IO_FAILED
        value: '17'
      - name: DOCA_ERROR_CONNECTION_INPROGRESS
        value: '13'
      - name: DOCA_ERROR_UNSUPPORTED_VERSION
        value: '19'
      - name: DOCA_ERROR_EMPTY
        value: '25'
      - name: DOCA_ERROR_TOO_BIG
        value: '27'
      item_type: enum
      name: doca_error
      pos:
        line_end: 80
        line_start: 47
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/doca_error.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __mlx5_nullp
  - __mlx5_st_sz_bits
  - __mlx5_bit_sz
  - __mlx5_bit_off
  - __mlx5_dw_off
  - __mlx5_64_off
  - __mlx5_dw_bit_off
  - __mlx5_mask
  - __mlx5_dw_mask
  - MLX5_FLD_SZ_BITS
  - MLX5_FLD_SZ_BYTES
  - MLX5_ST_SZ_BYTES
  - MLX5_ST_SZ_DW
  - MLX5_ST_SZ_QW
  - MLX5_UN_SZ_BYTES
  - MLX5_UN_SZ_DW
  - MLX5_BYTE_OFF
  - MLX5_ADDR_OF
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
  types:
    enum:
    - enumerators:
      - name: HCA_CAP_OPMOD_GET_MAX
        value: '0'
      - name: HCA_CAP_OPMOD_GET_CUR
        value: '1'
      item_type: enum
      name: mlx5_cap_mode
      pos:
        line_end: 58
        line_start: 55
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_EVENT_TYPE_CMD
        value: '0x0a'
      - name: MLX5_EVENT_TYPE_PAGE_REQUEST
        value: '0xb'
      item_type: enum
      name: mlx5_event
      pos:
        line_end: 196
        line_start: 193
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_HW_CONNECTX_5
        value: '0x0'
      - name: MLX5_HW_CONNECTX_6DX
        value: '0x1'
      item_type: enum
      name: mlx5_ifc_steering_format_version
      pos:
        line_end: 830
        line_start: 827
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_MODIFY_HEADER_V1_QW_OFFSET
        value: '0x20'
      item_type: enum
      name: mlx5_ifc_ste_v1_modify_hdr_offset
      pos:
        line_end: 834
        line_start: 832
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_CAP_GENERAL
        value: '0'
      - name: MLX5_CAP_ROCE
      - name: MLX5_CAP_NUM
      - name: MLX5_CAP_ODP
        value: '2'
      - name: MLX5_CAP_ATOMIC
        value: '3'
      item_type: enum
      name: mlx5_cap_type
      pos:
        line_end: 1543
        line_start: 1537
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_REFORMAT_TYPE_L2_TO_VXLAN
        value: '0x0'
      - name: MLX5_REFORMAT_TYPE_L2_TO_L3_TUNNEL
        value: '0x4'
      - name: MLX5_REFORMAT_TYPE_L2_TO_L2_TUNNEL
        value: '0x2'
      - name: MLX5_REFORMAT_TYPE_L3_TUNNEL_TO_L2
        value: '0x3'
      - name: MLX5_REFORMAT_TYPE_L2_TO_NVGRE
        value: '0x1'
      item_type: enum
      name: reformat_type
      pos:
        line_end: 3143
        line_start: 3137
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_QPC_OPT_MASK_32_DCI_STREAM_CHANNEL_ID
        value: 1 << 0
      - name: MLX5_QPC_OPT_MASK_32_UDP_SPORT
        value: 1 << 2
      - name: MLX5_QPC_OPT_MASK_32_QOS_QUEUE_GROUP_ID
        value: 1 << 1
      item_type: enum
      name: mlx5_qpc_opt_mask_32
      pos:
        line_end: 3675
        line_start: 3671
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_QPC_OPT_MASK_INIT2INIT_DRAIN_SIGERR
        value: 1 << 11
      - name: MLX5_QPC_OPT_MASK_RTS2RTS_LAG_TX_PORT_AFFINITY
        value: 1 << 15
      - name: MLX5_QPC_OPT_MASK_INIT2INIT_MMO
        value: 1 << 25
      item_type: enum
      name: mlx5_qpc_opt_mask
      pos:
        line_end: 3681
        line_start: 3677
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_ROCE_VERSION_1
        value: '0'
      - name: MLX5_ROCE_VERSION_2
        value: '2'
      item_type: enum
      name: roce_version
      pos:
        line_end: 4086
        line_start: 4083
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_FLOW_DEST_TYPE_VPORT
        value: '0x0'
      - name: MLX5_FLOW_DEST_TYPE_COUNTER
        value: '0x100'
      - name: MLX5_FLOW_DEST_TYPE_TIR
        value: '0x2'
      - name: MLX5_FLOW_DEST_TYPE_FT
        value: '0x1'
      item_type: enum
      name: dr_devx_flow_dest_type
      pos:
        line_end: 4353
        line_start: 4347
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_SCHED_HIERARCHY_NIC
        value: '3'
      item_type: enum
      name: mlx5_sched_hierarchy_type
      pos:
        line_end: 4372
        line_start: 4370
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_SCHED_ELEM_TYPE_TSAR
        value: '0x0'
      - name: MLX5_SCHED_ELEM_TYPE_VPORT
        value: '0x1'
      - name: MLX5_SCHED_ELEM_TYPE_QUEUE_GROUP
        value: '0x4'
      - name: MLX5_SCHED_ELEM_TYPE_VPORT_TC
        value: '0x2'
      - name: MLX5_SCHED_ELEM_TYPE_PARA_VPORT_TC
        value: '0x3'
      item_type: enum
      name: mlx5_sched_elem_type
      pos:
        line_end: 4380
        line_start: 4374
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - enumerators:
      - name: MLX5_SCHED_TSAR_TYPE_DWRR
        value: '0x0'
      - name: MLX5_SCHED_TSAR_TYPE_ROUND_ROBIN
        value: '0x1'
      - name: MLX5_SCHED_TSAR_TYPE_ETS
        value: '0x2'
      item_type: enum
      name: mlx5_sched_tsar_type
      pos:
        line_end: 4386
        line_start: 4382
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    preproc_defs:
    - item_type: preproc_def
      name: u8
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
      type_or_value: uint8_t
    structs:
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: atomic_req_8B_endianness_mode[0x2]
        type: u8
      - name: reserved_at_42[0x4]
        type: u8
      - name: supported_atomic_req_8B_endianness_mode_1[0x1]
        type: u8
      - name: reserved_at_47[0x19]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: reserved_at_80[0x10]
        type: u8
      - name: atomic_operations[0x10]
        type: u8
      - name: reserved_at_a0[0x10]
        type: u8
      - name: atomic_size_qp[0x10]
        type: u8
      - name: reserved_at_c0[0x10]
        type: u8
      - name: atomic_size_dc[0x10]
        type: u8
      - name: reserved_at_e0[0x1a0]
        type: u8
      - name: fetch_add_pci_atomic[0x10]
        type: u8
      - name: swap_pci_atomic[0x10]
        type: u8
      - name: compare_swap_pci_atomic[0x10]
        type: u8
      - name: reserved_at_2b0[0x550]
        type: u8
      item_type: struct
      name: mlx5_ifc_atomic_caps_bits
      pos:
        line_end: 229
        line_start: 202
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_0[0x4]
        type: u8
      - name: sw_r_roce_src_udp_port[0x1]
        type: u8
      - name: fl_rc_qp_when_roce_disabled[0x1]
        type: u8
      - name: fl_rc_qp_when_roce_enabled[0x1]
        type: u8
      - name: reserved_at_7[0x17]
        type: u8
      - name: qp_ts_format[0x2]
        type: u8
      - name: reserved_at_20[0x60]
        type: uint8_t
      - name: reserved_at_80[0xc]
        type: uint8_t
      - name: l3_type[0x4]
        type: uint8_t
      - name: reserved_at_90[0x8]
        type: uint8_t
      - name: roce_version[0x8]
        type: uint8_t
      - name: reserved_at_a0[0x10]
        type: uint8_t
      - name: r_roce_dest_udp_port[0x10]
        type: uint8_t
      - name: r_roce_max_src_udp_port[0x10]
        type: uint8_t
      - name: r_roce_min_src_udp_port[0x10]
        type: uint8_t
      - name: reserved_at_e0[0x10]
        type: uint8_t
      - name: roce_address_table_size[0x10]
        type: uint8_t
      - name: reserved_at_100[0x700]
        type: uint8_t
      item_type: struct
      name: mlx5_ifc_roce_cap_bits
      pos:
        line_end: 256
        line_start: 231
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reformat_en[0x1]
        type: u8
      - name: decap_en[0x1]
        type: u8
      - name: sw_owner[0x1]
        type: u8
      - name: termination_table[0x1]
        type: u8
      - name: table_miss_action[0x4]
        type: u8
      - name: level[0x8]
        type: u8
      - name: reserved_at_10[0x8]
        type: u8
      - name: log_size[0x8]
        type: u8
      - name: reserved_at_20[0x8]
        type: u8
      - name: table_miss_id[0x18]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: lag_master_next_table_id[0x18]
        type: u8
      - name: reserved_at_60[0x60]
        type: u8
      - name: sw_owner_icm_root_1[0x40]
        type: u8
      - name: sw_owner_icm_root_0[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_flow_table_context_bits
      pos:
        line_end: 283
        line_start: 262
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: other_vport[0x1]
        type: u8
      - name: reserved_at_41[0xf]
        type: u8
      - name: vport_number[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: table_type[0x8]
        type: u8
      - name: reserved_at_88[0x18]
        type: u8
      - name: reserved_at_a0[0x20]
        type: u8
      - name: flow_table_context
        type: struct mlx5_ifc_flow_table_context_bits
      item_type: struct
      name: mlx5_ifc_create_flow_table_in_bits
      pos:
        line_end: 304
        line_start: 285
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: icm_address_63_40[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: icm_address_39_32[0x8]
        type: u8
      - name: table_id[0x18]
        type: u8
      - name: icm_address_31_0[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_flow_table_out_bits
      pos:
        line_end: 316
        line_start: 306
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: other_vport[0x1]
        type: u8
      - name: reserved_at_41[0xf]
        type: u8
      - name: vport_number[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: table_type[0x8]
        type: u8
      - name: reserved_at_88[0x18]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: table_id[0x18]
        type: u8
      - name: reserved_at_c0[0x140]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_flow_table_in_bits
      pos:
        line_end: 337
        line_start: 318
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: table_type[0x8]
        type: u8
      - name: reserved_at_88[0x18]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: table_id[0x18]
        type: u8
      - name: reserved_at_c0[0x140]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_flow_table_in_bits
      pos:
        line_end: 355
        line_start: 339
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x80]
        type: u8
      - name: flow_table_context
        type: struct mlx5_ifc_flow_table_context_bits
      item_type: struct
      name: mlx5_ifc_query_flow_table_out_bits
      pos:
        line_end: 366
        line_start: 357
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0xc0]
        type: u8
      item_type: struct
      name: mlx5_ifc_sync_steering_in_bits
      pos:
        line_end: 376
        line_start: 368
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_sync_steering_out_bits
      pos:
        line_end: 385
        line_start: 378
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: memic[0x1]
        type: u8
      - name: reserved_at_1[0x1f]
        type: u8
      - name: reserved_at_20[0xb]
        type: u8
      - name: log_min_memic_alloc_size[0x5]
        type: u8
      - name: reserved_at_30[0x8]
        type: u8
      - name: log_max_memic_addr_alignment[0x8]
        type: u8
      - name: memic_bar_start_addr[0x40]
        type: u8
      - name: memic_bar_size[0x20]
        type: u8
      - name: max_memic_size[0x20]
        type: u8
      - name: steering_sw_icm_start_address[0x40]
        type: u8
      - name: reserved_at_100[0x8]
        type: u8
      - name: log_header_modify_sw_icm_size[0x8]
        type: u8
      - name: reserved_at_110[0x2]
        type: u8
      - name: log_sw_icm_alloc_granularity[0x6]
        type: u8
      - name: log_steering_sw_icm_size[0x8]
        type: u8
      - name: reserved_at_120[0x20]
        type: u8
      - name: header_modify_sw_icm_start_address[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_device_mem_cap_bits
      pos:
        line_end: 413
        line_start: 387
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: outer_dmac[0x1]
        type: u8
      - name: outer_smac[0x1]
        type: u8
      - name: outer_ether_type[0x1]
        type: u8
      - name: outer_ip_version[0x1]
        type: u8
      - name: outer_first_prio[0x1]
        type: u8
      - name: outer_first_cfi[0x1]
        type: u8
      - name: outer_first_vid[0x1]
        type: u8
      - name: outer_ipv4_ttl[0x1]
        type: u8
      - name: outer_second_prio[0x1]
        type: u8
      - name: outer_second_cfi[0x1]
        type: u8
      - name: outer_second_vid[0x1]
        type: u8
      - name: outer_ipv6_flow_label[0x1]
        type: u8
      - name: outer_sip[0x1]
        type: u8
      - name: outer_dip[0x1]
        type: u8
      - name: outer_frag[0x1]
        type: u8
      - name: outer_ip_protocol[0x1]
        type: u8
      - name: outer_ip_ecn[0x1]
        type: u8
      - name: outer_ip_dscp[0x1]
        type: u8
      - name: outer_udp_sport[0x1]
        type: u8
      - name: outer_udp_dport[0x1]
        type: u8
      - name: outer_tcp_sport[0x1]
        type: u8
      - name: outer_tcp_dport[0x1]
        type: u8
      - name: outer_tcp_flags[0x1]
        type: u8
      - name: outer_gre_protocol[0x1]
        type: u8
      - name: outer_gre_key[0x1]
        type: u8
      - name: outer_vxlan_vni[0x1]
        type: u8
      - name: outer_geneve_vni[0x1]
        type: u8
      - name: outer_geneve_oam[0x1]
        type: u8
      - name: outer_geneve_protocol_type[0x1]
        type: u8
      - name: outer_geneve_opt_len[0x1]
        type: u8
      - name: source_vhca_port[0x1]
        type: u8
      - name: source_eswitch_port[0x1]
        type: u8
      - name: inner_dmac[0x1]
        type: u8
      - name: inner_smac[0x1]
        type: u8
      - name: inner_ether_type[0x1]
        type: u8
      - name: inner_ip_version[0x1]
        type: u8
      - name: inner_first_prio[0x1]
        type: u8
      - name: inner_first_cfi[0x1]
        type: u8
      - name: inner_first_vid[0x1]
        type: u8
      - name: inner_ipv4_ttl[0x1]
        type: u8
      - name: inner_second_prio[0x1]
        type: u8
      - name: inner_second_cfi[0x1]
        type: u8
      - name: inner_second_vid[0x1]
        type: u8
      - name: inner_ipv6_flow_label[0x1]
        type: u8
      - name: inner_sip[0x1]
        type: u8
      - name: inner_dip[0x1]
        type: u8
      - name: inner_frag[0x1]
        type: u8
      - name: inner_ip_protocol[0x1]
        type: u8
      - name: inner_ip_ecn[0x1]
        type: u8
      - name: inner_ip_dscp[0x1]
        type: u8
      - name: inner_udp_sport[0x1]
        type: u8
      - name: inner_udp_dport[0x1]
        type: u8
      - name: inner_tcp_sport[0x1]
        type: u8
      - name: inner_tcp_dport[0x1]
        type: u8
      - name: inner_tcp_flags[0x1]
        type: u8
      - name: reserved_at_37[0x7]
        type: u8
      - name: metadata_reg_b[0x1]
        type: u8
      - name: metadata_reg_a[0x1]
        type: u8
      - name: reserved_at_40[0x5]
        type: u8
      - name: outer_first_mpls_over_udp_ttl[0x1]
        type: u8
      - name: outer_first_mpls_over_udp_s_bos[0x1]
        type: u8
      - name: outer_first_mpls_over_udp_exp[0x1]
        type: u8
      - name: outer_first_mpls_over_udp_label[0x1]
        type: u8
      - name: outer_first_mpls_over_gre_ttl[0x1]
        type: u8
      - name: outer_first_mpls_over_gre_s_bos[0x1]
        type: u8
      - name: outer_first_mpls_over_gre_exp[0x1]
        type: u8
      - name: outer_first_mpls_over_gre_label[0x1]
        type: u8
      - name: inner_first_mpls_ttl[0x1]
        type: u8
      - name: inner_first_mpls_s_bos[0x1]
        type: u8
      - name: inner_first_mpls_exp[0x1]
        type: u8
      - name: inner_first_mpls_label[0x1]
        type: u8
      - name: outer_first_mpls_ttl[0x1]
        type: u8
      - name: outer_first_mpls_s_bos[0x1]
        type: u8
      - name: outer_first_mpls_exp[0x1]
        type: u8
      - name: outer_first_mpls_label[0x1]
        type: u8
      - name: outer_emd_tag[0x1]
        type: u8
      - name: inner_esp_spi[0x1]
        type: u8
      - name: outer_esp_spi[0x1]
        type: u8
      - name: inner_ipv6_hop_limit[0x1]
        type: u8
      - name: outer_ipv6_hop_limit[0x1]
        type: u8
      - name: bth_dst_qp[0x1]
        type: u8
      - name: inner_first_svlan[0x1]
        type: u8
      - name: inner_second_svlan[0x1]
        type: u8
      - name: outer_first_svlan[0x1]
        type: u8
      - name: outer_second_svlan[0x1]
        type: u8
      - name: source_sqn[0x1]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_flow_table_fields_supported_bits
      pos:
        line_end: 506
        line_start: 415
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: smac_47_16[0x20]
        type: u8
      - name: smac_15_0[0x10]
        type: u8
      - name: ethertype[0x10]
        type: u8
      - name: dmac_47_16[0x20]
        type: u8
      - name: dmac_15_0[0x10]
        type: u8
      - name: first_prio[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: first_vid[0xc]
        type: u8
      - name: ip_protocol[0x8]
        type: u8
      - name: ip_dscp[0x6]
        type: u8
      - name: ip_ecn[0x2]
        type: u8
      - name: cvlan_tag[0x1]
        type: u8
      - name: svlan_tag[0x1]
        type: u8
      - name: frag[0x1]
        type: u8
      - name: ip_version[0x4]
        type: u8
      - name: tcp_flags[0x9]
        type: u8
      - name: tcp_sport[0x10]
        type: u8
      - name: tcp_dport[0x10]
        type: u8
      - name: reserved_at_c0[0x10]
        type: u8
      - name: ipv4_ihl[0x4]
        type: u8
      - name: l3_ok[0x1]
        type: u8
      - name: l4_ok[0x1]
        type: u8
      - name: ipv4_checksum_ok[0x1]
        type: u8
      - name: l4_checksum_ok[0x1]
        type: u8
      - name: ip_ttl_hoplimit[0x8]
        type: u8
      - name: udp_sport[0x10]
        type: u8
      - name: udp_dport[0x10]
        type: u8
      - name: src_ip_127_96[0x20]
        type: u8
      - name: src_ip_95_64[0x20]
        type: u8
      - name: src_ip_63_32[0x20]
        type: u8
      - name: src_ip_31_0[0x20]
        type: u8
      - name: dst_ip_127_96[0x20]
        type: u8
      - name: dst_ip_95_64[0x20]
        type: u8
      - name: dst_ip_63_32[0x20]
        type: u8
      - name: dst_ip_31_0[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dr_match_spec_bits
      pos:
        line_end: 559
        line_start: 508
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: gre_c_present[0x1]
        type: u8
      - name: reserved_auto1[0x1]
        type: u8
      - name: gre_k_present[0x1]
        type: u8
      - name: gre_s_present[0x1]
        type: u8
      - name: source_vhca_port[0x4]
        type: u8
      - name: source_sqn[0x18]
        type: u8
      - name: source_eswitch_owner_vhca_id[0x10]
        type: u8
      - name: source_port[0x10]
        type: u8
      - name: outer_second_prio[0x3]
        type: u8
      - name: outer_second_cfi[0x1]
        type: u8
      - name: outer_second_vid[0xc]
        type: u8
      - name: inner_second_prio[0x3]
        type: u8
      - name: inner_second_cfi[0x1]
        type: u8
      - name: inner_second_vid[0xc]
        type: u8
      - name: outer_second_cvlan_tag[0x1]
        type: u8
      - name: inner_second_cvlan_tag[0x1]
        type: u8
      - name: outer_second_svlan_tag[0x1]
        type: u8
      - name: inner_second_svlan_tag[0x1]
        type: u8
      - name: outer_emd_tag[0x1]
        type: u8
      - name: reserved_at_65[0xb]
        type: u8
      - name: gre_protocol[0x10]
        type: u8
      - name: gre_key_h[0x18]
        type: u8
      - name: gre_key_l[0x8]
        type: u8
      - name: vxlan_vni[0x18]
        type: u8
      - name: reserved_at_b8[0x8]
        type: u8
      - name: geneve_vni[0x18]
        type: u8
      - name: reserved_at_e4[0x7]
        type: u8
      - name: geneve_oam[0x1]
        type: u8
      - name: reserved_at_ec[0xc]
        type: u8
      - name: outer_ipv6_flow_label[0x14]
        type: u8
      - name: reserved_at_100[0xc]
        type: u8
      - name: inner_ipv6_flow_label[0x14]
        type: u8
      - name: reserved_at_120[0xa]
        type: u8
      - name: geneve_opt_len[0x6]
        type: u8
      - name: geneve_protocol_type[0x10]
        type: u8
      - name: reserved_at_140[0x8]
        type: u8
      - name: bth_dst_qp[0x18]
        type: u8
      - name: inner_esp_spi[0x20]
        type: u8
      - name: outer_esp_spi[0x20]
        type: u8
      - name: reserved_at_1a0[0x60]
        type: u8
      item_type: struct
      name: mlx5_ifc_dr_match_set_misc_bits
      pos:
        line_end: 615
        line_start: 561
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: outer_first_mpls_label[0x14]
        type: u8
      - name: outer_first_mpls_exp[0x3]
        type: u8
      - name: outer_first_mpls_s_bos[0x1]
        type: u8
      - name: outer_first_mpls_ttl[0x8]
        type: u8
      - name: inner_first_mpls_label[0x14]
        type: u8
      - name: inner_first_mpls_exp[0x3]
        type: u8
      - name: inner_first_mpls_s_bos[0x1]
        type: u8
      - name: inner_first_mpls_ttl[0x8]
        type: u8
      - name: outer_first_mpls_over_gre_label[0x14]
        type: u8
      - name: outer_first_mpls_over_gre_exp[0x3]
        type: u8
      - name: outer_first_mpls_over_gre_s_bos[0x1]
        type: u8
      - name: outer_first_mpls_over_gre_ttl[0x8]
        type: u8
      - name: outer_first_mpls_over_udp_label[0x14]
        type: u8
      - name: outer_first_mpls_over_udp_exp[0x3]
        type: u8
      - name: outer_first_mpls_over_udp_s_bos[0x1]
        type: u8
      - name: outer_first_mpls_over_udp_ttl[0x8]
        type: u8
      - name: metadata_reg_c_7[0x20]
        type: u8
      - name: metadata_reg_c_6[0x20]
        type: u8
      - name: metadata_reg_c_5[0x20]
        type: u8
      - name: metadata_reg_c_4[0x20]
        type: u8
      - name: metadata_reg_c_3[0x20]
        type: u8
      - name: metadata_reg_c_2[0x20]
        type: u8
      - name: metadata_reg_c_1[0x20]
        type: u8
      - name: metadata_reg_c_0[0x20]
        type: u8
      - name: metadata_reg_a[0x20]
        type: u8
      - name: metadata_reg_b[0x20]
        type: u8
      - name: reserved_at_260[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_dr_match_set_misc2_bits
      pos:
        line_end: 651
        line_start: 617
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: inner_tcp_seq_num[0x20]
        type: u8
      - name: outer_tcp_seq_num[0x20]
        type: u8
      - name: inner_tcp_ack_num[0x20]
        type: u8
      - name: outer_tcp_ack_num[0x20]
        type: u8
      - name: reserved_at_80[0x8]
        type: u8
      - name: outer_vxlan_gpe_vni[0x18]
        type: u8
      - name: outer_vxlan_gpe_next_protocol[0x8]
        type: u8
      - name: outer_vxlan_gpe_flags[0x8]
        type: u8
      - name: reserved_at_b0[0x10]
        type: u8
      - name: icmp_header_data[0x20]
        type: u8
      - name: icmpv6_header_data[0x20]
        type: u8
      - name: icmp_type[0x8]
        type: u8
      - name: icmp_code[0x8]
        type: u8
      - name: icmpv6_type[0x8]
        type: u8
      - name: icmpv6_code[0x8]
        type: u8
      - name: geneve_tlv_option_0_data[0x20]
        type: u8
      - name: gtpu_teid[0x20]
        type: u8
      - name: gtpu_msg_type[0x8]
        type: u8
      - name: gtpu_msg_flags[0x8]
        type: u8
      - name: reserved_at_150[0x10]
        type: u8
      - name: gtpu_dw_2[0x20]
        type: u8
      - name: gtpu_first_ext_dw_0[0x20]
        type: u8
      - name: gtpu_dw_0[0x20]
        type: u8
      - name: reserved_at_1c0[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dr_match_set_misc3_bits
      pos:
        line_end: 693
        line_start: 653
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: prog_sample_field_value_0[0x20]
        type: u8
      - name: prog_sample_field_id_0[0x20]
        type: u8
      - name: prog_sample_field_value_1[0x20]
        type: u8
      - name: prog_sample_field_id_1[0x20]
        type: u8
      - name: prog_sample_field_value_2[0x20]
        type: u8
      - name: prog_sample_field_id_2[0x20]
        type: u8
      - name: prog_sample_field_value_3[0x20]
        type: u8
      - name: prog_sample_field_id_3[0x20]
        type: u8
      - name: prog_sample_field_value_4[0x20]
        type: u8
      - name: prog_sample_field_id_4[0x20]
        type: u8
      - name: prog_sample_field_value_5[0x20]
        type: u8
      - name: prog_sample_field_id_5[0x20]
        type: u8
      - name: prog_sample_field_value_6[0x20]
        type: u8
      - name: prog_sample_field_id_6[0x20]
        type: u8
      - name: prog_sample_field_value_7[0x20]
        type: u8
      - name: prog_sample_field_id_7[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dr_match_set_misc4_bits
      pos:
        line_end: 727
        line_start: 695
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: macsec_tag_0[0x20]
        type: u8
      - name: macsec_tag_1[0x20]
        type: u8
      - name: macsec_tag_2[0x20]
        type: u8
      - name: macsec_tag_3[0x20]
        type: u8
      - name: tunnel_header_0[0x20]
        type: u8
      - name: tunnel_header_1[0x20]
        type: u8
      - name: tunnel_header_2[0x20]
        type: u8
      - name: tunnel_header_3[0x20]
        type: u8
      - name: reserved[0x100]
        type: u8
      item_type: struct
      name: mlx5_ifc_dr_match_set_misc5_bits
      pos:
        line_end: 747
        line_start: 729
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: outer
        type: struct mlx5_ifc_dr_match_spec_bits
      - name: misc
        type: struct mlx5_ifc_dr_match_set_misc_bits
      - name: inner
        type: struct mlx5_ifc_dr_match_spec_bits
      - name: misc2
        type: struct mlx5_ifc_dr_match_set_misc2_bits
      - name: misc3
        type: struct mlx5_ifc_dr_match_set_misc3_bits
      - name: misc4
        type: struct mlx5_ifc_dr_match_set_misc4_bits
      - name: misc5
        type: struct mlx5_ifc_dr_match_set_misc5_bits
      item_type: struct
      name: mlx5_ifc_dr_match_param_bits
      pos:
        line_end: 757
        line_start: 749
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: ft_support[0x1]
        type: u8
      - name: flow_tag[0x1]
        type: u8
      - name: flow_counter[0x1]
        type: u8
      - name: flow_modify_en[0x1]
        type: u8
      - name: modify_root[0x1]
        type: u8
      - name: identified_miss_table[0x1]
        type: u8
      - name: flow_table_modify[0x1]
        type: u8
      - name: reformat[0x1]
        type: u8
      - name: decap[0x1]
        type: u8
      - name: reset_root_to_default[0x1]
        type: u8
      - name: pop_vlan[0x1]
        type: u8
      - name: push_vlan[0x1]
        type: u8
      - name: fpga_vendor_acceleration[0x1]
        type: u8
      - name: pop_vlan_2[0x1]
        type: u8
      - name: push_vlan_2[0x1]
        type: u8
      - name: reformat_and_vlan_action[0x1]
        type: u8
      - name: modify_and_vlan_action[0x1]
        type: u8
      - name: sw_owner[0x1]
        type: u8
      - name: reformat_l3_tunnel_to_l2[0x1]
        type: u8
      - name: reformat_l2_to_l3_tunnel[0x1]
        type: u8
      - name: reformat_and_modify_action[0x1]
        type: u8
      - name: reserved_at_15[0x9]
        type: u8
      - name: sw_owner_v2[0x1]
        type: u8
      - name: reserved_at_1f[0x1]
        type: u8
      - name: reserved_at_20[0x2]
        type: u8
      - name: log_max_ft_size[0x6]
        type: u8
      - name: log_max_modify_header_context[0x8]
        type: u8
      - name: max_modify_header_actions[0x8]
        type: u8
      - name: max_ft_level[0x8]
        type: u8
      - name: reserved_at_40[0x10]
        type: u8
      - name: metadata_reg_b_width[0x8]
        type: u8
      - name: metadata_reg_a_width[0x8]
        type: u8
      - name: reserved_at_60[0x18]
        type: u8
      - name: log_max_ft_num[0x8]
        type: u8
      - name: reserved_at_80[0x10]
        type: u8
      - name: log_max_flow_counter[0x8]
        type: u8
      - name: log_max_destination[0x8]
        type: u8
      - name: reserved_at_a0[0x18]
        type: u8
      - name: log_max_flow[0x8]
        type: u8
      - name: reserved_at_c0[0x40]
        type: u8
      - name: ft_field_support
        type: struct mlx5_ifc_flow_table_fields_supported_bits
      - name: ft_field_bitmask_support
        type: struct mlx5_ifc_flow_table_fields_supported_bits
      item_type: struct
      name: mlx5_ifc_flow_table_prop_layout_bits
      pos:
        line_end: 810
        line_start: 759
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: access_other_hca_roce[0x1]
        type: u8
      - name: reserved_at_1[0x1e]
        type: u8
      - name: vhca_resource_manager[0x1]
        type: u8
      - name: hca_cap_2[0x1]
        type: u8
      - name: reserved_at_21[0xf]
        type: u8
      - name: vhca_id[0x10]
        type: u8
      - name: reserved_at_40[0x20]
        type: u8
      - name: reserved_at_60[0x2]
        type: u8
      - name: qp_data_in_order[0x1]
        type: u8
      - name: reserved_at_63[0x8]
        type: u8
      - name: log_dma_mmo_max_size[0x5]
        type: u8
      - name: reserved_at_70[0x10]
        type: u8
      - name: log_max_srq_sz[0x8]
        type: u8
      - name: log_max_qp_sz[0x8]
        type: u8
      - name: reserved_at_90[0x3]
        type: u8
      - name: isolate_vl_tc_new[0x1]
        type: u8
      - name: reserved_at_94[0x4]
        type: u8
      - name: prio_tag_required[0x1]
        type: u8
      - name: reserved_at_99[0x2]
        type: u8
      - name: log_max_qp[0x5]
        type: u8
      - name: reserved_at_a0[0xb]
        type: u8
      - name: log_max_srq[0x5]
        type: u8
      - name: reserved_at_b0[0x10]
        type: u8
      - name: reserved_at_c0[0x8]
        type: u8
      - name: log_max_cq_sz[0x8]
        type: u8
      - name: reserved_at_d0[0xb]
        type: u8
      - name: log_max_cq[0x5]
        type: u8
      - name: log_max_eq_sz[0x8]
        type: u8
      - name: relaxed_ordering_write[0x1]
        type: u8
      - name: reserved_at_e9[0x1]
        type: u8
      - name: log_max_mkey[0x6]
        type: u8
      - name: tunneled_atomic[0x1]
        type: u8
      - name: as_notify[0x1]
        type: u8
      - name: m_pci_port[0x1]
        type: u8
      - name: m_vhca_mk[0x1]
        type: u8
      - name: cmd_on_behalf[0x1]
        type: u8
      - name: device_emulation_manager[0x1]
        type: u8
      - name: terminate_scatter_list_mkey[0x1]
        type: u8
      - name: repeated_mkey[0x1]
        type: u8
      - name: dump_fill_mkey[0x1]
        type: u8
      - name: reserved_at_f9[0x3]
        type: u8
      - name: log_max_eq[0x4]
        type: u8
      - name: max_indirection[0x8]
        type: u8
      - name: fixed_buffer_size[0x1]
        type: u8
      - name: log_max_mrw_sz[0x7]
        type: u8
      - name: force_teardown[0x1]
        type: u8
      - name: fast_teardown[0x1]
        type: u8
      - name: log_max_bsf_list_size[0x6]
        type: u8
      - name: umr_extended_translation_offset[0x1]
        type: u8
      - name: null_mkey[0x1]
        type: u8
      - name: log_max_klm_list_size[0x6]
        type: u8
      - name: reserved_at_120[0x2]
        type: u8
      - name: qpc_extension[0x1]
        type: u8
      - name: reserved_at_123[0x7]
        type: u8
      - name: log_max_ra_req_dc[0x6]
        type: u8
      - name: reserved_at_130[0xa]
        type: u8
      - name: log_max_ra_res_dc[0x6]
        type: u8
      - name: reserved_at_140[0x7]
        type: u8
      - name: sig_crc64_xp10[0x1]
        type: u8
      - name: sig_crc32c[0x1]
        type: u8
      - name: reserved_at_149[0x1]
        type: u8
      - name: log_max_ra_req_qp[0x6]
        type: u8
      - name: reserved_at_150[0x1]
        type: u8
      - name: rts2rts_qp_udp_sport[0x1]
        type: u8
      - name: rts2rts_lag_tx_port_affinity[0x1]
        type: u8
      - name: dma_mmo_sq[0x1]
        type: u8
      - name: reserved_at_154[0x6]
        type: u8
      - name: log_max_ra_res_qp[0x6]
        type: u8
      - name: end_pad[0x1]
        type: u8
      - name: cc_query_allowed[0x1]
        type: u8
      - name: cc_modify_allowed[0x1]
        type: u8
      - name: start_pad[0x1]
        type: u8
      - name: cache_line_128byte[0x1]
        type: u8
      - name: gid_table_size_ro[0x1]
        type: u8
      - name: pkey_table_size_ro[0x1]
        type: u8
      - name: reserved_at_167[0x1]
        type: u8
      - name: rnr_nak_q_counters[0x1]
        type: u8
      - name: rts2rts_qp_counters_set_id[0x1]
        type: u8
      - name: rts2rts_qp_dscp[0x1]
        type: u8
      - name: reserved_at_16b[0x4]
        type: u8
      - name: qcam_reg[0x1]
        type: u8
      - name: gid_table_size[0x10]
        type: u8
      - name: out_of_seq_cnt[0x1]
        type: u8
      - name: vport_counters[0x1]
        type: u8
      - name: retransmission_q_counters[0x1]
        type: u8
      - name: debug[0x1]
        type: u8
      - name: modify_rq_counters_set_id[0x1]
        type: u8
      - name: rq_delay_drop[0x1]
        type: u8
      - name: max_qp_cnt[0xa]
        type: u8
      - name: pkey_table_size[0x10]
        type: u8
      - name: vport_group_manager[0x1]
        type: u8
      - name: vhca_group_manager[0x1]
        type: u8
      - name: ib_virt[0x1]
        type: u8
      - name: eth_virt[0x1]
        type: u8
      - name: vnic_env_queue_counters[0x1]
        type: u8
      - name: ets[0x1]
        type: u8
      - name: nic_flow_table[0x1]
        type: u8
      - name: eswitch_manager[0x1]
        type: u8
      - name: device_memory[0x1]
        type: u8
      - name: mcam_reg[0x1]
        type: u8
      - name: pcam_reg[0x1]
        type: u8
      - name: local_ca_ack_delay[0x5]
        type: u8
      - name: port_module_event[0x1]
        type: u8
      - name: enhanced_retransmission_q_counters[0x1]
        type: u8
      - name: port_checks[0x1]
        type: u8
      - name: pulse_gen_control[0x1]
        type: u8
      - name: disable_link_up_by_init_hca[0x1]
        type: u8
      - name: beacon_led[0x1]
        type: u8
      - name: port_type[0x2]
        type: u8
      - name: num_ports[0x8]
        type: u8
      - name: reserved_at_1c0[0x1]
        type: u8
      - name: pps[0x1]
        type: u8
      - name: pps_modify[0x1]
        type: u8
      - name: log_max_msg[0x5]
        type: u8
      - name: multi_path_xrc_rdma[0x1]
        type: u8
      - name: multi_path_dc_rdma[0x1]
        type: u8
      - name: multi_path_rc_rdma[0x1]
        type: u8
      - name: traffic_fast_control[0x1]
        type: u8
      - name: max_tc[0x4]
        type: u8
      - name: temp_warn_event[0x1]
        type: u8
      - name: dcbx[0x1]
        type: u8
      - name: general_notification_event[0x1]
        type: u8
      - name: multi_prio_sq[0x1]
        type: u8
      - name: afu_owner[0x1]
        type: u8
      - name: fpga[0x1]
        type: u8
      - name: rol_s[0x1]
        type: u8
      - name: rol_g[0x1]
        type: u8
      - name: ib_port_sniffer[0x1]
        type: u8
      - name: wol_s[0x1]
        type: u8
      - name: wol_g[0x1]
        type: u8
      - name: wol_a[0x1]
        type: u8
      - name: wol_b[0x1]
        type: u8
      - name: wol_m[0x1]
        type: u8
      - name: wol_u[0x1]
        type: u8
      - name: wol_p[0x1]
        type: u8
      - name: stat_rate_support[0x10]
        type: u8
      - name: sig_block_4048[0x1]
        type: u8
      - name: reserved_at_1f1[0xb]
        type: u8
      - name: cqe_version[0x4]
        type: u8
      - name: compact_address_vector[0x1]
        type: u8
      - name: eth_striding_wq[0x1]
        type: u8
      - name: reserved_at_202[0x1]
        type: u8
      - name: ipoib_enhanced_offloads[0x1]
        type: u8
      - name: ipoib_basic_offloads[0x1]
        type: u8
      - name: ib_striding_wq[0x1]
        type: u8
      - name: repeated_block_disabled[0x1]
        type: u8
      - name: umr_modify_entity_size_disabled[0x1]
        type: u8
      - name: umr_modify_atomic_disabled[0x1]
        type: u8
      - name: umr_indirect_mkey_disabled[0x1]
        type: u8
      - name: umr_fence[0x2]
        type: u8
      - name: dc_req_sctr_data_cqe[0x1]
        type: u8
      - name: dc_connect_qp[0x1]
        type: u8
      - name: dc_cnak_trace[0x1]
        type: u8
      - name: drain_sigerr[0x1]
        type: u8
      - name: cmdif_checksum[0x2]
        type: u8
      - name: sigerr_cqe[0x1]
        type: u8
      - name: reserved_at_213[0x1]
        type: u8
      - name: wq_signature[0x1]
        type: u8
      - name: sctr_data_cqe[0x1]
        type: u8
      - name: reserved_at_216[0x1]
        type: u8
      - name: sho[0x1]
        type: u8
      - name: tph[0x1]
        type: u8
      - name: rf[0x1]
        type: u8
      - name: dct[0x1]
        type: u8
      - name: qos[0x1]
        type: u8
      - name: eth_net_offloads[0x1]
        type: u8
      - name: roce[0x1]
        type: u8
      - name: atomic[0x1]
        type: u8
      - name: extended_retry_count[0x1]
        type: u8
      - name: cq_oi[0x1]
        type: u8
      - name: cq_resize[0x1]
        type: u8
      - name: cq_moderation[0x1]
        type: u8
      - name: cq_period_mode_modify[0x1]
        type: u8
      - name: cq_invalidate[0x1]
        type: u8
      - name: reserved_at_225[0x1]
        type: u8
      - name: cq_eq_remap[0x1]
        type: u8
      - name: pg[0x1]
        type: u8
      - name: block_lb_mc[0x1]
        type: u8
      - name: exponential_backoff[0x1]
        type: u8
      - name: scqe_break_moderation[0x1]
        type: u8
      - name: cq_period_start_from_cqe[0x1]
        type: u8
      - name: cd[0x1]
        type: u8
      - name: atm[0x1]
        type: u8
      - name: apm[0x1]
        type: u8
      - name: vector_calc[0x1]
        type: u8
      - name: umr_ptr_rlkey[0x1]
        type: u8
      - name: imaicl[0x1]
        type: u8
      - name: qp_packet_based[0x1]
        type: u8
      - name: reserved_at_233[0x1]
        type: u8
      - name: ipoib_enhanced_pkey_change[0x1]
        type: u8
      - name: initiator_src_dct_in_cqe[0x1]
        type: u8
      - name: qkv[0x1]
        type: u8
      - name: pkv[0x1]
        type: u8
      - name: set_deth_sqpn[0x1]
        type: u8
      - name: rts2rts_primary_sl[0x1]
        type: u8
      - name: initiator_src_dct[0x1]
        type: u8
      - name: dc_v2[0x1]
        type: u8
      - name: xrc[0x1]
        type: u8
      - name: ud[0x1]
        type: u8
      - name: uc[0x1]
        type: u8
      - name: rc[0x1]
        type: u8
      - name: uar_4k[0x1]
        type: u8
      - name: reserved_at_241[0x9]
        type: u8
      - name: uar_sz[0x6]
        type: u8
      - name: reserved_at_250[0x2]
        type: u8
      - name: umem_uid_0[0x1]
        type: u8
      - name: log_max_dc_cnak_qps[0x5]
        type: u8
      - name: log_pg_sz[0x8]
        type: u8
      - name: bf[0x1]
        type: u8
      - name: driver_version[0x1]
        type: u8
      - name: pad_tx_eth_packet[0x1]
        type: u8
      - name: query_driver_version[0x1]
        type: u8
      - name: max_qp_retry_freq[0x1]
        type: u8
      - name: qp_by_name[0x1]
        type: u8
      - name: mkey_by_name[0x1]
        type: u8
      - name: reserved_at_267[0x1]
        type: u8
      - name: suspend_qp_uc[0x1]
        type: u8
      - name: suspend_qp_ud[0x1]
        type: u8
      - name: suspend_qp_rc[0x1]
        type: u8
      - name: log_bf_reg_size[0x5]
        type: u8
      - name: reserved_at_270[0x6]
        type: u8
      - name: lag_dct[0x2]
        type: u8
      - name: lag_tx_port_affinity[0x1]
        type: u8
      - name: reserved_at_279[0x2]
        type: u8
      - name: lag_master[0x1]
        type: u8
      - name: num_lag_ports[0x4]
        type: u8
      - name: num_of_diagnostic_counters[0x10]
        type: u8
      - name: max_wqe_sz_sq[0x10]
        type: u8
      - name: reserved_at_2a0[0x10]
        type: u8
      - name: max_wqe_sz_rq[0x10]
        type: u8
      - name: max_flow_counter_31_16[0x10]
        type: u8
      - name: max_wqe_sz_sq_dc[0x10]
        type: u8
      - name: reserved_at_2e0[0x7]
        type: u8
      - name: max_qp_mcg[0x19]
        type: u8
      - name: mlnx_tag_ethertype[0x10]
        type: u8
      - name: reserved_at_310[0x8]
        type: u8
      - name: log_max_mcg[0x8]
        type: u8
      - name: reserved_at_320[0x3]
        type: u8
      - name: log_max_transport_domain[0x5]
        type: u8
      - name: reserved_at_328[0x3]
        type: u8
      - name: log_max_pd[0x5]
        type: u8
      - name: reserved_at_330[0xb]
        type: u8
      - name: log_max_xrcd[0x5]
        type: u8
      - name: nic_receive_steering_discard[0x1]
        type: u8
      - name: receive_discard_vport_down[0x1]
        type: u8
      - name: transmit_discard_vport_down[0x1]
        type: u8
      - name: eq_overrun_count[0x1]
        type: u8
      - name: nic_receive_steering_depth[0x1]
        type: u8
      - name: invalid_command_count[0x1]
        type: u8
      - name: quota_exceeded_count[0x1]
        type: u8
      - name: reserved_at_347[0x1]
        type: u8
      - name: log_max_flow_counter_bulk[0x8]
        type: u8
      - name: max_flow_counter_15_0[0x10]
        type: u8
      - name: modify_tis[0x1]
        type: u8
      - name: reserved_at_361[0x2]
        type: u8
      - name: log_max_rq[0x5]
        type: u8
      - name: reserved_at_368[0x3]
        type: u8
      - name: log_max_sq[0x5]
        type: u8
      - name: reserved_at_370[0x3]
        type: u8
      - name: log_max_tir[0x5]
        type: u8
      - name: reserved_at_378[0x3]
        type: u8
      - name: log_max_tis[0x5]
        type: u8
      - name: basic_cyclic_rcv_wqe[0x1]
        type: u8
      - name: reserved_at_381[0x2]
        type: u8
      - name: log_max_rmp[0x5]
        type: u8
      - name: reserved_at_388[0x3]
        type: u8
      - name: log_max_rqt[0x5]
        type: u8
      - name: reserved_at_390[0x3]
        type: u8
      - name: log_max_rqt_size[0x5]
        type: u8
      - name: reserved_at_398[0x3]
        type: u8
      - name: log_max_tis_per_sq[0x5]
        type: u8
      - name: ext_stride_num_range[0x1]
        type: u8
      - name: reserved_at_3a1[0x2]
        type: u8
      - name: log_max_stride_sz_rq[0x5]
        type: u8
      - name: reserved_at_3a8[0x3]
        type: u8
      - name: log_min_stride_sz_rq[0x5]
        type: u8
      - name: reserved_at_3b0[0x3]
        type: u8
      - name: log_max_stride_sz_sq[0x5]
        type: u8
      - name: reserved_at_3b8[0x3]
        type: u8
      - name: log_min_stride_sz_sq[0x5]
        type: u8
      - name: hairpin[0x1]
        type: u8
      - name: reserved_at_3c1[0x2]
        type: u8
      - name: log_max_hairpin_queues[0x5]
        type: u8
      - name: reserved_at_3c8[0x3]
        type: u8
      - name: log_max_hairpin_wq_data_sz[0x5]
        type: u8
      - name: reserved_at_3d0[0x3]
        type: u8
      - name: log_max_hairpin_num_packets[0x5]
        type: u8
      - name: reserved_at_3d8[0x3]
        type: u8
      - name: log_max_wq_sz[0x5]
        type: u8
      - name: nic_vport_change_event[0x1]
        type: u8
      - name: disable_local_lb_uc[0x1]
        type: u8
      - name: disable_local_lb_mc[0x1]
        type: u8
      - name: log_min_hairpin_wq_data_sz[0x5]
        type: u8
      - name: reserved_at_3e8[0x3]
        type: u8
      - name: log_max_vlan_list[0x5]
        type: u8
      - name: reserved_at_3f0[0x3]
        type: u8
      - name: log_max_current_mc_list[0x5]
        type: u8
      - name: reserved_at_3f8[0x3]
        type: u8
      - name: log_max_current_uc_list[0x5]
        type: u8
      - name: general_obj_types[0x40]
        type: u8
      - name: reserved_at_440[0x4]
        type: u8
      - name: steering_format_version[0x4]
        type: u8
      - name: create_qp_start_hint[0x18]
        type: u8
      - name: reserved_at_460[0x8]
        type: u8
      - name: aes_xts[0x1]
        type: u8
      - name: crypto[0x1]
        type: u8
      - name: reserved_at_46a[0x6]
        type: u8
      - name: max_num_eqs[0x10]
        type: u8
      - name: sigerr_domain_and_sig_type[0x1]
        type: u8
      - name: reserved_at_481[0x2]
        type: u8
      - name: log_max_l2_table[0x5]
        type: u8
      - name: reserved_at_488[0x8]
        type: u8
      - name: log_uar_page_sz[0x10]
        type: u8
      - name: reserved_at_4a0[0x20]
        type: u8
      - name: device_frequency_mhz[0x20]
        type: u8
      - name: device_frequency_khz[0x20]
        type: u8
      - name: capi[0x1]
        type: u8
      - name: create_pec[0x1]
        type: u8
      - name: nvmf_target_offload[0x1]
        type: u8
      - name: capi_invalidate[0x1]
        type: u8
      - name: reserved_at_504[0x17]
        type: u8
      - name: log_max_pasid[0x5]
        type: u8
      - name: num_of_uars_per_page[0x20]
        type: u8
      - name: flex_parser_protocols[0x20]
        type: u8
      - name: reserved_at_560[0x10]
        type: u8
      - name: flex_parser_header_modify[0x1]
        type: u8
      - name: reserved_at_571[0x2]
        type: u8
      - name: log_max_guaranteed_connections[0x5]
        type: u8
      - name: reserved_at_578[0x3]
        type: u8
      - name: log_max_dct_connections[0x5]
        type: u8
      - name: log_max_atomic_size_qp[0x8]
        type: u8
      - name: reserved_at_588[0x10]
        type: u8
      - name: log_max_atomic_size_dc[0x8]
        type: u8
      - name: reserved_at_5a0[0x1c]
        type: u8
      - name: mini_cqe_resp_stride_index[0x1]
        type: u8
      - name: cqe_128_always[0x1]
        type: u8
      - name: cqe_compression_128b[0x1]
        type: u8
      - name: cqe_compression[0x1]
        type: u8
      - name: cqe_compression_timeout[0x10]
        type: u8
      - name: cqe_compression_max_num[0x10]
        type: u8
      - name: reserved_at_5e0[0x8]
        type: u8
      - name: flex_parser_id_gtpu_dw_0[0x4]
        type: u8
      - name: log_max_tm_offloaded_op_size[0x4]
        type: u8
      - name: tag_matching[0x1]
        type: u8
      - name: rndv_offload_rc[0x1]
        type: u8
      - name: rndv_offload_dc[0x1]
        type: u8
      - name: log_tag_matching_list_sz[0x5]
        type: u8
      - name: reserved_at_5f8[0x3]
        type: u8
      - name: log_max_xrq[0x5]
        type: u8
      - name: affiliate_nic_vport_criteria[0x8]
        type: u8
      - name: native_port_num[0x8]
        type: u8
      - name: num_vhca_ports[0x8]
        type: u8
      - name: flex_parser_id_gtpu_teid[0x4]
        type: u8
      - name: reserved_at_61c[0x1]
        type: u8
      - name: trusted_vnic_vhca[0x1]
        type: u8
      - name: sw_owner_id[0x1]
        type: u8
      - name: reserve_not_to_use[0x1]
        type: u8
      - name: reserved_at_620[0x60]
        type: u8
      - name: sf[0x1]
        type: u8
      - name: reserved_at_682[0x43]
        type: u8
      - name: flex_parser_id_geneve_opt_0[0x4]
        type: u8
      - name: flex_parser_id_icmp_dw1[0x4]
        type: u8
      - name: flex_parser_id_icmp_dw0[0x4]
        type: u8
      - name: flex_parser_id_icmpv6_dw1[0x4]
        type: u8
      - name: flex_parser_id_icmpv6_dw0[0x4]
        type: u8
      - name: flex_parser_id_outer_first_mpls_over_gre[0x4]
        type: u8
      - name: flex_parser_id_outer_first_mpls_over_udp_label[0x4]
        type: u8
      - name: reserved_at_6e0[0x20]
        type: u8
      - name: flex_parser_id_gtpu_dw_2[0x4]
        type: u8
      - name: flex_parser_id_gtpu_first_ext_dw_0[0x4]
        type: u8
      - name: reserved_at_708[0x18]
        type: u8
      - name: reserved_at_720[0x20]
        type: u8
      - name: reserved_at_740[0x8]
        type: u8
      - name: dma_mmo_qp[0x1]
        type: u8
      - name: reserved_at_749[0x17]
        type: u8
      - name: reserved_at_760[0x60]
        type: u8
      - name: match_definer_format_supported[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_cmd_hca_cap_bits
      pos:
        line_end: 1267
        line_start: 836
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: set_action_field_support
        type: struct mlx5_ifc_flow_table_fields_supported_bits
      - name: reserved_at_80[0x80]
        type: u8
      - name: add_action_field_support
        type: struct mlx5_ifc_flow_table_fields_supported_bits
      - name: reserved_at_180[0x80]
        type: u8
      - name: copy_action_field_support[8][0x20]
        type: u8
      - name: reserved_at_300[0x100]
        type: u8
      item_type: struct
      name: mlx5_ifc_header_modify_cap_properties_bits
      pos:
        line_end: 1281
        line_start: 1269
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x17]
        type: u8
      - name: inner_l3_ok[0x1]
        type: u8
      - name: inner_l4_ok[0x1]
        type: u8
      - name: outer_l3_ok[0x1]
        type: u8
      - name: outer_l4_ok[0x1]
        type: u8
      - name: psp_header[0x1]
        type: u8
      - name: inner_ipv4_checksum_ok[0x1]
        type: u8
      - name: inner_l4_checksum_ok[0x1]
        type: u8
      - name: outer_ipv4_checksum_ok[0x1]
        type: u8
      - name: outer_l4_checksum_ok[0x1]
        type: u8
      - name: reserved_at_20[0x60]
        type: u8
      item_type: struct
      name: mlx5_ifc_flow_table_fields_supported_2_bits
      pos:
        line_end: 1296
        line_start: 1283
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: nic_rx_multi_path_tirs[0x1]
        type: u8
      - name: nic_rx_multi_path_tirs_fts[0x1]
        type: u8
      - name: allow_sniffer_and_nic_rx_shared_tir[0x1]
        type: u8
      - name: reserved_at_3[0x1]
        type: u8
      - name: nic_rx_flow_tag_multipath_en[0x1]
        type: u8
      - name: reserved_at_5[0x13]
        type: u8
      - name: nic_receive_max_steering_depth[0x8]
        type: u8
      - name: encap_general_header[0x1]
        type: u8
      - name: reserved_at_21[0xa]
        type: u8
      - name: log_max_packet_reformat_context[0x5]
        type: u8
      - name: reserved_at_30[0x6]
        type: u8
      - name: max_encap_header_size[0xa]
        type: u8
      - name: reserved_at_40[0x1c0]
        type: u8
      - name: flow_table_properties_nic_receive
        type: struct mlx5_ifc_flow_table_prop_layout_bits
      - name: flow_table_properties_nic_receive_rdma
        type: struct mlx5_ifc_flow_table_prop_layout_bits
      - name: flow_table_properties_nic_receive_sniffer
        type: struct mlx5_ifc_flow_table_prop_layout_bits
      - name: flow_table_properties_nic_transmit
        type: struct mlx5_ifc_flow_table_prop_layout_bits
      - name: flow_table_properties_nic_transmit_rdma
        type: struct mlx5_ifc_flow_table_prop_layout_bits
      - name: flow_table_properties_nic_transmit_sniffer
        type: struct mlx5_ifc_flow_table_prop_layout_bits
      - name: reserved_at_e00[0x200]
        type: u8
      - name: header_modify_nic_receive
        type: struct mlx5_ifc_header_modify_cap_properties_bits
      - name: ft_field_support_2_nic_receive
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: ft_field_bitmask_support_2_nic_receive
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: ft_field_support_2_nic_receive_rdma
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: ft_field_bitmask_support_2_nic_receive_rdma
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: ft_field_support_2_nic_receive_sniffer
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: ft_field_bitmask_support_2_nic_receive_sniffer
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: ft_field_support_2_nic_transmit
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: ft_field_bitmask_support_2_nic_transmit
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: ft_field_support_2_nic_transmit_rdma
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: ft_field_bitmask_support_2_nic_transmit_rdma
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: ft_field_support_2_nic_transmit_sniffer
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: ft_field_bitmask_support_2_nic_transmit_sniffer
        type: struct mlx5_ifc_flow_table_fields_supported_2_bits
      - name: reserved_at_1400[0x200]
        type: u8
      - name: header_modify_nic_transmit
        type: struct mlx5_ifc_header_modify_cap_properties_bits
      - name: sw_steering_nic_rx_action_drop_icm_address[0x40]
        type: u8
      - name: sw_steering_nic_tx_action_drop_icm_address[0x40]
        type: u8
      - name: sw_steering_nic_tx_action_allow_icm_address[0x40]
        type: u8
      - name: reserved_at_20c0[0x5f40]
        type: u8
      item_type: struct
      name: mlx5_ifc_flow_table_nic_cap_bits
      pos:
        line_end: 1368
        line_start: 1298
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x1c]
        type: u8
      - name: fdb_multi_path_to_table[0x1]
        type: u8
      - name: reserved_at_1d[0x1e3]
        type: u8
      - name: flow_table_properties_nic_esw_fdb
        type: struct mlx5_ifc_flow_table_prop_layout_bits
      - name: flow_table_properties_esw_acl_ingress
        type: struct mlx5_ifc_flow_table_prop_layout_bits
      - name: flow_table_properties_esw_acl_egress
        type: struct mlx5_ifc_flow_table_prop_layout_bits
      - name: reserved_at_800[0x1000]
        type: u8
      - name: sw_steering_fdb_action_drop_icm_address_rx[0x40]
        type: u8
      - name: sw_steering_fdb_action_drop_icm_address_tx[0x40]
        type: u8
      - name: sw_steering_uplink_icm_address_rx[0x40]
        type: u8
      - name: sw_steering_uplink_icm_address_tx[0x40]
        type: u8
      - name: reserved_at_1900[0x6700]
        type: u8
      item_type: struct
      name: mlx5_ifc_flow_table_eswitch_cap_bits
      pos:
        line_end: 1389
        line_start: 1370
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: send[0x1]
        type: u8
      - name: receive[0x1]
        type: u8
      - name: write[0x1]
        type: u8
      - name: read[0x1]
        type: u8
      - name: atomic[0x1]
        type: u8
      - name: srq_receive[0x1]
        type: u8
      - name: reserved_at_6[0x1a]
        type: u8
      item_type: struct
      name: mlx5_ifc_odp_per_transport_service_cap_bits
      pos:
        line_end: 1399
        line_start: 1391
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: sig[0x1]
        type: u8
      - name: reserved_at_41[0x1f]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: rc_odp_caps
        type: struct mlx5_ifc_odp_per_transport_service_cap_bits
      - name: uc_odp_caps
        type: struct mlx5_ifc_odp_per_transport_service_cap_bits
      - name: ud_odp_caps
        type: struct mlx5_ifc_odp_per_transport_service_cap_bits
      - name: xrc_odp_caps
        type: struct mlx5_ifc_odp_per_transport_service_cap_bits
      - name: dc_odp_caps
        type: struct mlx5_ifc_odp_per_transport_service_cap_bits
      - name: reserved_at_120[0x6e0]
        type: u8
      item_type: struct
      name: mlx5_ifc_odp_cap_bits
      pos:
        line_end: 1420
        line_start: 1401
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x4b]
        type: u8
      - name: log_max_esw_sf[0x5]
        type: u8
      - name: esw_sf_base_id[0x10]
        type: u8
      - name: reserved_at_60[0x7a0]
        type: u8
      item_type: struct
      name: mlx5_ifc_e_switch_cap_bits
      pos:
        line_end: 1427
        line_start: 1422
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x8]
        type: u8
      - name: nic_sq_scheduling[0x1]
        type: u8
      - name: nic_bw_share[0x1]
        type: u8
      - name: nic_rate_limit[0x1]
        type: u8
      - name: reserved_at_b[0x15]
        type: u8
      - name: reserved_at_20[0x1]
        type: u8
      - name: nic_qp_scheduling[0x1]
        type: u8
      - name: reserved_at_22[0x1e]
        type: u8
      - name: reserved_at_40[0xc0]
        type: u8
      - name: nic_element_type[0x10]
        type: u8
      - name: nic_tsar_type[0x10]
        type: u8
      - name: reserved_at_120[0x6e0]
        type: u8
      item_type: struct
      name: mlx5_ifc_qos_cap_bits
      pos:
        line_end: 1455
        line_start: 1438
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x80]
        type: u8
      - name: reserved_at_80[0x13]
        type: u8
      - name: log_reserved_qpn_granularity[0x5]
        type: u8
      - name: reserved_at_98[0x8]
        type: u8
      - name: reserved_at_a0[0x240]
        type: u8
      - name: reserved_at_2e0[0x1]
        type: u8
      - name: send_dbr_mode_no_dbr_ext[0x1]
        type: u8
      - name: reserved_at_2e2[0x1e]
        type: u8
      - name: reserved_at_300[0x500]
        type: u8
      item_type: struct
      name: mlx5_ifc_cmd_hca_cap_2_bits
      pos:
        line_end: 1471
        line_start: 1457
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: wrapped_crypto_operational[0x1]
        type: u8
      - name: wrapped_crypto_going_to_commissioning[0x1]
        type: u8
      - name: reserved_at_2[0x16]
        type: u8
      - name: wrapped_import_method[0x8]
        type: u8
      - name: reserved_at_20[0xb]
        type: u8
      - name: log_max_num_deks[0x5]
        type: u8
      - name: reserved_at_30[0x3]
        type: u8
      - name: log_max_num_import_keks[0x5]
        type: u8
      - name: reserved_at_38[0x3]
        type: u8
      - name: log_max_num_creds[0x5]
        type: u8
      - name: failed_selftests[0x10]
        type: u8
      - name: num_nv_import_keks[0x8]
        type: u8
      - name: num_nv_credentials[0x8]
        type: u8
      - name: reserved_at_60[0x7a0]
        type: u8
      item_type: struct
      name: mlx5_ifc_crypto_caps_bits
      pos:
        line_end: 1495
        line_start: 1477
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: capability
        type: union mlx5_ifc_hca_cap_union_bits
      item_type: struct
      name: mlx5_ifc_query_hca_cap_out_bits
      pos:
        line_end: 1521
        line_start: 1512
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: other_function[0x1]
        type: u8
      - name: reserved_at_41[0xf]
        type: u8
      - name: function_id[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_hca_cap_in_bits
      pos:
        line_end: 1535
        line_start: 1523
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x1]
        type: u8
      - name: free[0x1]
        type: u8
      - name: reserved_at_2[0x1]
        type: u8
      - name: access_mode_4_2[0x3]
        type: u8
      - name: reserved_at_6[0x7]
        type: u8
      - name: relaxed_ordering_write[0x1]
        type: u8
      - name: reserved_at_e[0x1]
        type: u8
      - name: small_fence_on_rdma_read_response[0x1]
        type: u8
      - name: umr_en[0x1]
        type: u8
      - name: a[0x1]
        type: u8
      - name: rw[0x1]
        type: u8
      - name: rr[0x1]
        type: u8
      - name: lw[0x1]
        type: u8
      - name: lr[0x1]
        type: u8
      - name: access_mode_1_0[0x2]
        type: u8
      - name: reserved_at_18[0x8]
        type: u8
      - name: qpn[0x18]
        type: u8
      - name: mkey_7_0[0x8]
        type: u8
      - name: reserved_at_40[0x20]
        type: u8
      - name: length64[0x1]
        type: u8
      - name: bsf_en[0x1]
        type: u8
      - name: sync_umr[0x1]
        type: u8
      - name: reserved_at_63[0x2]
        type: u8
      - name: expected_sigerr_count[0x1]
        type: u8
      - name: reserved_at_66[0x1]
        type: u8
      - name: en_rinval[0x1]
        type: u8
      - name: pd[0x18]
        type: u8
      - name: start_addr[0x40]
        type: u8
      - name: len[0x40]
        type: u8
      - name: bsf_octword_size[0x20]
        type: u8
      - name: reserved_at_120[0x80]
        type: u8
      - name: translations_octword_size[0x20]
        type: u8
      - name: reserved_at_1c0[0x19]
        type: u8
      - name: relaxed_ordering_read[0x1]
        type: u8
      - name: reserved_at_1d9[0x1]
        type: u8
      - name: log_page_size[0x5]
        type: u8
      - name: reserved_at_1e0[0x3]
        type: u8
      - name: crypto_en[0x2]
        type: u8
      - name: reserved_at_1e5[0x1b]
        type: u8
      item_type: struct
      name: mlx5_ifc_mkc_bits
      pos:
        line_end: 1612
        line_start: 1562
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: mkey_index[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_mkey_out_bits
      pos:
        line_end: 1624
        line_start: 1614
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x20]
        type: u8
      - name: pg_access[0x1]
        type: u8
      - name: mkey_umem_valid[0x1]
        type: u8
      - name: reserved_at_62[0x1e]
        type: u8
      - name: memory_key_mkey_entry
        type: struct mlx5_ifc_mkc_bits
      - name: reserved_at_280[0x80]
        type: u8
      - name: translations_octword_actual_size[0x20]
        type: u8
      - name: reserved_at_320[0x560]
        type: u8
      - name: klm_pas_mtt[0][0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_mkey_in_bits
      pos:
        line_end: 1648
        line_start: 1626
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_mkey_out_bits
      pos:
        line_end: 1657
        line_start: 1650
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: mkey_index[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_mkey_in_bits
      pos:
        line_end: 1670
        line_start: 1659
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: dmac_47_16[0x20]
        type: u8
      - name: dmac_15_0[0x10]
        type: u8
      - name: smac_47_32[0x10]
        type: u8
      - name: smac_31_0[0x20]
        type: u8
      - name: ethertype[0x10]
        type: u8
      - name: vlan_type[0x10]
        type: u8
      - name: vlan[0x10]
        type: u8
      item_type: struct
      name: mlx5_ifc_l2_hdr_bits
      pos:
        line_end: 1680
        line_start: 1672
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: entry_type[0x4]
        type: u8
      - name: reserved_at_4[0x4]
        type: u8
      - name: entry_sub_type[0x8]
        type: u8
      - name: byte_mask[0x10]
        type: u8
      - name: next_table_base_63_48[0x10]
        type: u8
      - name: next_lu_type[0x8]
        type: u8
      - name: next_table_base_39_32_size[0x8]
        type: u8
      - name: next_table_base_31_5_size[0x1b]
        type: u8
      - name: linear_hash_enable[0x1]
        type: u8
      - name: reserved_at_5c[0x2]
        type: u8
      - name: next_table_rank[0x2]
        type: u8
      - name: reserved_at_60[0xa0]
        type: u8
      - name: tag_value[0x60]
        type: u8
      - name: bit_mask[0x60]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_general_bits
      pos:
        line_end: 1707
        line_start: 1692
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: entry_type[0x4]
        type: u8
      - name: reserved_at_4[0x4]
        type: u8
      - name: entry_sub_type[0x8]
        type: u8
      - name: byte_mask[0x10]
        type: u8
      - name: next_table_base_63_48[0x10]
        type: u8
      - name: next_lu_type[0x8]
        type: u8
      - name: next_table_base_39_32_size[0x8]
        type: u8
      - name: next_table_base_31_5_size[0x1b]
        type: u8
      - name: linear_hash_enable[0x1]
        type: u8
      - name: reserved_at_5c[0x2]
        type: u8
      - name: next_table_rank[0x2]
        type: u8
      - name: sx_wire[0x1]
        type: u8
      - name: sx_func_lb[0x1]
        type: u8
      - name: sx_sniffer[0x1]
        type: u8
      - name: sx_wire_enable[0x1]
        type: u8
      - name: sx_func_lb_enable[0x1]
        type: u8
      - name: sx_sniffer_enable[0x1]
        type: u8
      - name: action_type[0x3]
        type: u8
      - name: reserved_at_69[0x1]
        type: u8
      - name: action_description[0x6]
        type: u8
      - name: gvmi[0x10]
        type: u8
      - name: encap_pointer_vlan_data[0x20]
        type: u8
      - name: loopback_syndome_en[0x8]
        type: u8
      - name: loopback_syndome[0x8]
        type: u8
      - name: counter_trigger[0x10]
        type: u8
      - name: miss_address_63_48[0x10]
        type: u8
      - name: counter_trigger_23_16[0x8]
        type: u8
      - name: miss_address_39_32[0x8]
        type: u8
      - name: miss_address_31_6[0x1a]
        type: u8
      - name: learning_point[0x1]
        type: u8
      - name: go_back[0x1]
        type: u8
      - name: match_polarity[0x1]
        type: u8
      - name: mask_mode[0x1]
        type: u8
      - name: miss_rank[0x2]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_sx_transmit_bits
      pos:
        line_end: 1751
        line_start: 1709
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: entry_type[0x4]
        type: u8
      - name: reserved_at_4[0x4]
        type: u8
      - name: entry_sub_type[0x8]
        type: u8
      - name: byte_mask[0x10]
        type: u8
      - name: next_table_base_63_48[0x10]
        type: u8
      - name: next_lu_type[0x8]
        type: u8
      - name: next_table_base_39_32_size[0x8]
        type: u8
      - name: next_table_base_31_5_size[0x1b]
        type: u8
      - name: linear_hash_enable[0x1]
        type: u8
      - name: reserved_at_5c[0x2]
        type: u8
      - name: next_table_rank[0x2]
        type: u8
      - name: member_count[0x10]
        type: u8
      - name: gvmi[0x10]
        type: u8
      - name: qp_list_pointer[0x20]
        type: u8
      - name: reserved_at_a0[0x1]
        type: u8
      - name: tunneling_action[0x3]
        type: u8
      - name: action_description[0x4]
        type: u8
      - name: reserved_at_a8[0x8]
        type: u8
      - name: counter_trigger_15_0[0x10]
        type: u8
      - name: miss_address_63_48[0x10]
        type: u8
      - name: counter_trigger_23_16[0x08]
        type: u8
      - name: miss_address_39_32[0x8]
        type: u8
      - name: miss_address_31_6[0x1a]
        type: u8
      - name: learning_point[0x1]
        type: u8
      - name: fail_on_error[0x1]
        type: u8
      - name: match_polarity[0x1]
        type: u8
      - name: mask_mode[0x1]
        type: u8
      - name: miss_rank[0x2]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_rx_steering_mult_bits
      pos:
        line_end: 1789
        line_start: 1753
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: entry_type[0x4]
        type: u8
      - name: reserved_at_4[0x4]
        type: u8
      - name: entry_sub_type[0x8]
        type: u8
      - name: byte_mask[0x10]
        type: u8
      - name: next_table_base_63_48[0x10]
        type: u8
      - name: next_lu_type[0x8]
        type: u8
      - name: next_table_base_39_32_size[0x8]
        type: u8
      - name: next_table_base_31_5_size[0x1b]
        type: u8
      - name: linear_hash_enable[0x1]
        type: u8
      - name: reserved_at_5c[0x2]
        type: u8
      - name: next_table_rank[0x2]
        type: u8
      - name: number_of_re_write_actions[0x10]
        type: u8
      - name: gvmi[0x10]
        type: u8
      - name: header_re_write_actions_pointer[0x20]
        type: u8
      - name: reserved_at_a0[0x1]
        type: u8
      - name: tunneling_action[0x3]
        type: u8
      - name: action_description[0x4]
        type: u8
      - name: reserved_at_a8[0x8]
        type: u8
      - name: counter_trigger_15_0[0x10]
        type: u8
      - name: miss_address_63_48[0x10]
        type: u8
      - name: counter_trigger_23_16[0x08]
        type: u8
      - name: miss_address_39_32[0x8]
        type: u8
      - name: miss_address_31_6[0x1a]
        type: u8
      - name: learning_point[0x1]
        type: u8
      - name: fail_on_error[0x1]
        type: u8
      - name: match_polarity[0x1]
        type: u8
      - name: mask_mode[0x1]
        type: u8
      - name: miss_rank[0x2]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_modify_packet_bits
      pos:
        line_end: 1827
        line_start: 1791
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_id[0x8]
        type: u8
      - name: flow_tag[0x18]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_single_action_flow_tag_v1_bits
      pos:
        line_end: 1832
        line_start: 1829
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_id[0x8]
        type: u8
      - name: num_of_modify_actions[0x8]
        type: u8
      - name: modify_actions_ptr[0x10]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_single_action_modify_list_v1_bits
      pos:
        line_end: 1838
        line_start: 1834
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_id[0x8]
        type: u8
      - name: reserved_at_8[0x2]
        type: u8
      - name: start_anchor[0x6]
        type: u8
      - name: reserved_at_10[0x2]
        type: u8
      - name: end_anchor[0x6]
        type: u8
      - name: reserved_at_18[0x4]
        type: u8
      - name: decap[0x1]
        type: u8
      - name: vni_to_cqe[0x1]
        type: u8
      - name: qos_profile[0x2]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_single_action_remove_header_v1_bits
      pos:
        line_end: 1850
        line_start: 1840
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_id[0x8]
        type: u8
      - name: reserved_at_8[0x2]
        type: u8
      - name: start_anchor[0x6]
        type: u8
      - name: outer_l4_remove[0x1]
        type: u8
      - name: reserved_at_11[0x1]
        type: u8
      - name: start_offset[0x7]
        type: u8
      - name: reserved_at_18[0x1]
        type: u8
      - name: remove_size[0x6]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_single_action_remove_header_size_v1_bits
      pos:
        line_end: 1861
        line_start: 1852
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_id[0x8]
        type: u8
      - name: destination_dw_offset[0x8]
        type: u8
      - name: reserved_at_10[0x2]
        type: u8
      - name: destination_left_shifter[0x6]
        type: u8
      - name: reserved_at_18[0x2]
        type: u8
      - name: destination_length[0x6]
        type: u8
      - name: reserved_at_20[0x8]
        type: u8
      - name: source_dw_offset[0x8]
        type: u8
      - name: reserved_at_30[0x2]
        type: u8
      - name: source_right_shifter[0x6]
        type: u8
      - name: reserved_at_38[0x8]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_double_action_copy_v1_bits
      pos:
        line_end: 1876
        line_start: 1863
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_id[0x8]
        type: u8
      - name: destination_dw_offset[0x8]
        type: u8
      - name: reserved_at_10[0x2]
        type: u8
      - name: destination_left_shifter[0x6]
        type: u8
      - name: reserved_at_18[0x2]
        type: u8
      - name: destination_length[0x6]
        type: u8
      - name: inline_data[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_double_action_set_v1_bits
      pos:
        line_end: 1887
        line_start: 1878
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_id[0x8]
        type: u8
      - name: destination_dw_offset[0x8]
        type: u8
      - name: reserved_at_10[0x2]
        type: u8
      - name: destination_left_shifter[0x6]
        type: u8
      - name: reserved_at_18[0x2]
        type: u8
      - name: destination_length[0x6]
        type: u8
      - name: add_value[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_double_action_add_v1_bits
      pos:
        line_end: 1898
        line_start: 1889
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_id[0x8]
        type: u8
      - name: reserved_at_8[0x2]
        type: u8
      - name: start_anchor[0x6]
        type: u8
      - name: start_offset[0x7]
        type: u8
      - name: reserved_at_17[0x9]
        type: u8
      - name: inline_data[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_double_action_insert_with_inline_v1_bits
      pos:
        line_end: 1908
        line_start: 1900
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_id[0x8]
        type: u8
      - name: reserved_at_8[0x2]
        type: u8
      - name: start_anchor[0x6]
        type: u8
      - name: start_offset[0x7]
        type: u8
      - name: size[0x6]
        type: u8
      - name: attributes[0x3]
        type: u8
      - name: pointer[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_double_action_insert_with_ptr_v1_bits
      pos:
        line_end: 1919
        line_start: 1910
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_id[0x8]
        type: u8
      - name: modify_actions_pattern_pointer[0x18]
        type: u8
      - name: number_of_modify_actions[0x8]
        type: u8
      - name: modify_actions_argument_pointer[0x18]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_double_action_modify_action_list_v1_bits
      pos:
        line_end: 1927
        line_start: 1921
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x6]
        type: u8
      - name: set[0x1]
        type: u8
      - name: line_id[0x9]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_aso_first_hit_action_v1_bits
      pos:
        line_end: 1945
        line_start: 1941
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0xc]
        type: u8
      - name: action[0x1]
        type: u8
      - name: initial_color[0x2]
        type: u8
      - name: line_id[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_aso_flow_meter_action_v1_bits
      pos:
        line_end: 1952
        line_start: 1947
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0xf]
        type: u8
      - name: direction[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_aso_ct_action_v1_bits
      pos:
        line_end: 1957
        line_start: 1954
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_id[0x8]
        type: u8
      - name: aso_context_number[0x18]
        type: u8
      - name: dest_reg_id[0x2]
        type: u8
      - name: change_ordering_tag[0x1]
        type: u8
      - name: aso_check_ordering[0x1]
        type: u8
      - name: aso_context_type[0x4]
        type: u8
      - name: reserved_at_28[0x8]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_double_action_aso_v1_bits
      pos:
        line_end: 1974
        line_start: 1959
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: entry_format[0x8]
        type: u8
      - name: counter_id[0x18]
        type: u8
      - name: miss_address_63_48[0x10]
        type: u8
      - name: match_definer_ctx_idx[0x8]
        type: u8
      - name: miss_address_39_32[0x8]
        type: u8
      - name: miss_address_31_6[0x1a]
        type: u8
      - name: reserved_at_5a[0x1]
        type: u8
      - name: match_polarity[0x1]
        type: u8
      - name: reparse[0x1]
        type: u8
      - name: reserved_at_5d[0x3]
        type: u8
      - name: next_table_base_63_48[0x10]
        type: u8
      - name: hash_definer_ctx_idx[0x8]
        type: u8
      - name: next_table_base_39_32_size[0x8]
        type: u8
      - name: next_table_base_31_5_size[0x1b]
        type: u8
      - name: hash_type[0x2]
        type: u8
      - name: hash_after_actions[0x1]
        type: u8
      - name: reserved_at_9e[0x2]
        type: u8
      - name: byte_mask[0x10]
        type: u8
      - name: next_entry_format[0x1]
        type: u8
      - name: mask_mode[0x1]
        type: u8
      - name: gvmi[0xe]
        type: u8
      - name: action[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_match_bwc_v1_bits
      pos:
        line_end: 2005
        line_start: 1976
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: entry_format[0x8]
        type: u8
      - name: counter_id[0x18]
        type: u8
      - name: miss_address_63_48[0x10]
        type: u8
      - name: match_definer_ctx_idx[0x8]
        type: u8
      - name: miss_address_39_32[0x8]
        type: u8
      - name: miss_address_31_6[0x1a]
        type: u8
      - name: reserved_at_5a[0x1]
        type: u8
      - name: match_polarity[0x1]
        type: u8
      - name: reparse[0x1]
        type: u8
      - name: reserved_at_5d[0x3]
        type: u8
      - name: next_table_base_63_48[0x10]
        type: u8
      - name: hash_definer_ctx_idx[0x8]
        type: u8
      - name: next_table_base_39_32_size[0x8]
        type: u8
      - name: next_table_base_31_5_size[0x1b]
        type: u8
      - name: hash_type[0x2]
        type: u8
      - name: hash_after_actions[0x1]
        type: u8
      - name: reserved_at_9e[0x2]
        type: u8
      - name: action[0x60]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_mask_and_match_v1_bits
      pos:
        line_end: 2031
        line_start: 2007
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: smac_47_16[0x20]
        type: u8
      - name: smac_15_0[0x10]
        type: u8
      - name: l3_ethertype[0x10]
        type: u8
      - name: qp_type[0x2]
        type: u8
      - name: ethertype_filter[0x1]
        type: u8
      - name: reserved_at_43[0x1]
        type: u8
      - name: sx_sniffer[0x1]
        type: u8
      - name: force_lb[0x1]
        type: u8
      - name: functional_lb[0x1]
        type: u8
      - name: port[0x1]
        type: u8
      - name: reserved_at_48[0x4]
        type: u8
      - name: first_priority[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: first_vlan_qualifier[0x2]
        type: u8
      - name: reserved_at_52[0x2]
        type: u8
      - name: first_vlan_id[0xc]
        type: u8
      - name: ip_fragmented[0x1]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: encp_type[0x2]
        type: u8
      - name: l3_type[0x2]
        type: u8
      - name: l4_type[0x2]
        type: u8
      - name: reserved_at_68[0x4]
        type: u8
      - name: second_priority[0x3]
        type: u8
      - name: second_cfi[0x1]
        type: u8
      - name: second_vlan_qualifier[0x2]
        type: u8
      - name: reserved_at_72[0x2]
        type: u8
      - name: second_vlan_id[0xc]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l2_src_bits
      pos:
        line_end: 2064
        line_start: 2033
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x1]
        type: u8
      - name: sx_sniffer[0x1]
        type: u8
      - name: functional_loopback[0x1]
        type: u8
      - name: ip_fragmented[0x1]
        type: u8
      - name: qp_type[0x2]
        type: u8
      - name: encapsulation_type[0x2]
        type: u8
      - name: port[0x2]
        type: u8
      - name: l3_type[0x2]
        type: u8
      - name: l4_type[0x2]
        type: u8
      - name: first_vlan_qualifier[0x2]
        type: u8
      - name: first_priority[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: first_vlan_id[0xc]
        type: u8
      - name: smac_47_16[0x20]
        type: u8
      - name: smac_15_0[0x10]
        type: u8
      - name: l3_ethertype[0x10]
        type: u8
      - name: reserved_at_60[0x6]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: reserved_at_67[0x3]
        type: u8
      - name: force_loopback[0x1]
        type: u8
      - name: l2_ok[0x1]
        type: u8
      - name: l3_ok[0x1]
        type: u8
      - name: l4_ok[0x1]
        type: u8
      - name: second_vlan_qualifier[0x2]
        type: u8
      - name: second_priority[0x3]
        type: u8
      - name: second_cfi[0x1]
        type: u8
      - name: second_vlan_id[0xc]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l2_src_v1_bits
      pos:
        line_end: 2097
        line_start: 2066
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: dmac_47_16[0x20]
        type: u8
      - name: dmac_15_0[0x10]
        type: u8
      - name: l3_ethertype[0x10]
        type: u8
      - name: qp_type[0x2]
        type: u8
      - name: ethertype_filter[0x1]
        type: u8
      - name: reserved_at_43[0x1]
        type: u8
      - name: sx_sniffer[0x1]
        type: u8
      - name: force_lb[0x1]
        type: u8
      - name: functional_lb[0x1]
        type: u8
      - name: port[0x1]
        type: u8
      - name: reserved_at_48[0x4]
        type: u8
      - name: first_priority[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: first_vlan_qualifier[0x2]
        type: u8
      - name: reserved_at_52[0x2]
        type: u8
      - name: first_vlan_id[0xc]
        type: u8
      - name: ip_fragmented[0x1]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: encp_type[0x2]
        type: u8
      - name: l3_type[0x2]
        type: u8
      - name: l4_type[0x2]
        type: u8
      - name: reserved_at_68[0x4]
        type: u8
      - name: second_priority[0x3]
        type: u8
      - name: second_cfi[0x1]
        type: u8
      - name: second_vlan_qualifier[0x2]
        type: u8
      - name: reserved_at_72[0x2]
        type: u8
      - name: second_vlan_id[0xc]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l2_dst_bits
      pos:
        line_end: 2130
        line_start: 2099
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x1]
        type: u8
      - name: sx_sniffer[0x1]
        type: u8
      - name: functional_lb[0x1]
        type: u8
      - name: ip_fragmented[0x1]
        type: u8
      - name: qp_type[0x2]
        type: u8
      - name: encapsulation_type[0x2]
        type: u8
      - name: port[0x2]
        type: u8
      - name: l3_type[0x2]
        type: u8
      - name: l4_type[0x2]
        type: u8
      - name: first_vlan_qualifier[0x2]
        type: u8
      - name: first_priority[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: first_vlan_id[0xc]
        type: u8
      - name: dmac_47_16[0x20]
        type: u8
      - name: dmac_15_0[0x10]
        type: u8
      - name: l3_ethertype[0x10]
        type: u8
      - name: reserved_at_60[0x6]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: reserved_at_67[0x3]
        type: u8
      - name: force_lb[0x1]
        type: u8
      - name: l2_ok[0x1]
        type: u8
      - name: l3_ok[0x1]
        type: u8
      - name: l4_ok[0x1]
        type: u8
      - name: second_vlan_qualifier[0x2]
        type: u8
      - name: second_priority[0x3]
        type: u8
      - name: second_cfi[0x1]
        type: u8
      - name: second_vlan_id[0xc]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l2_dst_v1_bits
      pos:
        line_end: 2163
        line_start: 2132
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: dmac_47_16[0x20]
        type: u8
      - name: dmac_15_0[0x10]
        type: u8
      - name: smac_47_32[0x10]
        type: u8
      - name: smac_31_0[0x20]
        type: u8
      - name: sx_sniffer[0x1]
        type: u8
      - name: force_lb[0x1]
        type: u8
      - name: functional_lb[0x1]
        type: u8
      - name: port[0x1]
        type: u8
      - name: l3_type[0x2]
        type: u8
      - name: reserved_at_66[0x6]
        type: u8
      - name: first_priority[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: first_vlan_qualifier[0x2]
        type: u8
      - name: reserved_at_72[0x2]
        type: u8
      - name: first_vlan_id[0xc]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l2_src_dst_bits
      pos:
        line_end: 2184
        line_start: 2165
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: dmac_47_16[0x20]
        type: u8
      - name: smac_47_16[0x20]
        type: u8
      - name: dmac_15_0[0x10]
        type: u8
      - name: reserved_at_50[0x2]
        type: u8
      - name: functional_lb[0x1]
        type: u8
      - name: reserved_at_53[0x5]
        type: u8
      - name: port[0x2]
        type: u8
      - name: l3_type[0x2]
        type: u8
      - name: reserved_at_5c[0x2]
        type: u8
      - name: first_vlan_qualifier[0x2]
        type: u8
      - name: first_priority[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: first_vlan_id[0xc]
        type: u8
      - name: smac_15_0[0x10]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l2_src_dst_v1_bits
      pos:
        line_end: 2204
        line_start: 2186
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: destination_address[0x20]
        type: u8
      - name: source_address[0x20]
        type: u8
      - name: source_port[0x10]
        type: u8
      - name: destination_port[0x10]
        type: u8
      - name: fragmented[0x1]
        type: u8
      - name: first_fragment[0x1]
        type: u8
      - name: reserved_at_62[0x2]
        type: u8
      - name: reserved_at_64[0x1]
        type: u8
      - name: ecn[0x2]
        type: u8
      - name: tcp_ns[0x1]
        type: u8
      - name: tcp_cwr[0x1]
        type: u8
      - name: tcp_ece[0x1]
        type: u8
      - name: tcp_urg[0x1]
        type: u8
      - name: tcp_ack[0x1]
        type: u8
      - name: tcp_psh[0x1]
        type: u8
      - name: tcp_rst[0x1]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: tcp_fin[0x1]
        type: u8
      - name: dscp[0x6]
        type: u8
      - name: reserved_at_76[0x2]
        type: u8
      - name: protocol[0x8]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l3_ipv4_5_tuple_bits
      pos:
        line_end: 2231
        line_start: 2206
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: source_address[0x20]
        type: u8
      - name: destination_address[0x20]
        type: u8
      - name: source_port[0x10]
        type: u8
      - name: destination_port[0x10]
        type: u8
      - name: reserved_at_60[0x4]
        type: u8
      - name: l4_ok[0x1]
        type: u8
      - name: l3_ok[0x1]
        type: u8
      - name: fragmented[0x1]
        type: u8
      - name: tcp_ns[0x1]
        type: u8
      - name: tcp_cwr[0x1]
        type: u8
      - name: tcp_ece[0x1]
        type: u8
      - name: tcp_urg[0x1]
        type: u8
      - name: tcp_ack[0x1]
        type: u8
      - name: tcp_psh[0x1]
        type: u8
      - name: tcp_rst[0x1]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: tcp_fin[0x1]
        type: u8
      - name: dscp[0x6]
        type: u8
      - name: ecn[0x2]
        type: u8
      - name: protocol[0x8]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l3_ipv4_5_tuple_v1_bits
      pos:
        line_end: 2257
        line_start: 2233
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: dst_ip_127_96[0x20]
        type: u8
      - name: dst_ip_95_64[0x20]
        type: u8
      - name: dst_ip_63_32[0x20]
        type: u8
      - name: dst_ip_31_0[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l3_ipv6_dst_bits
      pos:
        line_end: 2267
        line_start: 2259
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: dmac_47_16[0x20]
        type: u8
      - name: dmac_15_0[0x10]
        type: u8
      - name: l3_ethertype[0x10]
        type: u8
      - name: l2_tunneling_network_id[0x20]
        type: u8
      - name: ip_fragmented[0x1]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: encp_type[0x2]
        type: u8
      - name: l3_type[0x2]
        type: u8
      - name: l4_type[0x2]
        type: u8
      - name: first_priority[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: reserved_at_6c[0x3]
        type: u8
      - name: gre_key_flag[0x1]
        type: u8
      - name: first_vlan_qualifier[0x2]
        type: u8
      - name: reserved_at_72[0x2]
        type: u8
      - name: first_vlan_id[0xc]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l2_tnl_bits
      pos:
        line_end: 2289
        line_start: 2269
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: l2_tunneling_network_id[0x20]
        type: u8
      - name: dmac_47_16[0x20]
        type: u8
      - name: dmac_15_0[0x10]
        type: u8
      - name: l3_ethertype[0x10]
        type: u8
      - name: reserved_at_60[0x3]
        type: u8
      - name: ip_fragmented[0x1]
        type: u8
      - name: reserved_at_64[0x2]
        type: u8
      - name: encp_type[0x2]
        type: u8
      - name: reserved_at_68[0x2]
        type: u8
      - name: l3_type[0x2]
        type: u8
      - name: l4_type[0x2]
        type: u8
      - name: first_vlan_qualifier[0x2]
        type: u8
      - name: first_priority[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: first_vlan_id[0xc]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l2_tnl_v1_bits
      pos:
        line_end: 2310
        line_start: 2291
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: src_ip_127_96[0x20]
        type: u8
      - name: src_ip_95_64[0x20]
        type: u8
      - name: src_ip_63_32[0x20]
        type: u8
      - name: src_ip_31_0[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l3_ipv6_src_bits
      pos:
        line_end: 2320
        line_start: 2312
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: version[0x4]
        type: u8
      - name: ihl[0x4]
        type: u8
      - name: reserved_at_8[0x8]
        type: u8
      - name: total_length[0x10]
        type: u8
      - name: identification[0x10]
        type: u8
      - name: flags[0x3]
        type: u8
      - name: fragment_offset[0xd]
        type: u8
      - name: time_to_live[0x8]
        type: u8
      - name: reserved_at_48[0x8]
        type: u8
      - name: checksum[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l3_ipv4_misc_bits
      pos:
        line_end: 2337
        line_start: 2322
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: identification[0x10]
        type: u8
      - name: flags[0x3]
        type: u8
      - name: fragment_offset[0xd]
        type: u8
      - name: total_length[0x10]
        type: u8
      - name: checksum[0x10]
        type: u8
      - name: version[0x4]
        type: u8
      - name: ihl[0x4]
        type: u8
      - name: time_to_live[0x8]
        type: u8
      - name: reserved_at_50[0x10]
        type: u8
      - name: reserved_at_60[0x1c]
        type: u8
      - name: voq_internal_prio[0x4]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l3_ipv4_misc_v1_bits
      pos:
        line_end: 2354
        line_start: 2339
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: fragmented[0x1]
        type: u8
      - name: first_fragment[0x1]
        type: u8
      - name: reserved_at_2[0x6]
        type: u8
      - name: protocol[0x8]
        type: u8
      - name: dst_port[0x10]
        type: u8
      - name: ipv6_version[0x4]
        type: u8
      - name: reserved_at_24[0x1]
        type: u8
      - name: ecn[0x2]
        type: u8
      - name: tcp_ns[0x1]
        type: u8
      - name: tcp_cwr[0x1]
        type: u8
      - name: tcp_ece[0x1]
        type: u8
      - name: tcp_urg[0x1]
        type: u8
      - name: tcp_ack[0x1]
        type: u8
      - name: tcp_psh[0x1]
        type: u8
      - name: tcp_rst[0x1]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: tcp_fin[0x1]
        type: u8
      - name: src_port[0x10]
        type: u8
      - name: ipv6_payload_length[0x10]
        type: u8
      - name: ipv6_hop_limit[0x8]
        type: u8
      - name: dscp[0x6]
        type: u8
      - name: reserved_at_5e[0x2]
        type: u8
      - name: tcp_data_offset[0x4]
        type: u8
      - name: reserved_at_64[0x8]
        type: u8
      - name: flow_label[0x14]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l4_bits
      pos:
        line_end: 2385
        line_start: 2356
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: ipv6_version[0x4]
        type: u8
      - name: reserved_at_4[0x4]
        type: u8
      - name: dscp[0x6]
        type: u8
      - name: ecn[0x2]
        type: u8
      - name: ipv6_hop_limit[0x8]
        type: u8
      - name: protocol[0x8]
        type: u8
      - name: src_port[0x10]
        type: u8
      - name: dst_port[0x10]
        type: u8
      - name: first_fragment[0x1]
        type: u8
      - name: reserved_at_41[0xb]
        type: u8
      - name: flow_label[0x14]
        type: u8
      - name: tcp_data_offset[0x4]
        type: u8
      - name: l4_ok[0x1]
        type: u8
      - name: l3_ok[0x1]
        type: u8
      - name: fragmented[0x1]
        type: u8
      - name: tcp_ns[0x1]
        type: u8
      - name: tcp_cwr[0x1]
        type: u8
      - name: tcp_ece[0x1]
        type: u8
      - name: tcp_urg[0x1]
        type: u8
      - name: tcp_ack[0x1]
        type: u8
      - name: tcp_psh[0x1]
        type: u8
      - name: tcp_rst[0x1]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: tcp_fin[0x1]
        type: u8
      - name: ipv6_paylen[0x10]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l4_v1_bits
      pos:
        line_end: 2416
        line_start: 2387
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: checksum[0x10]
        type: u8
      - name: length[0x10]
        type: u8
      - name: seq_num[0x20]
        type: u8
      - name: ack_num[0x20]
        type: u8
      - name: urgent_pointer[0x10]
        type: u8
      - name: window_size[0x10]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l4_misc_bits
      pos:
        line_end: 2428
        line_start: 2418
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: window_size[0x10]
        type: u8
      - name: urgent_pointer[0x10]
        type: u8
      - name: ack_num[0x20]
        type: u8
      - name: seq_num[0x20]
        type: u8
      - name: length[0x10]
        type: u8
      - name: checksum[0x10]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_eth_l4_misc_v1_bits
      pos:
        line_end: 2440
        line_start: 2430
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: mpls0_label[0x14]
        type: u8
      - name: mpls0_exp[0x3]
        type: u8
      - name: mpls0_s_bos[0x1]
        type: u8
      - name: mpls0_ttl[0x8]
        type: u8
      - name: mpls1_label[0x20]
        type: u8
      - name: mpls2_label[0x20]
        type: u8
      - name: reserved_at_60[0x16]
        type: u8
      - name: mpls4_s_bit[0x1]
        type: u8
      - name: mpls4_qualifier[0x1]
        type: u8
      - name: mpls3_s_bit[0x1]
        type: u8
      - name: mpls3_qualifier[0x1]
        type: u8
      - name: mpls2_s_bit[0x1]
        type: u8
      - name: mpls2_qualifier[0x1]
        type: u8
      - name: mpls1_s_bit[0x1]
        type: u8
      - name: mpls1_qualifier[0x1]
        type: u8
      - name: mpls0_s_bit[0x1]
        type: u8
      - name: mpls0_qualifier[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_mpls_bits
      pos:
        line_end: 2463
        line_start: 2442
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x15]
        type: u8
      - name: mpls_ok[0x1]
        type: u8
      - name: mpls4_s_bit[0x1]
        type: u8
      - name: mpls4_qualifier[0x1]
        type: u8
      - name: mpls3_s_bit[0x1]
        type: u8
      - name: mpls3_qualifier[0x1]
        type: u8
      - name: mpls2_s_bit[0x1]
        type: u8
      - name: mpls2_qualifier[0x1]
        type: u8
      - name: mpls1_s_bit[0x1]
        type: u8
      - name: mpls1_qualifier[0x1]
        type: u8
      - name: mpls0_s_bit[0x1]
        type: u8
      - name: mpls0_qualifier[0x1]
        type: u8
      - name: mpls0_label[0x14]
        type: u8
      - name: mpls0_exp[0x3]
        type: u8
      - name: mpls0_s_bos[0x1]
        type: u8
      - name: mpls0_ttl[0x8]
        type: u8
      - name: mpls1_label[0x20]
        type: u8
      - name: mpls2_label[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_mpls_v1_bits
      pos:
        line_end: 2487
        line_start: 2465
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: register_0_h[0x20]
        type: u8
      - name: register_0_l[0x20]
        type: u8
      - name: register_1_h[0x20]
        type: u8
      - name: register_1_l[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_register_0_bits
      pos:
        line_end: 2497
        line_start: 2489
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: register_2_h[0x20]
        type: u8
      - name: register_2_l[0x20]
        type: u8
      - name: register_3_h[0x20]
        type: u8
      - name: register_3_l[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_register_1_bits
      pos:
        line_end: 2507
        line_start: 2499
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: gre_c_present[0x1]
        type: u8
      - name: reserved_at_1[0x1]
        type: u8
      - name: gre_k_present[0x1]
        type: u8
      - name: gre_s_present[0x1]
        type: u8
      - name: strict_src_route[0x1]
        type: u8
      - name: recur[0x3]
        type: u8
      - name: flags[0x5]
        type: u8
      - name: version[0x3]
        type: u8
      - name: gre_protocol[0x10]
        type: u8
      - name: checksum[0x10]
        type: u8
      - name: offset[0x10]
        type: u8
      - name: gre_key_h[0x18]
        type: u8
      - name: gre_key_l[0x8]
        type: u8
      - name: seq_num[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_gre_bits
      pos:
        line_end: 2527
        line_start: 2509
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: gre_c_present[0x1]
        type: u8
      - name: reserved_at_1[0x1]
        type: u8
      - name: gre_k_present[0x1]
        type: u8
      - name: gre_s_present[0x1]
        type: u8
      - name: strict_src_route[0x1]
        type: u8
      - name: recur[0x3]
        type: u8
      - name: flags[0x5]
        type: u8
      - name: version[0x3]
        type: u8
      - name: gre_protocol[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: gre_key_h[0x18]
        type: u8
      - name: gre_key_l[0x8]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_gre_v1_bits
      pos:
        line_end: 2546
        line_start: 2529
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: flex_parser_3[0x20]
        type: u8
      - name: flex_parser_2[0x20]
        type: u8
      - name: flex_parser_1[0x20]
        type: u8
      - name: flex_parser_0[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_flex_parser_0_bits
      pos:
        line_end: 2556
        line_start: 2548
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: flex_parser_7[0x20]
        type: u8
      - name: flex_parser_6[0x20]
        type: u8
      - name: flex_parser_5[0x20]
        type: u8
      - name: flex_parser_4[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_flex_parser_1_bits
      pos:
        line_end: 2566
        line_start: 2558
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: tunnel_header_dw0[0x20]
        type: u8
      - name: tunnel_header_dw1[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_tunnel_header_bits
      pos:
        line_end: 2574
        line_start: 2568
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: tunnel_header_0[0x20]
        type: u8
      - name: tunnel_header_1[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_tunnel_header_v1_bits
      pos:
        line_end: 2582
        line_start: 2576
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: outer_vxlan_gpe_flags[0x8]
        type: u8
      - name: reserved_at_8[0x10]
        type: u8
      - name: outer_vxlan_gpe_next_protocol[0x8]
        type: u8
      - name: outer_vxlan_gpe_vni[0x18]
        type: u8
      - name: reserved_at_38[0x8]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_flex_parser_tnl_vxlan_gpe_bits
      pos:
        line_end: 2593
        line_start: 2584
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x2]
        type: u8
      - name: geneve_opt_len[0x6]
        type: u8
      - name: geneve_oam[0x1]
        type: u8
      - name: reserved_at_9[0x7]
        type: u8
      - name: geneve_protocol_type[0x10]
        type: u8
      - name: geneve_vni[0x18]
        type: u8
      - name: reserved_at_38[0x8]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_flex_parser_tnl_geneve_bits
      pos:
        line_end: 2606
        line_start: 2595
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: gtpu_msg_flags[0x8]
        type: u8
      - name: gtpu_msg_type[0x8]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: gtpu_teid[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_flex_parser_tnl_gtpu_bits
      pos:
        line_end: 2616
        line_start: 2608
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: general_purpose_lookup_field[0x20]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x20]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_general_purpose_bits
      pos:
        line_end: 2626
        line_start: 2618
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: loopback_syndrome[0x8]
        type: u8
      - name: reserved_at_8[0x8]
        type: u8
      - name: source_gvmi[0x10]
        type: u8
      - name: reserved_at_20[0x5]
        type: u8
      - name: force_lb[0x1]
        type: u8
      - name: functional_lb[0x1]
        type: u8
      - name: source_is_requestor[0x1]
        type: u8
      - name: source_qp[0x18]
        type: u8
      - name: reserved_at_40[0x20]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_src_gvmi_qp_bits
      pos:
        line_end: 2642
        line_start: 2628
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: loopback_synd[0x8]
        type: u8
      - name: reserved_at_8[0x7]
        type: u8
      - name: functional_lb[0x1]
        type: u8
      - name: source_gvmi[0x10]
        type: u8
      - name: force_lb[0x1]
        type: u8
      - name: reserved_at_21[0x1]
        type: u8
      - name: source_is_requestor[0x1]
        type: u8
      - name: reserved_at_23[0x5]
        type: u8
      - name: source_qp[0x18]
        type: u8
      - name: reserved_at_40[0x20]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_src_gvmi_qp_v1_bits
      pos:
        line_end: 2659
        line_start: 2644
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: icmp_payload_data[0x20]
        type: u8
      - name: icmp_header_data[0x20]
        type: u8
      - name: icmp_type[0x8]
        type: u8
      - name: icmp_code[0x8]
        type: u8
      - name: reserved_at_50[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_icmp_v1_bits
      pos:
        line_end: 2671
        line_start: 2661
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: metadata_reg_c_0[0x20]
        type: u8
      - name: metadata_reg_c_1[0x20]
        type: u8
      - name: dmac_47_16[0x20]
        type: u8
      - name: dmac_15_0[0x10]
        type: u8
      - name: ethertype[0x10]
        type: u8
      - name: reserved_at_60[0x1]
        type: u8
      - name: sx_sniffer[0x1]
        type: u8
      - name: functional_loopback[0x1]
        type: u8
      - name: ip_frag[0x1]
        type: u8
      - name: qp_type[0x2]
        type: u8
      - name: encapsulation_type[0x2]
        type: u8
      - name: port[0x2]
        type: u8
      - name: outer_l3_type[0x2]
        type: u8
      - name: outer_l4_type[0x2]
        type: u8
      - name: first_vlan_qualifier[0x2]
        type: u8
      - name: first_priority[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: first_vlan_id[0xc]
        type: u8
      - name: reserved_at_80[0xa]
        type: u8
      - name: force_loopback[0x1]
        type: u8
      - name: reserved_at_8b[0x3]
        type: u8
      - name: second_vlan_qualifier[0x2]
        type: u8
      - name: second_priority[0x3]
        type: u8
      - name: second_cfi[0x1]
        type: u8
      - name: second_vlan_id[0xc]
        type: u8
      - name: smac_47_16[0x20]
        type: u8
      - name: smac_15_0[0x10]
        type: u8
      - name: inner_ipv4_checksum_ok[0x1]
        type: u8
      - name: inner_l4_checksum_ok[0x1]
        type: u8
      - name: outer_ipv4_checksum_ok[0x1]
        type: u8
      - name: outer_l4_checksum_ok[0x1]
        type: u8
      - name: inner_l3_ok[0x1]
        type: u8
      - name: inner_l4_ok[0x1]
        type: u8
      - name: outer_l3_ok[0x1]
        type: u8
      - name: outer_l4_ok[0x1]
        type: u8
      - name: tcp_cwr[0x1]
        type: u8
      - name: tcp_ece[0x1]
        type: u8
      - name: tcp_urg[0x1]
        type: u8
      - name: tcp_ack[0x1]
        type: u8
      - name: tcp_psh[0x1]
        type: u8
      - name: tcp_rst[0x1]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: tcp_fin[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_def0_v1_bits
      pos:
        line_end: 2724
        line_start: 2673
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: metadata_reg_a[0x20]
        type: u8
      - name: outer_ip_version[0x4]
        type: u8
      - name: outer_ip_ihl[0x4]
        type: u8
      - name: outer_ip_dscp[0x6]
        type: u8
      - name: outer_ip_ecn[0x2]
        type: u8
      - name: outer_ip_ttl[0x8]
        type: u8
      - name: outer_ip_protocol[0x8]
        type: u8
      - name: outer_ip_identification[0x10]
        type: u8
      - name: outer_ip_flags[0x3]
        type: u8
      - name: outer_ip_fragment_offset[0xd]
        type: u8
      - name: outer_ip_total_length[0x10]
        type: u8
      - name: outer_ip_checksum[0x10]
        type: u8
      - name: reserved_180[0xc]
        type: u8
      - name: outer_ip_flow_label[0x14]
        type: u8
      - name: outer_eth_packet_length[0x10]
        type: u8
      - name: outer_ip_payload_length[0x10]
        type: u8
      - name: outer_l4_sport[0x10]
        type: u8
      - name: outer_l4_dport[0x10]
        type: u8
      - name: outer_data_offset[0x4]
        type: u8
      - name: reserved_1e4[0x2]
        type: u8
      - name: outer_ip_frag[0x1]
        type: u8
      - name: tcp_ns[0x1]
        type: u8
      - name: tcp_cwr[0x1]
        type: u8
      - name: tcp_ece[0x1]
        type: u8
      - name: tcp_urg[0x1]
        type: u8
      - name: tcp_ack[0x1]
        type: u8
      - name: tcp_psh[0x1]
        type: u8
      - name: tcp_rst[0x1]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: tcp_fin[0x1]
        type: u8
      - name: outer_ip_frag_first[0x1]
        type: u8
      - name: reserved_1f0[0x7]
        type: u8
      - name: inner_ipv4_checksum_ok[0x1]
        type: u8
      - name: inner_l4_checksum_ok[0x1]
        type: u8
      - name: outer_ipv4_checksum_ok[0x1]
        type: u8
      - name: outer_l4_checksum_ok[0x1]
        type: u8
      - name: inner_l3_ok[0x1]
        type: u8
      - name: inner_l4_ok[0x1]
        type: u8
      - name: outer_l3_ok[0x1]
        type: u8
      - name: outer_l4_ok[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_def2_v1_bits
      pos:
        line_end: 2774
        line_start: 2726
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: dst_ipv6_127_96[0x20]
        type: u8
      - name: dst_ipv6_95_64[0x20]
        type: u8
      - name: dst_ipv6_63_32[0x20]
        type: u8
      - name: dst_ipv6_31_0[0x20]
        type: u8
      - name: reserved_at_80[0x40]
        type: u8
      - name: outer_l4_sport[0x10]
        type: u8
      - name: outer_l4_dport[0x10]
        type: u8
      - name: reserved_e0[0x4]
        type: u8
      - name: l4_ok[0x1]
        type: u8
      - name: l3_ok[0x1]
        type: u8
      - name: ip_frag[0x1]
        type: u8
      - name: tcp_ns[0x1]
        type: u8
      - name: tcp_cwr[0x1]
        type: u8
      - name: tcp_ece[0x1]
        type: u8
      - name: tcp_urg[0x1]
        type: u8
      - name: tcp_ack[0x1]
        type: u8
      - name: tcp_psh[0x1]
        type: u8
      - name: tcp_rst[0x1]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: tcp_fin[0x1]
        type: u8
      - name: reserved_f0[0x10]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_def6_v1_bits
      pos:
        line_end: 2804
        line_start: 2776
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: tunnel_header_0[0x20]
        type: u8
      - name: tunnel_header_1[0x20]
        type: u8
      - name: tunnel_header_2[0x20]
        type: u8
      - name: tunnel_header_3[0x20]
        type: u8
      - name: random_number[0x10]
        type: u8
      - name: reserved_90[0x10]
        type: u8
      - name: metadata_reg_a[0x20]
        type: u8
      - name: reserved_c0[0x8]
        type: u8
      - name: outer_l3_type[0x2]
        type: u8
      - name: outer_l4_type[0x2]
        type: u8
      - name: outer_first_vlan_type[0x2]
        type: u8
      - name: reserved_ce[0x1]
        type: u8
      - name: functional_lb[0x1]
        type: u8
      - name: source_gvmi[0x10]
        type: u8
      - name: force_lb[0x1]
        type: u8
      - name: outer_ip_frag[0x1]
        type: u8
      - name: source_is_requester[0x1]
        type: u8
      - name: reserved_e3[0x5]
        type: u8
      - name: source_sqn[0x18]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_def16_v1_bits
      pos:
        line_end: 2833
        line_start: 2806
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: outer_ip_src_addr[0x20]
        type: u8
      - name: outer_ip_dst_addr[0x20]
        type: u8
      - name: outer_l4_sport[0x10]
        type: u8
      - name: outer_l4_dport[0x10]
        type: u8
      - name: reserved_at_40[0x1]
        type: u8
      - name: sx_sniffer[0x1]
        type: u8
      - name: functional_loopback[0x1]
        type: u8
      - name: outer_ip_frag[0x1]
        type: u8
      - name: qp_type[0x2]
        type: u8
      - name: encapsulation_type[0x2]
        type: u8
      - name: port[0x2]
        type: u8
      - name: outer_l3_type[0x2]
        type: u8
      - name: outer_l4_type[0x2]
        type: u8
      - name: first_vlan_qualifier[0x2]
        type: u8
      - name: first_priority[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: first_vlan_id[0xc]
        type: u8
      - name: metadata_reg_c_0[0x20]
        type: u8
      - name: outer_dmac_47_16[0x20]
        type: u8
      - name: outer_smac_47_16[0x20]
        type: u8
      - name: outer_smac_15_0[0x10]
        type: u8
      - name: outer_dmac_15_0[0x10]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_def22_v1_bits
      pos:
        line_end: 2865
        line_start: 2835
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: metadata_reg_c_2[0x20]
        type: u8
      - name: metadata_reg_c_3[0x20]
        type: u8
      - name: metadata_reg_c_0[0x20]
        type: u8
      - name: metadata_reg_c_1[0x20]
        type: u8
      - name: outer_ip_src_addr[0x20]
        type: u8
      - name: outer_ip_dst_addr[0x20]
        type: u8
      - name: outer_l4_sport[0x10]
        type: u8
      - name: outer_l4_dport[0x10]
        type: u8
      - name: inner_ip_protocol[0x8]
        type: u8
      - name: inner_l3_type[0x2]
        type: u8
      - name: inner_l4_type[0x2]
        type: u8
      - name: inner_first_vlan_type[0x2]
        type: u8
      - name: inner_ip_frag[0x1]
        type: u8
      - name: functional_lb[0x1]
        type: u8
      - name: outer_ip_protocol[0x8]
        type: u8
      - name: outer_l3_type[0x2]
        type: u8
      - name: outer_l4_type[0x2]
        type: u8
      - name: outer_first_vlan_type[0x2]
        type: u8
      - name: outer_ip_frag[0x1]
        type: u8
      - name: functional_lb_dup[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_def24_v1_bits
      pos:
        line_end: 2895
        line_start: 2867
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: inner_ip_src_addr[0x20]
        type: u8
      - name: inner_ip_dst_addr[0x20]
        type: u8
      - name: inner_l4_sport[0x10]
        type: u8
      - name: inner_l4_dport[0x10]
        type: u8
      - name: tunnel_header_0[0x20]
        type: u8
      - name: tunnel_header_1[0x20]
        type: u8
      - name: reserved_at_a0[0x20]
        type: u8
      - name: port_number_dup[0x2]
        type: u8
      - name: inner_l3_type[0x2]
        type: u8
      - name: inner_l4_type[0x2]
        type: u8
      - name: inner_first_vlan_type[0x2]
        type: u8
      - name: port_number[0x2]
        type: u8
      - name: outer_l3_type[0x2]
        type: u8
      - name: outer_l4_type[0x2]
        type: u8
      - name: outer_first_vlan_type[0x2]
        type: u8
      - name: outer_l4_dport[0x10]
        type: u8
      - name: reserved_at_e0[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_def25_v1_bits
      pos:
        line_end: 2922
        line_start: 2897
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: src_ipv6_127_96[0x20]
        type: u8
      - name: src_ipv6_95_64[0x20]
        type: u8
      - name: src_ipv6_63_32[0x20]
        type: u8
      - name: src_ipv6_31_0[0x20]
        type: u8
      - name: reserved_at_80[0x3]
        type: u8
      - name: ip_frag[0x1]
        type: u8
      - name: reserved_at_84[0x6]
        type: u8
      - name: l3_type[0x2]
        type: u8
      - name: l4_type[0x2]
        type: u8
      - name: first_vlan_type[0x2]
        type: u8
      - name: first_priority[0x3]
        type: u8
      - name: first_cfi[0x1]
        type: u8
      - name: first_vlan_id[0xc]
        type: u8
      - name: reserved_at_a0[0xb]
        type: u8
      - name: l2_ok[0x1]
        type: u8
      - name: l3_ok[0x1]
        type: u8
      - name: l4_ok[0x1]
        type: u8
      - name: second_vlan_type[0x2]
        type: u8
      - name: second_priority[0x3]
        type: u8
      - name: second_cfi[0x1]
        type: u8
      - name: second_vlan_id[0xc]
        type: u8
      - name: smac_47_16[0x20]
        type: u8
      - name: smac_15_0[0x10]
        type: u8
      - name: ip_porotcol[0x8]
        type: u8
      - name: tcp_cwr[0x1]
        type: u8
      - name: tcp_ece[0x1]
        type: u8
      - name: tcp_urg[0x1]
        type: u8
      - name: tcp_ack[0x1]
        type: u8
      - name: tcp_psh[0x1]
        type: u8
      - name: tcp_rst[0x1]
        type: u8
      - name: tcp_syn[0x1]
        type: u8
      - name: tcp_fin[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_def26_v1_bits
      pos:
        line_end: 2964
        line_start: 2924
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: inner_l4_sport[0x10]
        type: u8
      - name: inner_l4_dport[0x10]
        type: u8
      - name: flex_gtpu_teid[0x20]
        type: u8
      - name: inner_ip_src_addr[0x20]
        type: u8
      - name: inner_ip_dst_addr[0x20]
        type: u8
      - name: outer_ip_src_addr[0x20]
        type: u8
      - name: outer_ip_dst_addr[0x20]
        type: u8
      - name: outer_l4_sport[0x10]
        type: u8
      - name: outer_l4_dport[0x10]
        type: u8
      - name: inner_ip_protocol[0x8]
        type: u8
      - name: inner_l3_type[0x2]
        type: u8
      - name: inner_l4_type[0x2]
        type: u8
      - name: inner_first_vlan_type[0x2]
        type: u8
      - name: inner_ip_frag[0x1]
        type: u8
      - name: functional_lb[0x1]
        type: u8
      - name: outer_ip_protocol[0x8]
        type: u8
      - name: outer_l3_type[0x2]
        type: u8
      - name: outer_l4_type[0x2]
        type: u8
      - name: outer_first_vlan_type[0x2]
        type: u8
      - name: outer_ip_frag[0x1]
        type: u8
      - name: functional_lb_dup[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_ste_def28_v1_bits
      pos:
        line_end: 2995
        line_start: 2966
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_type[0x4]
        type: u8
      - name: field[0xc]
        type: u8
      - name: reserved_at_10[0x3]
        type: u8
      - name: offset[0x5]
        type: u8
      - name: reserved_at_18[0x3]
        type: u8
      - name: length[0x5]
        type: u8
      - name: data[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_set_action_in_bits
      pos:
        line_end: 3006
        line_start: 2997
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_type[0x4]
        type: u8
      - name: field[0xc]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: data[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_add_action_in_bits
      pos:
        line_end: 3014
        line_start: 3008
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: action_type[0x4]
        type: u8
      - name: src_field[0xc]
        type: u8
      - name: reserved_at_10[0x3]
        type: u8
      - name: src_offset[0x5]
        type: u8
      - name: reserved_at_18[0x3]
        type: u8
      - name: length[0x5]
        type: u8
      - name: reserved_at_20[0x4]
        type: u8
      - name: dst_field[0xc]
        type: u8
      - name: reserved_at_30[0x3]
        type: u8
      - name: dst_offset[0x5]
        type: u8
      - name: reserved_at_38[0x8]
        type: u8
      item_type: struct
      name: mlx5_ifc_copy_action_in_bits
      pos:
        line_end: 3029
        line_start: 3016
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x1d]
        type: u8
      - name: data_in_order[0x1]
        type: u8
      - name: reserved_at_1e[0x362]
        type: u8
      item_type: struct
      name: mlx5_ifc_dctc_bits
      pos:
        line_end: 3079
        line_start: 3075
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x5]
        type: u8
      - name: reformat_type[0x3]
        type: u8
      - name: reserved_at_8[0xe]
        type: u8
      - name: reformat_data_size[0xa]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: reformat_data[2][0x8]
        type: u8
      - name: more_reformat_data[0][0x8]
        type: u8
      item_type: struct
      name: mlx5_ifc_packet_reformat_context_in_bits
      pos:
        line_end: 3091
        line_start: 3081
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0xa0]
        type: u8
      - name: packet_reformat_context
        type: struct mlx5_ifc_packet_reformat_context_in_bits
      item_type: struct
      name: mlx5_ifc_alloc_packet_reformat_context_in_bits
      pos:
        line_end: 3103
        line_start: 3093
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: packet_reformat_id[0x20]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_alloc_packet_reformat_context_out_bits
      pos:
        line_end: 3114
        line_start: 3105
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: packet_reformat_id[0x20]
        type: u8
      - name: reserved_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dealloc_packet_reformat_context_in_bits
      pos:
        line_end: 3126
        line_start: 3116
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_dealloc_packet_reformat_context_out_bits
      pos:
        line_end: 3135
        line_start: 3128
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_alloc_flow_counter_in_bits
      pos:
        line_end: 3153
        line_start: 3145
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: flow_counter_id[0x20]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_alloc_flow_counter_out_bits
      pos:
        line_end: 3164
        line_start: 3155
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: flow_counter_id[0x20]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dealloc_flow_counter_in_bits
      pos:
        line_end: 3175
        line_start: 3166
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: obj_type[0x10]
        type: u8
      - name: obj_id[0x20]
        type: u8
      - name: reserved_at_60[0x3]
        type: u8
      - name: log_obj_range[0x5]
        type: u8
      - name: reserved_at_68[0x18]
        type: u8
      item_type: struct
      name: mlx5_ifc_general_obj_in_cmd_hdr_bits
      pos:
        line_end: 3203
        line_start: 3191
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: obj_id[0x20]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_general_obj_out_cmd_hdr_bits
      pos:
        line_end: 3214
        line_start: 3205
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: modify_field_select[0x40]
        type: u8
      - name: active[0x1]
        type: u8
      - name: reserved_at_41[0x3]
        type: u8
      - name: return_reg_id[0x4]
        type: u8
      - name: table_type[0x8]
        type: u8
      - name: reserved_at_50[0x10]
        type: u8
      - name: reserved_at_60[0x8]
        type: u8
      - name: destination_table_id[0x18]
        type: u8
      - name: reserved_at_80[0x80]
        type: u8
      - name: flow_meter_params[0x100]
        type: u8
      - name: reserved_at_180[0x180]
        type: u8
      - name: sw_steering_icm_address_rx[0x40]
        type: u8
      - name: sw_steering_icm_address_tx[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_flow_meter_bits
      pos:
        line_end: 3236
        line_start: 3216
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_in_cmd_hdr_bits
      - name: meter
        type: struct mlx5_ifc_flow_meter_bits
      item_type: struct
      name: mlx5_ifc_create_flow_meter_in_bits
      pos:
        line_end: 3241
        line_start: 3238
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_out_cmd_hdr_bits
      - name: obj
        type: struct mlx5_ifc_flow_meter_bits
      item_type: struct
      name: mlx5_ifc_query_flow_meter_out_bits
      pos:
        line_end: 3246
        line_start: 3243
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: modify_field_select[0x40]
        type: u8
      - name: table_type[0x8]
        type: u8
      - name: level[0x8]
        type: u8
      - name: reserved_at_50[0xf]
        type: u8
      - name: ignore_flow_level[0x1]
        type: u8
      - name: sample_ratio[0x20]
        type: u8
      - name: reserved_at_80[0x8]
        type: u8
      - name: sample_table_id[0x18]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: default_table_id[0x18]
        type: u8
      - name: sw_steering_icm_address_rx[0x40]
        type: u8
      - name: sw_steering_icm_address_tx[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_flow_sampler_bits
      pos:
        line_end: 3266
        line_start: 3248
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_in_cmd_hdr_bits
      - name: sampler
        type: struct mlx5_ifc_flow_sampler_bits
      item_type: struct
      name: mlx5_ifc_create_flow_sampler_in_bits
      pos:
        line_end: 3271
        line_start: 3268
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_out_cmd_hdr_bits
      - name: obj
        type: struct mlx5_ifc_flow_sampler_bits
      item_type: struct
      name: mlx5_ifc_query_flow_sampler_out_bits
      pos:
        line_end: 3276
        line_start: 3273
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: modify_field_select[0x40]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: reserved_at_80[0x10]
        type: u8
      - name: format_id[0x10]
        type: u8
      - name: reserved_at_60[0x160]
        type: u8
      - name: ctrl[0xA0]
        type: u8
      - name: match_mask_dw_11_8[0x60]
        type: u8
      - name: match_mask_dw_7_0[0x100]
        type: u8
      item_type: struct
      name: mlx5_ifc_definer_bits
      pos:
        line_end: 3291
        line_start: 3278
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_in_cmd_hdr_bits
      - name: definer
        type: struct mlx5_ifc_definer_bits
      item_type: struct
      name: mlx5_ifc_create_definer_in_bits
      pos:
        line_end: 3296
        line_start: 3293
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x3]
        type: u8
      - name: vport_svlan_strip[0x1]
        type: u8
      - name: vport_cvlan_strip[0x1]
        type: u8
      - name: vport_svlan_insert[0x1]
        type: u8
      - name: vport_cvlan_insert[0x2]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: svlan_cfi[0x1]
        type: u8
      - name: svlan_pcp[0x3]
        type: u8
      - name: svlan_id[0xc]
        type: u8
      - name: cvlan_cfi[0x1]
        type: u8
      - name: cvlan_pcp[0x3]
        type: u8
      - name: cvlan_id[0xc]
        type: u8
      - name: reserved_at_40[0x720]
        type: u8
      - name: sw_steering_vport_icm_address_rx[0x40]
        type: u8
      - name: sw_steering_vport_icm_address_tx[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_esw_vport_context_bits
      pos:
        line_end: 3318
        line_start: 3298
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: esw_vport_context
        type: struct mlx5_ifc_esw_vport_context_bits
      item_type: struct
      name: mlx5_ifc_query_esw_vport_context_out_bits
      pos:
        line_end: 3329
        line_start: 3320
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: other_vport[0x1]
        type: u8
      - name: reserved_at_41[0xf]
        type: u8
      - name: vport_number[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_esw_vport_context_in_bits
      pos:
        line_end: 3343
        line_start: 3331
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x1f]
        type: u8
      - name: roce_en[0x1]
        type: u8
      - name: reserved_at_20[0x7e0]
        type: u8
      item_type: struct
      name: mlx5_ifc_nic_vport_context_bits
      pos:
        line_end: 3350
        line_start: 3345
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: nic_vport_context
        type: struct mlx5_ifc_nic_vport_context_bits
      item_type: struct
      name: mlx5_ifc_query_nic_vport_context_out_bits
      pos:
        line_end: 3361
        line_start: 3352
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_nic_vport_context_in_bits
      pos:
        line_end: 3371
        line_start: 3363
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x60]
        type: u8
      - name: reserved_at_60[0x4]
        type: u8
      - name: sl_or_eth_prio[0x4]
        type: u8
      - name: reserved_at_68[0x18]
        type: u8
      - name: reserved_at_80[0x60]
        type: u8
      - name: reserved_at_e0[0x4]
        type: u8
      - name: src_addr_index[0x8]
        type: u8
      - name: reserved_at_ec[0x14]
        type: u8
      - name: rgid_or_rip[16][0x8]
        type: u8
      item_type: struct
      name: mlx5_ifc_ud_av_bits
      pos:
        line_end: 3395
        line_start: 3381
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: fl[0x1]
        type: u8
      - name: free_ar[0x1]
        type: u8
      - name: reserved_at_2[0xe]
        type: u8
      - name: pkey_index[0x10]
        type: u8
      - name: reserved_at_20[0x8]
        type: u8
      - name: grh[0x1]
        type: u8
      - name: mlid[0x7]
        type: u8
      - name: rlid[0x10]
        type: u8
      - name: ack_timeout[0x5]
        type: u8
      - name: reserved_at_45[0x3]
        type: u8
      - name: src_addr_index[0x8]
        type: u8
      - name: reserved_at_50[0x4]
        type: u8
      - name: stat_rate[0x4]
        type: u8
      - name: hop_limit[0x8]
        type: u8
      - name: reserved_at_60[0x4]
        type: u8
      - name: tclass[0x8]
        type: u8
      - name: flow_label[0x14]
        type: u8
      - name: rgid_rip[16][0x8]
        type: u8
      - name: reserved_at_100[0x4]
        type: u8
      - name: f_dscp[0x1]
        type: u8
      - name: f_ecn[0x1]
        type: u8
      - name: reserved_at_106[0x1]
        type: u8
      - name: f_eth_prio[0x1]
        type: u8
      - name: ecn[0x2]
        type: u8
      - name: dscp[0x6]
        type: u8
      - name: udp_sport[0x10]
        type: u8
      - name: dei_cfi[0x1]
        type: u8
      - name: eth_prio[0x3]
        type: u8
      - name: sl[0x4]
        type: u8
      - name: vhca_port_num[0x8]
        type: u8
      - name: rmac_47_32[0x10]
        type: u8
      - name: rmac_31_0[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_ads_bits
      pos:
        line_end: 3437
        line_start: 3397
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: state[0x4]
        type: u8
      - name: lag_tx_port_affinity[0x4]
        type: u8
      - name: st[0x8]
        type: u8
      - name: reserved_at_10[0x2]
        type: u8
      - name: isolate_vl_tc[0x1]
        type: u8
      - name: pm_state[0x2]
        type: u8
      - name: reserved_at_15[0x1]
        type: u8
      - name: req_e2e_credit_mode[0x2]
        type: u8
      - name: offload_type[0x4]
        type: u8
      - name: end_padding_mode[0x2]
        type: u8
      - name: reserved_at_1e[0x2]
        type: u8
      - name: wq_signature[0x1]
        type: u8
      - name: block_lb_mc[0x1]
        type: u8
      - name: atomic_like_write_en[0x1]
        type: u8
      - name: latency_sensitive[0x1]
        type: u8
      - name: reserved_at_24[0x1]
        type: u8
      - name: drain_sigerr[0x1]
        type: u8
      - name: reserved_at_26[0x2]
        type: u8
      - name: pd[0x18]
        type: u8
      - name: mtu[0x3]
        type: u8
      - name: log_msg_max[0x5]
        type: u8
      - name: reserved_at_48[0x1]
        type: u8
      - name: log_rq_size[0x4]
        type: u8
      - name: log_rq_stride[0x3]
        type: u8
      - name: no_sq[0x1]
        type: u8
      - name: log_sq_size[0x4]
        type: u8
      - name: reserved_at_55[0x3]
        type: u8
      - name: ts_format[0x2]
        type: u8
      - name: data_in_order[0x1]
        type: u8
      - name: rlky[0x1]
        type: u8
      - name: ulp_stateless_offload_mode[0x4]
        type: u8
      - name: counter_set_id[0x8]
        type: u8
      - name: uar_page[0x18]
        type: u8
      - name: send_dbr_mode[0x2]
        type: u8
      - name: reserved_at_82[0x6]
        type: u8
      - name: user_index[0x18]
        type: u8
      - name: reserved_at_a0[0x3]
        type: u8
      - name: log_page_size[0x5]
        type: u8
      - name: remote_qpn[0x18]
        type: u8
      - name: primary_address_path
        type: struct mlx5_ifc_ads_bits
      - name: secondary_address_path
        type: struct mlx5_ifc_ads_bits
      - name: log_ack_req_freq[0x4]
        type: u8
      - name: reserved_at_384[0x4]
        type: u8
      - name: log_sra_max[0x3]
        type: u8
      - name: reserved_at_38b[0x2]
        type: u8
      - name: retry_count[0x3]
        type: u8
      - name: rnr_retry[0x3]
        type: u8
      - name: reserved_at_393[0x1]
        type: u8
      - name: fre[0x1]
        type: u8
      - name: cur_rnr_retry[0x3]
        type: u8
      - name: cur_retry_count[0x3]
        type: u8
      - name: reserved_at_39b[0x5]
        type: u8
      - name: reserved_at_3a0[0x20]
        type: u8
      - name: reserved_at_3c0[0x8]
        type: u8
      - name: next_send_psn[0x18]
        type: u8
      - name: reserved_at_3e0[0x8]
        type: u8
      - name: cqn_snd[0x18]
        type: u8
      - name: reserved_at_400[0x8]
        type: u8
      - name: deth_sqpn[0x18]
        type: u8
      - name: reserved_at_420[0x20]
        type: u8
      - name: reserved_at_440[0x8]
        type: u8
      - name: last_acked_psn[0x18]
        type: u8
      - name: reserved_at_460[0x8]
        type: u8
      - name: ssn[0x18]
        type: u8
      - name: reserved_at_480[0x8]
        type: u8
      - name: log_rra_max[0x3]
        type: u8
      - name: reserved_at_48b[0x1]
        type: u8
      - name: atomic_mode[0x4]
        type: u8
      - name: rre[0x1]
        type: u8
      - name: rwe[0x1]
        type: u8
      - name: rae[0x1]
        type: u8
      - name: reserved_at_493[0x1]
        type: u8
      - name: page_offset[0x6]
        type: u8
      - name: reserved_at_49a[0x3]
        type: u8
      - name: cd_slave_receive[0x1]
        type: u8
      - name: cd_slave_send[0x1]
        type: u8
      - name: cd_master[0x1]
        type: u8
      - name: reserved_at_4a0[0x3]
        type: u8
      - name: min_rnr_nak[0x5]
        type: u8
      - name: next_rcv_psn[0x18]
        type: u8
      - name: reserved_at_4c0[0x8]
        type: u8
      - name: xrcd[0x18]
        type: u8
      - name: reserved_at_4e0[0x8]
        type: u8
      - name: cqn_rcv[0x18]
        type: u8
      - name: dbr_addr[0x40]
        type: u8
      - name: q_key[0x20]
        type: u8
      - name: reserved_at_560[0x5]
        type: u8
      - name: rq_type[0x3]
        type: u8
      - name: srqn_rmpn_xrqn[0x18]
        type: u8
      - name: reserved_at_580[0x8]
        type: u8
      - name: rmsn[0x18]
        type: u8
      - name: hw_sq_wqebb_counter[0x10]
        type: u8
      - name: sw_sq_wqebb_counter[0x10]
        type: u8
      - name: hw_rq_counter[0x20]
        type: u8
      - name: sw_rq_counter[0x20]
        type: u8
      - name: reserved_at_600[0x20]
        type: u8
      - name: reserved_at_620[0xf]
        type: u8
      - name: cgs[0x1]
        type: u8
      - name: cs_req[0x8]
        type: u8
      - name: cs_res[0x8]
        type: u8
      - name: dc_access_key[0x40]
        type: u8
      - name: reserved_at_680[0x3]
        type: u8
      - name: dbr_umem_valid[0x1]
        type: u8
      - name: reserved_at_684[0x9c]
        type: u8
      - name: dbr_umem_id[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_qpc_bits
      pos:
        line_end: 3583
        line_start: 3445
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x2]
        type: u8
      - name: mmo[0x1]
        type: u8
      - name: reserved_at_3[0xd]
        type: u8
      - name: dci_stream_channel_id[0x10]
        type: u8
      - name: qos_queue_group_id_requester[0x20]
        type: u8
      - name: qos_queue_group_id_responder[0x20]
        type: u8
      - name: reserved_at_60[0x5a0]
        type: u8
      item_type: struct
      name: mlx5_ifc_qpc_ext_bits
      pos:
        line_end: 3596
        line_start: 3585
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: icm_address_63_40[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: icm_address_39_32[0x8]
        type: u8
      - name: tirn[0x18]
        type: u8
      - name: icm_address_31_0[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_tir_out_bits
      pos:
        line_end: 3608
        line_start: 3598
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: tirn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_tir_in_bits
      pos:
        line_end: 3620
        line_start: 3610
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: qpn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_qp_out_bits
      pos:
        line_end: 3632
        line_start: 3622
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: opt_param_mask[0x20]
        type: u8
      - name: reserved_at_a0[0x20]
        type: u8
      - name: qpc
        type: struct mlx5_ifc_qpc_bits
      - name: reserved_at_800[0x40]
        type: u8
      - name: wq_umem_id[0x20]
        type: u8
      - name: wq_umem_valid[0x1]
        type: u8
      - name: reserved_at_861[0x1f]
        type: u8
      - name: pas[0][0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_qp_in_bits
      pos:
        line_end: 3657
        line_start: 3634
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: qpn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_qp_in_bits
      pos:
        line_end: 3669
        line_start: 3659
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_init2init_qp_out_bits
      pos:
        line_end: 3690
        line_start: 3683
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: qpc_ext[0x1]
        type: u8
      - name: reserved_at_41[0x7]
        type: u8
      - name: qpn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: opt_param_mask[0x20]
        type: u8
      - name: reserved_at_a0[0x20]
        type: u8
      - name: qpc
        type: struct mlx5_ifc_qpc_bits
      - name: reserved_at_800[0x40]
        type: u8
      - name: opt_param_mask_95_32[0x40]
        type: u8
      - name: qpc_data_ext
        type: struct mlx5_ifc_qpc_ext_bits
      item_type: struct
      name: mlx5_ifc_init2init_qp_in_bits
      pos:
        line_end: 3716
        line_start: 3692
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_init2rtr_qp_out_bits
      pos:
        line_end: 3725
        line_start: 3718
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: qpn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: opt_param_mask[0x20]
        type: u8
      - name: reserved_at_a0[0x20]
        type: u8
      - name: qpc
        type: struct mlx5_ifc_qpc_bits
      - name: reserved_at_800[0x80]
        type: u8
      item_type: struct
      name: mlx5_ifc_init2rtr_qp_in_bits
      pos:
        line_end: 3746
        line_start: 3727
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_rtr2rts_qp_out_bits
      pos:
        line_end: 3755
        line_start: 3748
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: qpn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: opt_param_mask[0x20]
        type: u8
      - name: reserved_at_a0[0x20]
        type: u8
      - name: qpc
        type: struct mlx5_ifc_qpc_bits
      - name: reserved_at_800[0x80]
        type: u8
      item_type: struct
      name: mlx5_ifc_rtr2rts_qp_in_bits
      pos:
        line_end: 3776
        line_start: 3757
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_rst2init_qp_out_bits
      pos:
        line_end: 3785
        line_start: 3778
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: qpn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: opt_param_mask[0x20]
        type: u8
      - name: reserved_at_a0[0x20]
        type: u8
      - name: qpc
        type: struct mlx5_ifc_qpc_bits
      - name: reserved_at_800[0x80]
        type: u8
      item_type: struct
      name: mlx5_ifc_rst2init_qp_in_bits
      pos:
        line_end: 3806
        line_start: 3787
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_rts2rts_qp_out_bits
      pos:
        line_end: 3815
        line_start: 3808
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: qpc_ext[0x1]
        type: u8
      - name: reserved_at_41[0x7]
        type: u8
      - name: qpn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: opt_param_mask[0x20]
        type: u8
      - name: reserved_at_a0[0x20]
        type: u8
      - name: qpc
        type: struct mlx5_ifc_qpc_bits
      - name: reserved_at_800[0x40]
        type: u8
      - name: opt_param_mask_95_32[0x40]
        type: u8
      - name: qpc_data_ext
        type: struct mlx5_ifc_qpc_ext_bits
      item_type: struct
      name: mlx5_ifc_rts2rts_qp_in_bits
      pos:
        line_end: 3841
        line_start: 3817
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: uint8_t
      - name: uid[0x10]
        type: uint8_t
      - name: vhca_tunnel_id[0x10]
        type: uint8_t
      - name: op_mod[0x10]
        type: uint8_t
      - name: reserved_at_40[0x8]
        type: uint8_t
      - name: qpn[0x18]
        type: uint8_t
      - name: reserved_at_60[0x20]
        type: uint8_t
      item_type: struct
      name: mlx5_ifc_qp_2rst_in_bits
      pos:
        line_end: 3854
        line_start: 3843
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: uint8_t
      - name: reserved_at_8[0x18]
        type: uint8_t
      - name: syndrome[0x20]
        type: uint8_t
      - name: reserved_at_40[0x40]
        type: uint8_t
      item_type: struct
      name: mlx5_ifc_qp_2rst_out_bits
      pos:
        line_end: 3863
        line_start: 3856
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: uint8_t
      - name: uid[0x10]
        type: uint8_t
      - name: vhca_tunnel_id[0x10]
        type: uint8_t
      - name: op_mod[0x10]
        type: uint8_t
      - name: reserved_at_40[0x8]
        type: uint8_t
      - name: qpn[0x18]
        type: uint8_t
      - name: reserved_at_60[0x20]
        type: uint8_t
      item_type: struct
      name: mlx5_ifc_qp_2err_in_bits
      pos:
        line_end: 3876
        line_start: 3865
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: uint8_t
      - name: reserved_at_8[0x18]
        type: uint8_t
      - name: syndrome[0x20]
        type: uint8_t
      - name: reserved_at_40[0x40]
        type: uint8_t
      item_type: struct
      name: mlx5_ifc_qp_2err_out_bits
      pos:
        line_end: 3885
        line_start: 3878
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: qpc_data_extension[48][0x20]
        type: uint8_t
      - name: pas[0][0x40]
        type: uint8_t
      item_type: struct
      name: mlx5_ifc_qpc_extension_and_pas_list_in_bits
      pos:
        line_end: 3891
        line_start: 3887
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: opt_param_mask[0x20]
        type: u8
      - name: reserved_at_a0[0x20]
        type: u8
      - name: qpc
        type: struct mlx5_ifc_qpc_bits
      - name: reserved_at_800[0x80]
        type: u8
      - name: pas[0][0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_qp_out_bits
      pos:
        line_end: 3910
        line_start: 3893
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: qpn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_qp_in_bits
      pos:
        line_end: 3923
        line_start: 3912
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: dctc
        type: struct mlx5_ifc_dctc_bits
      item_type: struct
      name: mlx5_ifc_query_dct_out_bits
      pos:
        line_end: 3934
        line_start: 3925
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: dctn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_dct_in_bits
      pos:
        line_end: 3947
        line_start: 3936
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: strict_lag_tx_port_affinity[0x1]
        type: u8
      - name: tls_en[0x1]
        type: u8
      - name: reserved_at_2[0x2]
        type: u8
      - name: lag_tx_port_affinity[0x04]
        type: u8
      - name: reserved_at_8[0x4]
        type: u8
      - name: prio[0x4]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x100]
        type: u8
      - name: reserved_at_120[0x8]
        type: u8
      - name: transport_domain[0x18]
        type: u8
      - name: reserved_at_140[0x8]
        type: u8
      - name: underlay_qpn[0x18]
        type: u8
      - name: reserved_at_160[0x8]
        type: u8
      - name: pd[0x18]
        type: u8
      - name: reserved_at_180[0x380]
        type: u8
      item_type: struct
      name: mlx5_ifc_tisc_bits
      pos:
        line_end: 3971
        line_start: 3949
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: tis_context
        type: struct mlx5_ifc_tisc_bits
      item_type: struct
      name: mlx5_ifc_query_tis_out_bits
      pos:
        line_end: 3982
        line_start: 3973
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: tisn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_tis_in_bits
      pos:
        line_end: 3995
        line_start: 3984
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x1d]
        type: u8
      - name: lag_state[0x3]
        type: u8
      - name: reserved_at_20[0x14]
        type: u8
      - name: tx_remap_affinity_2[0x4]
        type: u8
      - name: reserved_at_38[0x4]
        type: u8
      - name: tx_remap_affinity_1[0x4]
        type: u8
      item_type: struct
      name: mlx5_ifc_lagc_bits
      pos:
        line_end: 4005
        line_start: 3997
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: ctx
        type: struct mlx5_ifc_lagc_bits
      item_type: struct
      name: mlx5_ifc_query_lag_out_bits
      pos:
        line_end: 4014
        line_start: 4007
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_lag_in_bits
      pos:
        line_end: 4024
        line_start: 4016
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: modify_field_select[0x40]
        type: u8
      - name: reserved_at_40[0x20]
        type: u8
      - name: qpn[0x20]
        type: u8
      - name: remote_address_vector
        type: struct mlx5_ifc_ud_av_bits
      item_type: struct
      name: mlx5_ifc_av_qp_mapping_bits
      pos:
        line_end: 4034
        line_start: 4026
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_in_cmd_hdr_bits
      - name: mapping
        type: struct mlx5_ifc_av_qp_mapping_bits
      item_type: struct
      name: mlx5_ifc_create_av_qp_mapping_in_bits
      pos:
        line_end: 4039
        line_start: 4036
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_out_cmd_hdr_bits
      - name: obj
        type: struct mlx5_ifc_av_qp_mapping_bits
      item_type: struct
      name: mlx5_ifc_query_av_qp_mapping_out_bits
      pos:
        line_end: 4044
        line_start: 4041
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_modify_tis_out_bits
      pos:
        line_end: 4053
        line_start: 4046
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x20]
        type: u8
      - name: reserved_at_20[0x1d]
        type: u8
      - name: lag_tx_port_affinity[0x1]
        type: u8
      - name: strict_lag_tx_port_affinity[0x1]
        type: u8
      - name: prio[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_modify_tis_bitmask_bits
      pos:
        line_end: 4062
        line_start: 4055
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: tisn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: bitmask
        type: struct mlx5_ifc_modify_tis_bitmask_bits
      - name: reserved_at_c0[0x40]
        type: u8
      - name: ctx
        type: struct mlx5_ifc_tisc_bits
      item_type: struct
      name: mlx5_ifc_modify_tis_in_bits
      pos:
        line_end: 4081
        line_start: 4064
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: source_l3_address[4][0x20]
        type: u8
      - name: reserved_at_80[0x2]
        type: u8
      - name: rx_allow_untagged[0x1]
        type: u8
      - name: vlan_valid[0x1]
        type: u8
      - name: vlan_id[0xc]
        type: u8
      - name: source_mac_47_32[0x10]
        type: u8
      - name: source_mac_31_0[0x20]
        type: u8
      - name: reserved_at_c0[0x14]
        type: u8
      - name: roce_l3_type[0x4]
        type: u8
      - name: roce_version[0x8]
        type: u8
      - name: reserved_at_e0[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_roce_addr_layout_bits
      pos:
        line_end: 4104
        line_start: 4088
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: uint8_t
      - name: reserved_at_8[0x18]
        type: uint8_t
      - name: syndrome[0x20]
        type: uint8_t
      - name: reserved_at_40[0x20]
        type: uint8_t
      - name: roce_address_num[0x10]
        type: uint8_t
      - name: reserved_at_70[0x10]
        type: uint8_t
      - name: roce_address[0]
        type: struct mlx5_ifc_roce_addr_layout_bits
      item_type: struct
      name: mlx5_ifc_query_roce_address_out_bits
      pos:
        line_end: 4118
        line_start: 4106
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: roce_address_index[0x10]
        type: u8
      - name: reserved_at_50[0xc]
        type: u8
      - name: vhca_port_num[0x4]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_roce_address_in_bits
      pos:
        line_end: 4132
        line_start: 4120
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x8]
        type: u8
      - name: destination_field_code[0x8]
        type: u8
      - name: reserved_at_10[0x2]
        type: u8
      - name: destination_left_shifter[0x6]
        type: u8
      - name: reserved_at_18[0x3]
        type: u8
      - name: destination_length[0x5]
        type: u8
      - name: inline_data[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dr_action_hw_set_bits
      pos:
        line_end: 4144
        line_start: 4135
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x8]
        type: u8
      - name: destination_field_code[0x8]
        type: u8
      - name: reserved_at_10[0x2]
        type: u8
      - name: destination_left_shifter[0x6]
        type: u8
      - name: reserved_at_18[0x2]
        type: u8
      - name: destination_length[0x6]
        type: u8
      - name: reserved_at_20[0x8]
        type: u8
      - name: source_field_code[0x8]
        type: u8
      - name: reserved_at_30[0x2]
        type: u8
      - name: source_left_shifter[0x6]
        type: u8
      - name: reserved_at_38[0x8]
        type: u8
      item_type: struct
      name: mlx5_ifc_dr_action_hw_copy_bits
      pos:
        line_end: 4159
        line_start: 4146
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: host_number[0x8]
        type: u8
      - name: reserved_at_8[0x6]
        type: u8
      - name: host_pf_vhca_id_valid[0x1]
        type: u8
      - name: host_pf_disabled[0x1]
        type: u8
      - name: host_num_of_vfs[0x10]
        type: u8
      - name: host_total_vfs[0x10]
        type: u8
      - name: host_pci_bus[0x10]
        type: u8
      - name: host_pf_vhca_id[0x10]
        type: u8
      - name: host_pci_device[0x10]
        type: u8
      - name: reserved_at_60[0x10]
        type: u8
      - name: host_pci_function[0x10]
        type: u8
      - name: reserved_at_80[0x180]
        type: u8
      item_type: struct
      name: mlx5_ifc_host_params_context_bits
      pos:
        line_end: 4178
        line_start: 4161
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_esw_functions_in_bits
      pos:
        line_end: 4188
        line_start: 4180
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: host_params_context
        type: struct mlx5_ifc_host_params_context_bits
      - name: reserved_at_280[0x180]
        type: u8
      - name: host_sf_enable[0][0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_esw_functions_out_bits
      pos:
        line_end: 4202
        line_start: 4190
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: other_vport[0x1]
        type: u8
      - name: reserved_at_41[0xf]
        type: u8
      - name: vport_number[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: table_type[0x8]
        type: u8
      - name: reserved_at_88[0x18]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: table_id[0x18]
        type: u8
      - name: reserved_at_c0[0x1f40]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_flow_group_in_bits
      pos:
        line_end: 4223
        line_start: 4204
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: group_id[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_flow_group_out_bits
      pos:
        line_end: 4235
        line_start: 4225
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: other_vport[0x1]
        type: u8
      - name: reserved_at_41[0xf]
        type: u8
      - name: vport_number[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: table_type[0x8]
        type: u8
      - name: reserved_at_88[0x18]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: table_id[0x18]
        type: u8
      - name: group_id[0x20]
        type: u8
      - name: reserved_at_e0[0x120]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_flow_group_in_bits
      pos:
        line_end: 4258
        line_start: 4237
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: destination_type[0x8]
        type: u8
      - name: destination_id[0x18]
        type: u8
      - name: reserved_at_20[0x1]
        type: u8
      - name: packet_reformat[0x1]
        type: u8
      - name: reserved_at_22[0x1e]
        type: u8
      item_type: struct
      name: mlx5_ifc_dest_format_bits
      pos:
        line_end: 4267
        line_start: 4260
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: destination_entry
        type: struct mlx5_ifc_dest_format_bits
      - name: packet_reformat_id[0x20]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_extended_dest_format_bits
      pos:
        line_end: 4275
        line_start: 4269
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: flow_counter_id[0x20]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_flow_counter_list_bits
      pos:
        line_end: 4281
        line_start: 4277
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_00[0x20]
        type: u8
      - name: group_id[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: flow_tag[0x18]
        type: u8
      - name: reserved_at_60[0x10]
        type: u8
      - name: action[0x10]
        type: u8
      - name: extended_destination[0x1]
        type: u8
      - name: reserved_at_81[0x7]
        type: u8
      - name: destination_list_size[0x18]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: flow_counter_list_size[0x18]
        type: u8
      - name: reserved_at_c0[0x1740]
        type: u8
      - name: destination[0]
        type: union mlx5_ifc_dest_format_flow_counter_list_auto_bits
      item_type: struct
      name: mlx5_ifc_flow_context_bits
      pos:
        line_end: 4310
        line_start: 4289
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: other_vport[0x1]
        type: u8
      - name: reserved_at_41[0xf]
        type: u8
      - name: vport_number[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: table_type[0x8]
        type: u8
      - name: reserved_at_88[0x18]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: table_id[0x18]
        type: u8
      - name: reserved_at_c0[0x40]
        type: u8
      - name: flow_index[0x20]
        type: u8
      - name: reserved_at_120[0xe0]
        type: u8
      - name: flow_context
        type: struct mlx5_ifc_flow_context_bits
      item_type: struct
      name: mlx5_ifc_set_fte_in_bits
      pos:
        line_end: 4336
        line_start: 4312
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_set_fte_out_bits
      pos:
        line_end: 4345
        line_start: 4338
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x8]
        type: u8
      - name: tsar_type[0x8]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      item_type: struct
      name: mlx5_ifc_sched_elem_attr_tsar_bits
      pos:
        line_end: 4392
        line_start: 4388
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: element_type[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: sched_elem_attr
        type: union mlx5_ifc_sched_elem_attr_bits
      - name: parent_element_id[0x20]
        type: u8
      - name: reserved_at_60[0x40]
        type: u8
      - name: bw_share[0x20]
        type: u8
      - name: max_average_bw[0x20]
        type: u8
      - name: reserved_at_e0[0x120]
        type: u8
      item_type: struct
      name: mlx5_ifc_sched_context_bits
      pos:
        line_end: 4413
        line_start: 4398
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: modify_field_select[0x40]
        type: u8
      - name: scheduling_hierarchy[0x8]
        type: u8
      - name: reserved_at_48[0x18]
        type: u8
      - name: reserved_at_60[0xa0]
        type: u8
      - name: sched_context
        type: struct mlx5_ifc_sched_context_bits
      - name: reserved_at_300[0x100]
        type: u8
      item_type: struct
      name: mlx5_ifc_sched_elem_bits
      pos:
        line_end: 4426
        line_start: 4415
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_in_cmd_hdr_bits
      - name: sched_elem
        type: struct mlx5_ifc_sched_elem_bits
      item_type: struct
      name: mlx5_ifc_create_sched_elem_in_bits
      pos:
        line_end: 4431
        line_start: 4428
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_in_cmd_hdr_bits
      - name: sched_elem
        type: struct mlx5_ifc_sched_elem_bits
      item_type: struct
      name: mlx5_ifc_create_modify_elem_in_bits
      pos:
        line_end: 4436
        line_start: 4433
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x8]
        type: u8
      - name: state[0x4]
        type: u8
      - name: reserved_at_c[0x14]
        type: u8
      - name: reserved_at_20[0xe0]
        type: u8
      - name: reserved_at_100[0x10]
        type: u8
      - name: qos_queue_group_id[0x10]
        type: u8
      - name: reserved_at_120[0x660]
        type: u8
      item_type: struct
      name: mlx5_ifc_sqc_bits
      pos:
        line_end: 4453
        line_start: 4442
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_modify_sq_out_bits
      pos:
        line_end: 4466
        line_start: 4459
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: sq_state[0x4]
        type: u8
      - name: reserved_at_44[0x4]
        type: u8
      - name: sqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: modify_bitmask[0x40]
        type: u8
      - name: reserved_at_c0[0x40]
        type: u8
      - name: sq_context
        type: struct mlx5_ifc_sqc_bits
      item_type: struct
      name: mlx5_ifc_modify_sq_in_bits
      pos:
        line_end: 4486
        line_start: 4468
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x80]
        type: u8
      item_type: struct
      name: mlx5_ifc_reserved_qpn_bits
      pos:
        line_end: 4490
        line_start: 4488
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_in_cmd_hdr_bits
      - name: rqpns
        type: struct mlx5_ifc_reserved_qpn_bits
      item_type: struct
      name: mlx5_ifc_create_reserved_qpn_in_bits
      pos:
        line_end: 4495
        line_start: 4492
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: reserved_at_80[0x8]
        type: u8
      - name: psv0_index[0x18]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: psv1_index[0x18]
        type: u8
      - name: reserved_at_c0[0x8]
        type: u8
      - name: psv2_index[0x18]
        type: u8
      - name: reserved_at_e0[0x8]
        type: u8
      - name: psv3_index[0x18]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_psv_out_bits
      pos:
        line_end: 4516
        line_start: 4497
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: num_psv[0x4]
        type: u8
      - name: reserved_at_44[0x4]
        type: u8
      - name: pd[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_psv_in_bits
      pos:
        line_end: 4530
        line_start: 4518
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: psvn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_psv_in_bits
      pos:
        line_end: 4542
        line_start: 4532
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_mbox_out_bits
      pos:
        line_end: 4551
        line_start: 4544
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_mbox_in_bits
      pos:
        line_end: 4561
        line_start: 4553
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x10]
        type: u8
      - name: function_id[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_enable_hca_in_bits
      pos:
        line_end: 4574
        line_start: 4563
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_enable_hca_out_bits
      pos:
        line_end: 4583
        line_start: 4576
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x10]
        type: u8
      - name: current_issi[0x10]
        type: u8
      - name: reserved_at_60[0xa0]
        type: u8
      - name: reserved_at_100[76][0x8]
        type: u8
      - name: supported_issi_dw0[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_issi_out_bits
      pos:
        line_end: 4598
        line_start: 4585
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_issi_in_bits
      pos:
        line_end: 4608
        line_start: 4600
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_set_issi_out_bits
      pos:
        line_end: 4617
        line_start: 4610
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x10]
        type: u8
      - name: current_issi[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_set_issi_in_bits
      pos:
        line_end: 4630
        line_start: 4619
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: embedded_cpu_function[0x01]
        type: u8
      - name: reserved_bits[0x0f]
        type: u8
      - name: function_id[0x10]
        type: u8
      - name: num_pages[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_pages_out_bits
      pos:
        line_end: 4643
        line_start: 4632
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x10]
        type: u8
      - name: function_id[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_query_pages_in_bits
      pos:
        line_end: 4656
        line_start: 4645
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: output_num_entries[0x20]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: pas[][0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_manage_pages_out_bits
      pos:
        line_end: 4669
        line_start: 4658
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: embedded_cpu_function[0x1]
        type: u8
      - name: reserved_at_41[0xf]
        type: u8
      - name: function_id[0x10]
        type: u8
      - name: input_num_entries[0x20]
        type: u8
      - name: pas[][0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_manage_pages_in_bits
      pos:
        line_end: 4685
        line_start: 4671
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x3f]
        type: u8
      - name: state[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_teardown_hca_out_bits
      pos:
        line_end: 4700
        line_start: 4691
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x10]
        type: u8
      - name: profile[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_teardown_hca_in_bits
      pos:
        line_end: 4718
        line_start: 4707
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_init_hca_out_bits
      pos:
        line_end: 4727
        line_start: 4720
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_init_hca_in_bits
      pos:
        line_end: 4737
        line_start: 4729
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: register_data[][0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_access_register_out_bits
      pos:
        line_end: 4748
        line_start: 4739
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x10]
        type: u8
      - name: register_id[0x10]
        type: u8
      - name: argument[0x20]
        type: u8
      - name: register_data[][0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_access_register_in_bits
      pos:
        line_end: 4763
        line_start: 4750
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_modify_nic_vport_context_out_bits
      pos:
        line_end: 4772
        line_start: 4765
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x12]
        type: u8
      - name: affiliation[0x1]
        type: u8
      - name: reserved_at_13[0x1]
        type: u8
      - name: disable_uc_local_lb[0x1]
        type: u8
      - name: disable_mc_local_lb[0x1]
        type: u8
      - name: node_guid[0x1]
        type: u8
      - name: port_guid[0x1]
        type: u8
      - name: min_inline[0x1]
        type: u8
      - name: mtu[0x1]
        type: u8
      - name: change_event[0x1]
        type: u8
      - name: promisc[0x1]
        type: u8
      - name: permanent_address[0x1]
        type: u8
      - name: addresses_list[0x1]
        type: u8
      - name: roce_en[0x1]
        type: u8
      - name: reserved_at_1f[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_modify_nic_vport_field_select_bits
      pos:
        line_end: 4790
        line_start: 4774
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: other_vport[0x1]
        type: u8
      - name: reserved_at_41[0xf]
        type: u8
      - name: vport_number[0x10]
        type: u8
      - name: field_select
        type: struct mlx5_ifc_modify_nic_vport_field_select_bits
      - name: reserved_at_80[0x780]
        type: u8
      - name: nic_vport_context
        type: struct mlx5_ifc_nic_vport_context_bits
      item_type: struct
      name: mlx5_ifc_modify_nic_vport_context_in_bits
      pos:
        line_end: 4808
        line_start: 4792
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_set_hca_cap_out_bits
      pos:
        line_end: 4817
        line_start: 4810
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: other_function[0x1]
        type: u8
      - name: reserved_at_41[0xf]
        type: u8
      - name: function_id[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: capability
        type: union mlx5_ifc_hca_cap_union_bits
      item_type: struct
      name: mlx5_ifc_set_hca_cap_in_bits
      pos:
        line_end: 4833
        line_start: 4819
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: uar[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_alloc_uar_out_bits
      pos:
        line_end: 4845
        line_start: 4835
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_alloc_uar_in_bits
      pos:
        line_end: 4855
        line_start: 4847
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_dealloc_uar_out_bits
      pos:
        line_end: 4864
        line_start: 4857
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: uar[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dealloc_uar_in_bits
      pos:
        line_end: 4877
        line_start: 4866
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x4]
        type: u8
      - name: reserved_at_4[0x9]
        type: u8
      - name: ec[0x1]
        type: u8
      - name: oi[0x1]
        type: u8
      - name: reserved_at_f[0x5]
        type: u8
      - name: st[0x4]
        type: u8
      - name: reserved_at_18[0x8]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x14]
        type: u8
      - name: page_offset[0x6]
        type: u8
      - name: reserved_at_5a[0x6]
        type: u8
      - name: reserved_at_60[0x3]
        type: u8
      - name: log_eq_size[0x5]
        type: u8
      - name: uar_page[0x18]
        type: u8
      - name: reserved_at_80[0x20]
        type: u8
      - name: reserved_at_a0[0x18]
        type: u8
      - name: intr[0x8]
        type: u8
      - name: reserved_at_c0[0x3]
        type: u8
      - name: log_page_size[0x5]
        type: u8
      - name: reserved_at_c8[0x18]
        type: u8
      - name: reserved_at_e0[0x60]
        type: u8
      - name: reserved_at_140[0x8]
        type: u8
      - name: consumer_counter[0x18]
        type: u8
      - name: reserved_at_160[0x8]
        type: u8
      - name: producer_counter[0x18]
        type: u8
      - name: reserved_at_180[0x80]
        type: u8
      item_type: struct
      name: mlx5_ifc_eqc_bits
      pos:
        line_end: 4916
        line_start: 4879
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x18]
        type: u8
      - name: eq_number[0x8]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_eq_out_bits
      pos:
        line_end: 4928
        line_start: 4918
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: eq_context_entry
        type: struct mlx5_ifc_eqc_bits
      - name: reserved_at_280[0x40]
        type: u8
      - name: event_bitmask[4][0x40]
        type: u8
      - name: reserved_at_3c0[0x4c0]
        type: u8
      - name: pas[][0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_eq_in_bits
      pos:
        line_end: 4948
        line_start: 4930
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_eq_out_bits
      pos:
        line_end: 4957
        line_start: 4950
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x18]
        type: u8
      - name: eq_number[0x8]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_eq_in_bits
      pos:
        line_end: 4970
        line_start: 4959
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: pd[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_alloc_pd_out_bits
      pos:
        line_end: 4982
        line_start: 4972
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_alloc_pd_in_bits
      pos:
        line_end: 4992
        line_start: 4984
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_dealloc_pd_out_bits
      pos:
        line_end: 5001
        line_start: 4994
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: pd[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dealloc_pd_in_bits
      pos:
        line_end: 5014
        line_start: 5003
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: ptag_63_32[0x20]
        type: u8
      - name: ptag_31_8[0x18]
        type: u8
      - name: reserved_at_38[0x6]
        type: u8
      - name: wr_en[0x1]
        type: u8
      - name: rd_en[0x1]
        type: u8
      item_type: struct
      name: mlx5_ifc_mtt_bits
      pos:
        line_end: 5023
        line_start: 5016
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x80]
        type: u8
      - name: reserved_at_80[0x1b]
        type: u8
      - name: log_page_size[0x5]
        type: u8
      - name: page_offset[0x20]
        type: u8
      - name: num_of_mtt[0x40]
        type: u8
      - name: mtt[]
        type: struct mlx5_ifc_mtt_bits
      item_type: struct
      name: mlx5_ifc_umem_bits
      pos:
        line_end: 5036
        line_start: 5025
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: umem
        type: struct mlx5_ifc_umem_bits
      item_type: struct
      name: mlx5_ifc_create_umem_in_bits
      pos:
        line_end: 5048
        line_start: 5038
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: umem_id[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_umem_out_bits
      pos:
        line_end: 5060
        line_start: 5050
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x10]
        type: u8
      - name: op_mod[0x10]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: umem_id[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_umem_in_bits
      pos:
        line_end: 5073
        line_start: 5062
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: u8
      - name: reserved_at_8[0x18]
        type: u8
      - name: syndrome[0x20]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_umem_out_bits
      pos:
        line_end: 5082
        line_start: 5075
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: other_vport[0x1]
        type: u8
      - name: reserved_at_41[0xf]
        type: u8
      - name: vport_number[0x10]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: table_type[0x8]
        type: u8
      - name: reserved_at_88[0x18]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: table_id[0x18]
        type: u8
      - name: reserved_at_c0[0x40]
        type: u8
      - name: flow_index[0x20]
        type: u8
      - name: reserved_at_120[0xe0]
        type: u8
      item_type: struct
      name: mlx5_ifc_delete_fte_in_bits
      pos:
        line_end: 5107
        line_start: 5084
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: cqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_cq_out_bits
      pos:
        line_end: 5116
        line_start: 5109
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: cqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_cq_in_bits
      pos:
        line_end: 5128
        line_start: 5118
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: transport_domain[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_alloc_transport_domain_out_bits
      pos:
        line_end: 5137
        line_start: 5130
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: transport_domain[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dealloc_transport_domain_in_bits
      pos:
        line_end: 5149
        line_start: 5139
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: wq_type[0x4]
        type: uint8_t
      - name: wq_signature[0x1]
        type: uint8_t
      - name: end_padding_mode[0x2]
        type: uint8_t
      - name: cd_slave[0x1]
        type: uint8_t
      - name: reserved_at_8[0x18]
        type: uint8_t
      - name: reserved_at_20[0x1]
        type: uint8_t
      - name: reserved_at_21[0x3]
        type: uint8_t
      - name: reserved_at_24[0x7]
        type: uint8_t
      - name: page_offset[0x5]
        type: uint8_t
      - name: reserved_at_30[0x10]
        type: uint8_t
      - name: reserved_at_40[0x8]
        type: uint8_t
      - name: pd[0x18]
        type: uint8_t
      - name: reserved_at_60[0x8]
        type: uint8_t
      - name: uar_page[0x18]
        type: uint8_t
      - name: dbr_addr[0x40]
        type: uint8_t
      - name: reserved_at_c0[0x20]
        type: uint8_t
      - name: reserved_at_e0[0x20]
        type: uint8_t
      - name: reserved_at_100[0xc]
        type: uint8_t
      - name: log_wq_stride[0x4]
        type: uint8_t
      - name: reserved_at_110[0x3]
        type: uint8_t
      - name: log_wq_pg_sz[0x5]
        type: uint8_t
      - name: reserved_at_118[0x3]
        type: uint8_t
      - name: log_wq_sz[0x5]
        type: uint8_t
      - name: dbr_umem_valid[0x1]
        type: uint8_t
      - name: wq_umem_valid[0x1]
        type: uint8_t
      - name: reserved_at_122[0x1]
        type: uint8_t
      - name: reserved_at_123[0x5]
        type: uint8_t
      - name: reserved_at_128[0x3]
        type: uint8_t
      - name: reserved_at_12b[0x5]
        type: uint8_t
      - name: reserved_at_130[0x4]
        type: uint8_t
      - name: reserved_at_134[0x4]
        type: uint8_t
      - name: reserved_at_138[0x1]
        type: uint8_t
      - name: reserved_at_139[0x4]
        type: uint8_t
      - name: reserved_at_13d[0x3]
        type: uint8_t
      - name: dbr_umem_id[0x20]
        type: uint8_t
      - name: wq_umem_id[0x20]
        type: uint8_t
      - name: wq_umem_offset[0x40]
        type: uint8_t
      - name: reserved_at_1bc[0x20]
        type: uint8_t
      - name: reserved_at_1dd[0x1]
        type: uint8_t
      - name: reserved_at_1e1[0x1]
        type: uint8_t
      - name: reserved_at_1e2[0x2]
        type: uint8_t
      - name: reserved_at_1e4[0x1]
        type: uint8_t
      - name: reserved_at_1e5[0x3]
        type: uint8_t
      - name: reserved_at_1e8[0x5]
        type: uint8_t
      - name: reserved_at_1ed[0x3]
        type: uint8_t
      - name: reserved_at_1f0[0x6]
        type: uint8_t
      - name: reserved_at_1f6[0x2]
        type: uint8_t
      - name: reserved_at_1fa[0x4]
        type: uint8_t
      - name: reserved_at_1fc[0x4]
        type: uint8_t
      - name: reserved_at_200[0xb]
        type: uint8_t
      - name: reserved_at_20b[0x5]
        type: uint8_t
      - name: reserved_at_210[0x10]
        type: uint8_t
      - name: reserved_at_220[0x3e0]
        type: uint8_t
      - name: pas[0][0x40]
        type: u8
      item_type: struct
      name: mlx5_ifc_wq_bits
      pos:
        line_end: 5222
        line_start: 5151
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x8]
        type: uint8_t
      - name: state[0x4]
        type: uint8_t
      - name: reserved_at_c[0x14]
        type: uint8_t
      - name: basic_cyclic_rcv_wqe[0x1]
        type: uint8_t
      - name: reserved_at_21[0x1f]
        type: uint8_t
      - name: reserved_at_40[0x140]
        type: uint8_t
      - name: wq
        type: struct mlx5_ifc_wq_bits
      item_type: struct
      name: mlx5_ifc_rmpc_bits
      pos:
        line_end: 5235
        line_start: 5224
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: uint8_t
      - name: uid[0x10]
        type: uint8_t
      - name: reserved_at_20[0x10]
        type: uint8_t
      - name: op_mod[0x10]
        type: uint8_t
      - name: reserved_at_40[0xc0]
        type: uint8_t
      - name: ctx
        type: struct mlx5_ifc_rmpc_bits
      item_type: struct
      name: mlx5_ifc_create_rmp_in_bits
      pos:
        line_end: 5247
        line_start: 5237
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: uint8_t
      - name: reserved_at_8[0x18]
        type: uint8_t
      - name: syndrome[0x20]
        type: uint8_t
      - name: reserved_at_40[0x8]
        type: uint8_t
      - name: rmpn[0x18]
        type: uint8_t
      - name: reserved_at_60[0x20]
        type: uint8_t
      item_type: struct
      name: mlx5_ifc_create_rmp_out_bits
      pos:
        line_end: 5259
        line_start: 5249
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: sqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_sq_out_bits
      pos:
        line_end: 5268
        line_start: 5261
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: sqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_sq_in_bits
      pos:
        line_end: 5280
        line_start: 5270
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: rqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_rq_out_bits
      pos:
        line_end: 5289
        line_start: 5282
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: rqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_rq_in_bits
      pos:
        line_end: 5301
        line_start: 5291
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: rqtn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_rqt_out_bits
      pos:
        line_end: 5310
        line_start: 5303
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: rqtn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_rqt_in_bits
      pos:
        line_end: 5322
        line_start: 5312
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: tisn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_tis_out_bits
      pos:
        line_end: 5331
        line_start: 5324
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: tisn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_tis_in_bits
      pos:
        line_end: 5343
        line_start: 5333
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x18]
        type: u8
      - name: counter_set_id[0x8]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_alloc_q_counter_out_bits
      pos:
        line_end: 5352
        line_start: 5345
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x18]
        type: u8
      - name: counter_set_id[0x8]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dealloc_q_counter_in_bits
      pos:
        line_end: 5364
        line_start: 5354
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: modify_header_id[0x20]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_alloc_modify_header_context_out_bits
      pos:
        line_end: 5372
        line_start: 5366
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: modify_header_id[0x20]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dealloc_modify_header_context_in_bits
      pos:
        line_end: 5383
        line_start: 5374
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x80]
        type: u8
      - name: scheduling_element_id[0x20]
        type: u8
      - name: reserved_at_a0[0x160]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_scheduling_element_out_bits
      pos:
        line_end: 5391
        line_start: 5385
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: scheduling_hierarchy[0x8]
        type: u8
      - name: reserved_at_48[0x18]
        type: u8
      - name: reserved_at_60[0x3a0]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_scheduling_element_in_bits
      pos:
        line_end: 5403
        line_start: 5393
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: scheduling_hierarchy[0x8]
        type: u8
      - name: reserved_at_48[0x18]
        type: u8
      - name: scheduling_element_id[0x20]
        type: u8
      - name: reserved_at_80[0x180]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_scheduling_element_in_bits
      pos:
        line_end: 5417
        line_start: 5405
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x60]
        type: u8
      - name: reserved_at_60[0x10]
        type: u8
      - name: vxlan_udp_port[0x10]
        type: u8
      item_type: struct
      name: mlx5_ifc_add_vxlan_udp_dport_in_bits
      pos:
        line_end: 5424
        line_start: 5419
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x40]
        type: u8
      - name: reserved_at_60[0x10]
        type: u8
      - name: vxlan_udp_port[0x10]
        type: u8
      item_type: struct
      name: mlx5_ifc_delete_vxlan_udp_dport_in_bits
      pos:
        line_end: 5434
        line_start: 5426
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0xa0]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: table_index[0x18]
        type: u8
      - name: reserved_at_c0[0x140]
        type: u8
      item_type: struct
      name: mlx5_ifc_set_l2_table_entry_in_bits
      pos:
        line_end: 5443
        line_start: 5436
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: reserved_at_10[0x10]
        type: u8
      - name: reserved_at_20[0x80]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: table_index[0x18]
        type: u8
      - name: reserved_at_c0[0x140]
        type: u8
      item_type: struct
      name: mlx5_ifc_delete_l2_table_entry_in_bits
      pos:
        line_end: 5455
        line_start: 5445
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: srqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_srq_out_bits
      pos:
        line_end: 5464
        line_start: 5457
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: srqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_srq_in_bits
      pos:
        line_end: 5476
        line_start: 5466
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: xrc_srqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_xrc_srq_out_bits
      pos:
        line_end: 5485
        line_start: 5478
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: xrc_srqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_xrc_srq_in_bits
      pos:
        line_end: 5497
        line_start: 5487
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: dctn[0x18]
        type: u8
      - name: ece[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_dct_out_bits
      pos:
        line_end: 5506
        line_start: 5499
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: dctn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_dct_in_bits
      pos:
        line_end: 5518
        line_start: 5508
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: xrqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_create_xrq_out_bits
      pos:
        line_end: 5527
        line_start: 5520
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: xrqn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_destroy_xrq_in_bits
      pos:
        line_end: 5539
        line_start: 5529
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: qpn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: multicast_gid[16][0x8]
        type: u8
      item_type: struct
      name: mlx5_ifc_attach_to_mcg_in_bits
      pos:
        line_end: 5550
        line_start: 5541
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: qpn[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      - name: multicast_gid[16][0x8]
        type: u8
      item_type: struct
      name: mlx5_ifc_detach_from_mcg_in_bits
      pos:
        line_end: 5564
        line_start: 5552
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: reserved_at_0[0x40]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: xrcd[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_alloc_xrcd_out_bits
      pos:
        line_end: 5573
        line_start: 5566
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: u8
      - name: uid[0x10]
        type: u8
      - name: reserved_at_20[0x20]
        type: u8
      - name: reserved_at_40[0x8]
        type: u8
      - name: xrcd[0x18]
        type: u8
      - name: reserved_at_60[0x20]
        type: u8
      item_type: struct
      name: mlx5_ifc_dealloc_xrcd_in_bits
      pos:
        line_end: 5585
        line_start: 5575
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: modify_field_select[0x40]
        type: u8
      - name: reserved_at_40[0x40]
        type: u8
      - name: reserved_at_80[0x4]
        type: u8
      - name: state[0x4]
        type: u8
      - name: credential_pointer[0x18]
        type: u8
      - name: reserved_at_a0[0x8]
        type: u8
      - name: session_import_kek_ptr[0x18]
        type: u8
      - name: reserved_at_c0[0x140]
        type: u8
      - name: credential[12][0x20]
        type: u8
      - name: reserved_at_380[0x480]
        type: u8
      item_type: struct
      name: mlx5_ifc_crypto_login_obj_bits
      pos:
        line_end: 5609
        line_start: 5592
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_in_cmd_hdr_bits
      - name: login_obj
        type: struct mlx5_ifc_crypto_login_obj_bits
      item_type: struct
      name: mlx5_ifc_create_crypto_login_obj_in_bits
      pos:
        line_end: 5614
        line_start: 5611
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_out_cmd_hdr_bits
      - name: obj
        type: struct mlx5_ifc_crypto_login_obj_bits
      item_type: struct
      name: mlx5_ifc_query_crypto_login_obj_out_bits
      pos:
        line_end: 5619
        line_start: 5616
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: modify_field_select[0x40]
        type: u8
      - name: state[0x8]
        type: u8
      - name: reserved_at_48[0xc]
        type: u8
      - name: key_size[0x4]
        type: u8
      - name: has_keytag[0x1]
        type: u8
      - name: reserved_at_59[0x3]
        type: u8
      - name: key_purpose[0x4]
        type: u8
      - name: reserved_at_60[0x8]
        type: u8
      - name: pd[0x18]
        type: u8
      - name: reserved_at_80[0x100]
        type: u8
      - name: opaque[0x40]
        type: u8
      - name: reserved_at_1c0[0x40]
        type: u8
      - name: key[32][0x20]
        type: u8
      - name: reserved_at_600[0x200]
        type: u8
      item_type: struct
      name: mlx5_ifc_encryption_key_obj_bits
      pos:
        line_end: 5657
        line_start: 5635
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_in_cmd_hdr_bits
      - name: key_obj
        type: struct mlx5_ifc_encryption_key_obj_bits
      item_type: struct
      name: mlx5_ifc_create_encryption_key_obj_in_bits
      pos:
        line_end: 5662
        line_start: 5659
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: hdr
        type: struct mlx5_ifc_general_obj_out_cmd_hdr_bits
      - name: obj
        type: struct mlx5_ifc_encryption_key_obj_bits
      item_type: struct
      name: mlx5_ifc_query_encryption_key_obj_out_bits
      pos:
        line_end: 5667
        line_start: 5664
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: opcode[0x10]
        type: uint8_t
      - name: uid[0x10]
        type: uint8_t
      - name: reserved_at_20[0x10]
        type: uint8_t
      - name: op_mod[0x10]
        type: uint8_t
      - name: reserved_at_40[0x40]
        type: uint8_t
      item_type: struct
      name: mlx5_ifc_nop_in_bits
      pos:
        line_end: 5688
        line_start: 5680
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: status[0x8]
        type: uint8_t
      - name: reserved_at_8[0x18]
        type: uint8_t
      - name: syndrome[0x20]
        type: uint8_t
      - name: reserved_at_40[0x40]
        type: uint8_t
      item_type: struct
      name: mlx5_ifc_nop_out_bits
      pos:
        line_end: 5697
        line_start: 5690
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    typedefs: []
    union:
    - fields:
      - name: atomic_caps
        type: struct mlx5_ifc_atomic_caps_bits
      - name: cmd_hca_cap
        type: struct mlx5_ifc_cmd_hca_cap_bits
      - name: flow_table_nic_cap
        type: struct mlx5_ifc_flow_table_nic_cap_bits
      - name: flow_table_eswitch_cap
        type: struct mlx5_ifc_flow_table_eswitch_cap_bits
      - name: e_switch_cap
        type: struct mlx5_ifc_e_switch_cap_bits
      - name: device_mem_cap
        type: struct mlx5_ifc_device_mem_cap_bits
      - name: odp_cap
        type: struct mlx5_ifc_odp_cap_bits
      - name: roce_caps
        type: struct mlx5_ifc_roce_cap_bits
      - name: qos_caps
        type: struct mlx5_ifc_qos_cap_bits
      - name: cmd_hca_cap_2
        type: struct mlx5_ifc_cmd_hca_cap_2_bits
      - name: crypto_caps
        type: struct mlx5_ifc_crypto_caps_bits
      - name: reserved_at_0[0x8000]
        type: u8
      item_type: union
      name: mlx5_ifc_hca_cap_union_bits
      pos:
        line_end: 1510
        line_start: 1497
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: dest_format
        type: struct mlx5_ifc_dest_format_bits
      - name: flow_counter_list
        type: struct mlx5_ifc_flow_counter_list_bits
      - name: reserved_at_0[0x40]
        type: u8
      item_type: union
      name: mlx5_ifc_dest_format_flow_counter_list_auto_bits
      pos:
        line_end: 4287
        line_start: 4283
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
    - fields:
      - name: tsar
        type: struct mlx5_ifc_sched_elem_attr_tsar_bits
      item_type: union
      name: mlx5_ifc_sched_elem_attr_bits
      pos:
        line_end: 4396
        line_start: 4394
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/host/mlx5_ifc.h
- function_names: []
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_dev.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: addr
        type: uint64_t
      - name: key
        type: __be32
      item_type: struct
      name: doca_gpu_dev_verbs_addr
      pos:
        line_end: 58
        line_start: 55
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_dev.h
    - fields:
      - name: add_data
        type: uint32_t
      - name: field_boundary
        type: uint32_t
      - name: reserved
        type: uint64_t
      item_type: struct
      name: doca_gpu_dev_verbs_atomic_32_masked_fa_seg_t
      pos:
        line_end: 64
        line_start: 60
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_dev.h
    - fields:
      - name: add_data
        type: uint64_t
      - name: field_boundary
        type: uint64_t
      item_type: struct
      name: doca_gpu_dev_verbs_atomic_64_masked_fa_seg_t
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_dev.h
    - fields:
      - name: swap_data
        type: uint32_t
      - name: compare_data
        type: uint32_t
      - name: swap_mask
        type: uint32_t
      - name: compare_mask
        type: uint32_t
      item_type: struct
      name: doca_gpu_dev_verbs_atomic_32_masked_cs_seg_t
      pos:
        line_end: 84
        line_start: 79
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_dev.h
    - fields:
      - name: swap
        type: uint64_t
      - name: compare
        type: uint64_t
      item_type: struct
      name: doca_gpu_dev_verbs_atomic_64_masked_cs_seg_t
      pos:
        line_end: 93
        line_start: 90
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_dev.h
    - fields: []
      item_type: struct
      name: doca_gpu_dev_verbs_wqe
      pos:
        line_end: 149
        line_start: 102
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_dev.h
    - fields:
      - name: '*cqe_daddr'
        type: uint8_t
      - name: cq_num
        type: uint32_t
      - name: cqe_num
        type: uint32_t
      - name: '*dbrec'
        type: __be32
      - name: cqe_ci
        type: uint64_t
      - name: cqe_mask
        type: uint32_t
      - name: cqe_size
        type: uint8_t
      - name: reserved1[3]
        type: uint8_t
      - name: cqe_rsvd
        type: uint64_t
      - name: mem_type
        type: enum doca_gpu_dev_verbs_mem_type
      - name: reserved2[12]
        type: uint8_t
      item_type: struct
      name: doca_gpu_dev_verbs_cq
      pos:
        line_end: 166
        line_start: 154
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_dev.h
    - fields:
      - name: sq_rsvd_index
        type: uint64_t
      - name: sq_ready_index
        type: uint64_t
      - name: sq_wqe_pi
        type: uint64_t
      - name: sq_num
        type: uint32_t
      - name: sq_num_shift8
        type: uint32_t
      - name: sq_num_shift8_be
        type: uint32_t
      - name: sq_num_shift8_be_1ds
        type: uint32_t
      - name: sq_num_shift8_be_2ds
        type: uint32_t
      - name: sq_num_shift8_be_3ds
        type: uint32_t
      - name: sq_num_shift8_be_4ds
        type: uint32_t
      - name: sq_num_shift8_be_5ds
        type: uint32_t
      - name: sq_lock
        type: int
      - name: sq_wqe_num
        type: uint16_t
      - name: sq_wqe_mask
        type: uint16_t
      - name: '*sq_wqe_daddr'
        type: uint8_t
      - name: '*sq_dbrec'
        type: __be32
      - name: '*sq_db'
        type: uint64_t
      - name: reserved1[8]
        type: uint8_t
      - name: reserved2[64]
        type: uint8_t
      - name: cq_sq
        type: struct doca_gpu_dev_verbs_cq
      - name: reserved3[64]
        type: uint8_t
      - name: nic_handler
        type: enum doca_gpu_dev_verbs_nic_handler
      - name: mem_type
        type: enum doca_gpu_dev_verbs_mem_type
      item_type: struct
      name: doca_gpu_dev_verbs_qp
      pos:
        line_end: 197
        line_start: 171
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_dev.h
    typedefs:
    - item_type: typedef
      name: doca_gpu_dev_verbs_ticket_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_dev.h
      type: uint64_t
    union: []
- function_names:
  - TYPEOF
  - TYPEOF
  - DOCA_GPUNETIO_VOLATILE
  - DOCA_GPUNETIO_VERBS_ASSERT
  - DOCA_GPUNETIO_VERBS_ASSERT
  - ACCESS_ONCE
  - READ_ONCE
  - WRITE_ONCE
  source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
  types:
    enum:
    - enumerators:
      - name: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_CQ_UPDATE
        value: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_CE_CQE_ALWAYS << 2
      - name: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_SOLICITED
        value: 1 << 1
      - name: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_FENCE
        value: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_FM_FENCE << 5
      - name: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_CQ_FIRST_CQE_ERROR
        value: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_CE_CQE_ON_FIRST_CQE_ERROR << 2
      - name: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_CQ_ERROR_UPDATE
        value: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_CE_CQE_ON_CQE_ERROR << 2
      - name: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_INITIATOR_SMALL_FENCE
        value: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_FM_INITIATOR_SMALL_FENCE << 5
      - name: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_STRONG_ORDERING
        value: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_FM_STRONG_ORDERING << 5
      - name: DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_CQ_UPDATE_FENCE
        value: "DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_CE_CQE_ALWAYS << 2 | DOCA_GPUNETIO_IB_MLX5_WQE_CTRL_FM_FENCE\n
          \                                                               << 5"
      item_type: enum
      name: doca_gpu_dev_verbs_wqe_ctrl_flags
      pos:
        line_end: 237
        line_start: 221
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_MEM_TYPE_AUTO
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_MEM_TYPE_MAX
        value: INT_MAX
      - name: DOCA_GPUNETIO_VERBS_MEM_TYPE_HOST
        value: '1'
      - name: DOCA_GPUNETIO_VERBS_MEM_TYPE_GPU
        value: '2'
      item_type: enum
      name: doca_gpu_dev_verbs_mem_type
      pos:
        line_end: 254
        line_start: 248
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_SEND_DBR_MODE_EXT_VALID_DBR
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_SEND_DBR_MODE_EXT_NO_DBR_SW_EMULATED
        value: '2'
      - name: DOCA_GPUNETIO_VERBS_SEND_DBR_MODE_EXT_NO_DBR_HW
        value: '1'
      item_type: enum
      name: doca_gpu_verbs_send_dbr_mode_ext
      pos:
        line_end: 265
        line_start: 260
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_QP_SQ
        value: '0'
      item_type: enum
      name: doca_gpu_dev_verbs_qp_type
      pos:
        line_end: 273
        line_start: 271
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_EXEC_SCOPE_THREAD
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_EXEC_SCOPE_WARP
      item_type: enum
      name: doca_gpu_dev_verbs_exec_scope
      pos:
        line_end: 278
        line_start: 275
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_SYNC_SCOPE_SYS
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_SYNC_SCOPE_GPU
        value: '1'
      - name: DOCA_GPUNETIO_VERBS_SYNC_SCOPE_CTA
        value: '2'
      - name: DOCA_GPUNETIO_VERBS_SYNC_SCOPE_THREAD
        value: '3'
      - name: DOCA_GPUNETIO_VERBS_SYNC_SCOPE_MAX
        value: INT_MAX
      item_type: enum
      name: doca_gpu_dev_verbs_sync_scope
      pos:
        line_end: 290
        line_start: 284
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_RESOURCE_SHARING_MODE_EXCLUSIVE
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_RESOURCE_SHARING_MODE_MAX
        value: INT_MAX
      - name: DOCA_GPUNETIO_VERBS_RESOURCE_SHARING_MODE_CTA
        value: '1'
      - name: DOCA_GPUNETIO_VERBS_RESOURCE_SHARING_MODE_GPU
        value: '2'
      item_type: enum
      name: doca_gpu_dev_verbs_resource_sharing_mode
      pos:
        line_end: 304
        line_start: 296
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_NIC_HANDLER_AUTO
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_NIC_HANDLER_CPU_PROXY
        value: DOCA_GPUNETIO_VERBS_NIC_HANDLER_FLAG_CPU_PROXY
      - name: DOCA_GPUNETIO_VERBS_NIC_HANDLER_GPU_SM_NO_DBR
        value: "DOCA_GPUNETIO_VERBS_NIC_HANDLER_FLAG_GPU_SM |\n        DOCA_GPUNETIO_VERBS_NIC_HANDLER_FLAG_NO_DBR"
      - name: DOCA_GPUNETIO_VERBS_NIC_HANDLER_GPU_SM_DB
        value: DOCA_GPUNETIO_VERBS_NIC_HANDLER_FLAG_GPU_SM
      - name: DOCA_GPUNETIO_VERBS_NIC_HANDLER_GPU_SM_BF
        value: "DOCA_GPUNETIO_VERBS_NIC_HANDLER_FLAG_GPU_SM |\n        DOCA_GPUNETIO_VERBS_NIC_HANDLER_FLAG_BF"
      - name: DOCA_GPUNETIO_VERBS_NIC_HANDLER_TYPE_MAX
      item_type: enum
      name: doca_gpu_dev_verbs_nic_handler
      pos:
        line_end: 330
        line_start: 317
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_GPU_CODE_OPT_DEFAULT
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_GPU_CODE_OPT_SKIP_AVAILABILITY_CHECK
        value: (1 << 1)
      - name: DOCA_GPUNETIO_VERBS_GPU_CODE_OPT_SKIP_DB_RINGING
        value: (1 << 2)
      - name: DOCA_GPUNETIO_VERBS_GPU_CODE_OPT_CPU_PROXY_UPDATE_PI
        value: (1 << 3)
      - name: DOCA_GPUNETIO_VERBS_GPU_CODE_OPT_ASYNC_STORE_RELEASE
        value: (1 << 0)
      - name: DOCA_GPUNETIO_VERBS_GPU_CODE_OPT_MAX
        value: INT_MAX
      item_type: enum
      name: doca_gpu_dev_verbs_gpu_code_opt
      pos:
        line_end: 345
        line_start: 336
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_SIGNAL_OP_ADD
        value: '0'
      item_type: enum
      name: doca_gpu_dev_verbs_signal_op
      pos:
        line_end: 349
        line_start: 347
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_DUMP
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_DUMP_AUTO
        value: '2'
      - name: DOCA_GPUNETIO_VERBS_NODUMP
        value: '1'
      item_type: enum
      name: doca_gpu_dev_verbs_dump_mode
      pos:
        line_end: 355
        line_start: 351
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_BLOCKING_MODE_DISABLED
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_BLOCKING_MODE_ENABLED
        value: '1'
      item_type: enum
      name: doca_gpu_dev_verbs_blocking_mode
      pos:
        line_end: 364
        line_start: 361
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_MCST_DISABLED
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_MCST_ENABLED
        value: '1'
      item_type: enum
      name: doca_gpu_dev_verbs_mcst_mode
      pos:
        line_end: 373
        line_start: 370
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_ATOMIC_EXT_BYTES_4
        value: '4'
      - name: DOCA_GPUNETIO_VERBS_ATOMIC_EXT_BYTES_8
        value: '8'
      item_type: enum
      name: doca_gpu_dev_verbs_atomic_ext_bytes
      pos:
        line_end: 404
        line_start: 401
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - enumerators:
      - name: DOCA_GPUNETIO_VERBS_READY_MODE_DEFAULT
        value: '0'
      - name: DOCA_GPUNETIO_VERBS_READY_MODE_LD_ST
        value: '2'
      - name: DOCA_GPUNETIO_VERBS_READY_MODE_ATOMIC_CAS
        value: '1'
      item_type: enum
      name: doca_gpu_dev_verbs_qp_ready_mode
      pos:
        line_end: 417
        line_start: 413
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    preproc_defs:
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERSION_MAJOR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERSION_MINOR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERSION_PATCH
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERSION_MAJOR_SHIFT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '16'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERSION_MINOR_SHIFT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERSION_PATCH_SHIFT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERSION
      pos:
        line_end: 60
        line_start: 56
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: "((DOCA_GPUNETIO_VERSION_MAJOR << DOCA_GPUNETIO_VERSION_MAJOR_SHIFT)
        | \\\n     (DOCA_GPUNETIO_VERSION_MINOR << DOCA_GPUNETIO_VERSION_MINOR_SHIFT)
        | \\\n     (DOCA_GPUNETIO_VERSION_PATCH << DOCA_GPUNETIO_VERSION_PATCH_SHIFT))"
    - item_type: preproc_def
      name: DOCA_GPUNETIO_DEVICE_CODE_VERSION
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: DOCA_GPUNETIO_VERSION
    - item_type: preproc_def
      name: DOCA_GPUNETIO_HOST_CODE_VERSION
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: DOCA_GPUNETIO_VERSION
    - item_type: preproc_def
      name: DOCA_GPUNETIO_MIN_COMPAT_DEVICE_CODE_VERSION_MAJOR
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_MIN_COMPAT_DEVICE_CODE_VERSION_MINOR
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_MIN_COMPAT_DEVICE_CODE_VERSION_PATCH
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_MIN_COMPAT_DEVICE_CODE_VERSION
      pos:
        line_end: 71
        line_start: 67
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: "((DOCA_GPUNETIO_MIN_COMPAT_DEVICE_CODE_VERSION_MAJOR << DOCA_GPUNETIO_VERSION_MAJOR_SHIFT)
        | \\\n     (DOCA_GPUNETIO_MIN_COMPAT_DEVICE_CODE_VERSION_MINOR << DOCA_GPUNETIO_VERSION_MINOR_SHIFT)
        | \\\n     (DOCA_GPUNETIO_MIN_COMPAT_DEVICE_CODE_VERSION_PATCH << DOCA_GPUNETIO_VERSION_PATCH_SHIFT))"
    - item_type: preproc_def
      name: DOCA_GPUNETIO_MIN_COMPAT_HOST_CODE_VERSION_MAJOR
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_MIN_COMPAT_HOST_CODE_VERSION_MINOR
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_MIN_COMPAT_HOST_CODE_VERSION_PATCH
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_MIN_COMPAT_HOST_CODE_VERSION
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: "((DOCA_GPUNETIO_MIN_COMPAT_HOST_CODE_VERSION_MAJOR << DOCA_GPUNETIO_VERSION_MAJOR_SHIFT)
        | \\\n     (DOCA_GPUNETIO_MIN_COMPAT_HOST_CODE_VERSION_MINOR << DOCA_GPUNETIO_VERSION_MINOR_SHIFT)
        | \\\n     (DOCA_GPUNETIO_MIN_COMPAT_HOST_CODE_VERSION_PATCH << DOCA_GPUNETIO_VERSION_PATCH_SHIFT))"
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_WARP_SIZE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '32'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_WARP_FULL_MASK
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0xffffffff'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_PAGE_SIZE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_CQE_CI_MASK
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0xFFFFFF'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_WQE_PI_MASK
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0xFFFF'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_IB_MLX5_WQE_SQ_SHIFT
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '6'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_MKEY_SWAPPED
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_ENABLE_DEBUG
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_MAX_INLINE_SIZE
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '28'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_MLX5_CQE_OPCODE_SHIFT
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_CQE_SIZE
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '64'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_WQE_IDX_SHIFT
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_MAX_TRANSFER_SIZE_SHIFT
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '30'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_MAX_TRANSFER_SIZE
      pos:
        line_end: 161
        line_start: 159
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: (1ULL << DOCA_GPUNETIO_VERBS_MAX_TRANSFER_SIZE_SHIFT)  // 1GiB
    - item_type: preproc_def
      name: DOCA_GPUNETIO_4_BYTE_ATOMIC_EXT_OPMOD
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0x08000000'
    - item_type: preproc_def
      name: DOCA_GPUNETIO_8_BYTE_ATOMIC_EXT_OPMOD
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
      type_or_value: '0x09000000'
    structs:
    - fields:
      - name: byte_count
        type: __be32
      - name: lkey
        type: __be32
      - name: addr
        type: __be64
      item_type: struct
      name: doca_gpunetio_ib_mlx5_wqe_data_seg
      pos:
        line_end: 423
        line_start: 419
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - fields:
      - name: opmod_idx_opcode
        type: __be32
      - name: qpn_ds
        type: __be32
      - name: imm
        type: __be32
      item_type: struct
      name: doca_gpunetio_ib_mlx5_wqe_ctrl_seg
      pos:
        line_end: 440
        line_start: 425
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - fields:
      - name: raddr
        type: __be64
      - name: rkey
        type: __be32
      - name: reserved
        type: __be32
      item_type: struct
      name: doca_gpunetio_ib_mlx5_wqe_raddr_seg
      pos:
        line_end: 446
        line_start: 442
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - fields:
      - name: swap_add
        type: __be64
      - name: compare
        type: __be64
      item_type: struct
      name: doca_gpunetio_ib_mlx5_wqe_atomic_seg
      pos:
        line_end: 451
        line_start: 448
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - fields:
      - name: byte_count
        type: uint32_t
      item_type: struct
      name: doca_gpunetio_ib_mlx5_wqe_inl_data_seg
      pos:
        line_end: 455
        line_start: 453
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - fields:
      - name: resv[2]
        type: uint32_t
      - name: max_index
        type: __be32
      - name: qpn_cqn
        type: __be32
      item_type: struct
      name: doca_gpunetio_ib_mlx5_wqe_wait_seg
      pos:
        line_end: 461
        line_start: 457
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - fields:
      - name: success
        type: __be32
      - name: hw_phase_cnt
        type: __be16
      - name: rsvd0[12]
        type: uint8_t
      item_type: struct
      name: doca_gpunetio_ib_mlx5_tm_cqe
      pos:
        line_end: 467
        line_start: 463
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - fields:
      - name: opcode
        type: uint8_t
      - name: reserved[3]
        type: uint8_t
      - name: app_ctx
        type: __be32
      - name: tag
        type: __be64
      item_type: struct
      name: doca_gpunetio_ib_ibv_tmh
      pos:
        line_end: 474
        line_start: 469
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - fields:
      - name: srqn_uidx
        type: __be32
      - name: imm_inval_pkey
        type: __be32
      - name: app
        type: uint8_t
      - name: app_op
        type: uint8_t
      - name: app_info
        type: __be16
      - name: byte_cnt
        type: __be32
      - name: timestamp
        type: __be64
      - name: sop_drop_qpn
        type: __be32
      - name: wqe_counter
        type: __be16
      - name: signature
        type: uint8_t
      - name: op_own
        type: uint8_t
      item_type: struct
      name: doca_gpunetio_ib_mlx5_cqe64
      pos:
        line_end: 505
        line_start: 476
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    - fields:
      - name: rsvd0[32]
        type: uint8_t
      - name: srqn
        type: __be32
      - name: rsvd1[16]
        type: uint8_t
      - name: hw_err_synd
        type: uint8_t
      - name: hw_synd_type
        type: uint8_t
      - name: vendor_err_synd
        type: uint8_t
      - name: syndrome
        type: uint8_t
      - name: s_wqe_opcode_qpn
        type: __be32
      - name: wqe_counter
        type: __be16
      - name: signature
        type: uint8_t
      - name: op_own
        type: uint8_t
      item_type: struct
      name: doca_gpunetio_ib_mlx5_err_cqe_ex
      pos:
        line_end: 519
        line_start: 507
        source_file: /src/nccl/src/transport/net_ib/gdaki/doca-gpunetio/include/common/doca_gpunetio_verbs_def.h
    typedefs: []
    union: []
- function_names:
  - ncclGinPluginUnload
  - ncclGinPluginLoad
  - ncclGinPluginInit
  - ncclGinPluginAssignToComm
  - ncclGinPluginDisableOtherExternal
  - initPluginLibsOnceFunc
  - ncclGinPluginFinalize
  - ncclGinInit
  - ncclGinInitFromParent
  - ncclGinFinalize
  - ncclGinGetDevCount
  source_file: /src/nccl/src/plugin/gin.cc
  types:
    enum:
    - enumerators:
      - name: ncclGinPluginStateDisabled
        value: '-2'
      - name: ncclGinPluginStateEnabled
        value: '2'
      - name: ncclGinPluginStateLoadFailed
        value: '-1'
      - name: ncclGinPluginStateLoadReady
        value: '0'
      - name: ncclGinPluginStateInitReady
        value: '1'
      item_type: enum
      name: ncclGinPluginState
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/nccl/src/plugin/gin.cc
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GIN_VERSION_COUNT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/plugin/gin.cc
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_GIN_NUM_INTERNAL_PLUGINS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/plugin/gin.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_STR_LEN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/src/plugin/gin.cc
      type_or_value: '255'
    structs:
    - fields:
      - name: name[MAX_STR_LEN]
        type: char
      - name: '* dlHandle'
        type: void
      - name: '* ncclGin'
        type: ncclGin_t
      - name: ncclGinVersion
        type: int
      - name: ncclGinPluginState
        type: ncclGinPluginState_t
      - name: '* ncclRma'
        type: ncclGin_t
      - name: ncclRmaPluginState
        type: ncclGinPluginState_t
      - name: ncclGinPluginRefCount
        type: int
      - name: ginPhysDevs
        type: int
      item_type: struct
      name: ginPluginLib
      pos:
        line_end: 51
        line_start: 41
        source_file: /src/nccl/src/plugin/gin.cc
    typedefs:
    - item_type: typedef
      name: '* getNcclGin_t(void* ginPluginLib)'
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/plugin/gin.cc
      type: ncclGin_t
    union: []
- function_names:
  - ncclProfilerPluginLoad
  - ncclProfilerPluginUnload
  - TIME_START_EVENT
  - TIME_STOP_EVENT
  - TIME_PRINT_EVENTS
  - TIME_START_EVENT
  - TIME_STOP_EVENT
  - TIME_PRINT_EVENTS
  - printProfilerEventMask
  - ncclProfilerPluginInit
  - ncclProfilerPluginFinalize
  - ncclProfilerStartGroupApiEvent
  - ncclProfilerStopGroupApiEvent
  - ncclProfilerRecordGroupApiEventState
  - ncclProfilerStartP2pApiEvent
  - ncclProfilerStopP2pApiEvent
  - ncclProfilerStartCollApiEvent
  - ncclProfilerStopCollApiEvent
  - ncclProfilerStartKernelLaunchEvent
  - ncclProfilerStopKernelLaunchEvent
  - ncclProfilerStartGroupEvent
  - ncclProfilerStopGroupEvent
  - ncclProfilerStartTaskEvents
  - ncclProfilerStopTaskEvents
  - ncclProfilerStartProxyOpEvent
  - ncclProfilerStopProxyOpEvent
  - ncclProfilerStartSendProxyStepEvent
  - ncclProfilerStartRecvProxyStepEvent
  - ncclProfilerStopProxyStepEvent
  - ncclProfilerStartProxyCtrlEvent
  - ncclProfilerStopProxyCtrlEvent
  - ncclProfilerStartKernelChEvent
  - ncclProfilerStopKernelChEvent
  - ncclProfilerRecordProxyOpEventState
  - ncclProfilerRecordProxyStepEventState
  - ncclProfilerRecordProxyCtrlEventState
  - ncclProfilerAddPidToProxyOp
  - proxyProfilerConnect
  - ncclProfilerNeedsProxy
  - ncclProfilerPluginLoaded
  - ncclProfilerCallback
  - ncclProfilerStartCeCollEvent
  - ncclProfilerStopCeCollEvent
  - ncclProfilerStartCeSyncEvent
  - ncclProfilerStopCeSyncEvent
  - ncclProfilerStartCeBatchEvent
  - ncclProfilerStopCeBatchEvent
  source_file: /src/nccl/src/plugin/profiler.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_STR_LEN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/nccl/src/plugin/profiler.cc
      type_or_value: '256'
    - item_type: preproc_def
      name: ENABLE_TIMER
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/nccl/src/plugin/profiler.cc
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tryOpenLib
  - appendNameToList
  - getLibPath
  - getLibPath
  - openPluginLib
  - ncclOpenNetPluginLib
  - ncclOpenGinPluginLib
  - ncclOpenTunerPluginLib
  - ncclOpenProfilerPluginLib
  - ncclOpenEnvPluginLib
  - 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: 16
        line_start: 15
        source_file: /src/nccl/src/plugin/plugin_open.cc
      type_or_value: '255'
    - item_type: preproc_def
      name: NUM_LIBS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/plugin/plugin_open.cc
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclEnvPluginLoad
  - ncclEnvPluginUnload
  - ncclEnvPluginInit
  - ncclEnvPluginFinalize
  - ncclEnvPluginGetEnv
  - ncclEnvPluginInitialized
  source_file: /src/nccl/src/plugin/env.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXT_ENV_PLUGIN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/plugin/env.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: INT_ENV_PLUGIN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/plugin/env.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: NUM_ENV_PLUGIN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/plugin/env.cc
      type_or_value: '2'
    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: 35
        line_start: 34
        source_file: /src/nccl/src/plugin/tuner.cc
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNetPluginUnload
  - ncclNetPluginLoad
  - ncclNetCheckDeviceVersion
  - ncclNetPluginInit
  - ncclNetPluginAssignToComm
  - ncclNetPluginDisableOtherExternal
  - initPluginLibsOnceFunc
  - ncclNetPluginFinalize
  - ncclNetInit
  - ncclNetInitFromParent
  - ncclNetFinalize
  - ncclNetGetDevCount
  - ncclCollNetGetDevCount
  - ncclNetSetVirtDevCount
  - ncclCollNetSetVirtDevCount
  - ncclGpuGdrSupport
  source_file: /src/nccl/src/plugin/net.cc
  types:
    enum:
    - enumerators:
      - name: ncclNetPluginStateDisabled
        value: '-2'
      - name: ncclNetPluginStateEnabled
        value: '2'
      - name: ncclNetPluginStateInitReady
        value: '1'
      - name: ncclNetPluginStateLoadFailed
        value: '-1'
      - name: ncclNetPluginStateLoadReady
        value: '0'
      item_type: enum
      name: ncclNetPluginState
      pos:
        line_end: 51
        line_start: 45
        source_file: /src/nccl/src/plugin/net.cc
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_VERSION_COUNT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/plugin/net.cc
      type_or_value: '7'
    - item_type: preproc_def
      name: NCCL_NET_NUM_INTERNAL_PLUGINS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/plugin/net.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: MAX_STR_LEN
      pos:
        line_end: 54
        line_start: 53
        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
      - name: netPhysDevs
        type: int
      - name: netVirtDevs
        type: int
      - name: collNetPhysDevs
        type: int
      - name: collNetVirtDevs
        type: int
      item_type: struct
      name: netPluginLib
      pos:
        line_end: 67
        line_start: 54
        source_file: /src/nccl/src/plugin/net.cc
    typedefs:
    - item_type: typedef
      name: '* getNcclNet_t(void* netPluginLib)'
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/nccl/src/plugin/net.cc
      type: ncclNet_t
    - item_type: typedef
      name: '* getNcclCollNet_t(void* netPluginLib)'
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/nccl/src/plugin/net.cc
      type: ncclCollNet_t
    union: []
- function_names:
  - ncclGin_createContext
  - ncclGin_destroyContext
  - ncclGin_iput
  - ncclGin_iflush
  - ncclGin_iputSignal
  - ncclGin_getProperties
  - getNcclGin_v11
  source_file: /src/nccl/src/plugin/gin/gin_v11.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getNcclGin_v13
  - getNcclRma_v13
  source_file: /src/nccl/src/plugin/gin/gin_v13.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclGin_connect
  - ncclGin_createContext
  - ncclGin_destroyContext
  - ncclGin_iflush
  - ncclGin_iput
  - ncclGin_iputSignal
  - ncclGin_getProperties
  - getNcclGin_v12
  source_file: /src/nccl/src/plugin/gin/gin_v12.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNet_getProperties
  - ncclNet_listen
  - ncclNet_connect
  - ncclNet_makeVDevice
  - ncclNet_finalize
  - ncclNet_init
  - getNcclNet_v10
  - ncclCollNet_getProperties
  - ncclCollNet_listen
  - ncclCollNet_iallgather
  - ncclCollNet_ireducescatter
  - ncclCollNet_makeVDevice
  - ncclCollNet_finalize
  - ncclCollNet_init
  - getNcclCollNet_v10
  source_file: /src/nccl/src/plugin/net/net_v10.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NET_INDEX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/plugin/net/net_v10.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: COLLNET_INDEX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/plugin/net/net_v10.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: INDEX_NUMS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/plugin/net/net_v10.cc
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNet_getProperties
  - ncclNet_listen
  - ncclNet_connect
  - ncclNet_isend
  - ncclNet_irecv
  - ncclNet_finalize
  - ncclCollNet_getProperties
  - ncclCollNet_listen
  - ncclCollNet_iallreduce
  - ncclCollNet_iallgather
  - ncclCollNet_ireducescatter
  - ncclCollNet_finalize
  - ncclNet_init
  - getNcclNet_v8
  - ncclCollNet_init
  - getNcclCollNet_v8
  source_file: /src/nccl/src/plugin/net/net_v8.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NET_INDEX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/plugin/net/net_v8.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: COLLNET_INDEX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/plugin/net/net_v8.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: INDEX_NUMS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/plugin/net/net_v8.cc
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNet_getProperties
  - ncclNet_regMr
  - ncclNet_listen
  - ncclNet_connect
  - ncclNet_accept
  - ncclNet_isend
  - ncclNet_irecv
  - ncclNet_finalize
  - ncclCollNet_getProperties
  - ncclCollNet_listen
  - ncclCollNet_regMr
  - ncclCollNet_iallreduce
  - ncclCollNet_finalize
  - ncclNet_init
  - getNcclNet_v6
  - ncclCollNet_init
  - getNcclCollNet_v6
  source_file: /src/nccl/src/plugin/net/net_v6.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NET_INDEX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/plugin/net/net_v6.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: COLLNET_INDEX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/plugin/net/net_v6.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: INDEX_NUMS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/plugin/net/net_v6.cc
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNet_getProperties
  - ncclNet_makeVDevice
  - ncclNet_setNetAttr
  - ncclNet_init
  - getNcclNet_v11
  - ncclCollNet_getProperties
  - ncclCollNet_iallgather
  - ncclCollNet_ireducescatter
  - ncclCollNet_makeVDevice
  - ncclCollNet_init
  - getNcclCollNet_v11
  source_file: /src/nccl/src/plugin/net/net_v11.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNet_getProperties
  - ncclNet_listen
  - ncclNet_connect
  - ncclNet_regMr
  - ncclNet_isend
  - ncclNet_irecv
  - ncclNet_finalize
  - ncclCollNet_getProperties
  - ncclCollNet_listen
  - ncclCollNet_regMr
  - ncclCollNet_iallreduce
  - ncclCollNet_finalize
  - ncclNet_init
  - getNcclNet_v7
  - ncclCollNet_init
  - getNcclCollNet_v7
  source_file: /src/nccl/src/plugin/net/net_v7.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NET_INDEX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/plugin/net/net_v7.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: COLLNET_INDEX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/plugin/net/net_v7.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: INDEX_NUMS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/plugin/net/net_v7.cc
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - getNcclNet_v12
  - getNcclCollNet_v12
  source_file: /src/nccl/src/plugin/net/net_v12.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNet_getProperties
  - ncclNet_isend
  - ncclNet_irecv
  - ncclNet_listen
  - ncclNet_connect
  - ncclNet_makeVDevice
  - ncclNet_finalize
  - ncclCollNet_getProperties
  - ncclCollNet_listen
  - ncclCollNet_iallgather
  - ncclCollNet_ireducescatter
  - ncclCollNet_makeVDevice
  - ncclCollNet_finalize
  - ncclNet_init
  - getNcclNet_v9
  - ncclCollNet_init
  - getNcclCollNet_v9
  source_file: /src/nccl/src/plugin/net/net_v9.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NET_INDEX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/plugin/net/net_v9.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: COLLNET_INDEX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/plugin/net/net_v9.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: INDEX_NUMS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/plugin/net/net_v9.cc
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - getNcclProfiler_v6
  source_file: /src/nccl/src/plugin/profiler/profiler_v6.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:
  - ncclProfiler_startEvent
  - ncclProfiler_recordEventState
  - ncclProfiler_init
  - 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:
  - ncclProfiler_startEvent
  - ncclProfiler_recordEventState
  - ncclProfiler_init
  - getNcclProfiler_v5
  source_file: /src/nccl/src/plugin/profiler/profiler_v5.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getNcclEnv_v1
  - ncclEnvInit
  - ncclEnvFinalize
  - ncclEnvGetEnv
  source_file: /src/nccl/src/plugin/env/env_v1.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getNcclTuner_v6
  source_file: /src/nccl/src/plugin/tuner/tuner_v6.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclTuner_finalize
  - ncclTuner_init
  - getNcclTuner_v4
  source_file: /src/nccl/src/plugin/tuner/tuner_v4.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclTuner_getCollInfo
  - ncclTuner_finalize
  - ncclTuner_init
  - getNcclTuner_v3
  source_file: /src/nccl/src/plugin/tuner/tuner_v3.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclTuner_getCollInfo
  - ncclTuner_finalize
  - ncclTuner_init
  - getNcclTuner_v5
  source_file: /src/nccl/src/plugin/tuner/tuner_v5.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hasNvlsSupport
  - hasCollNetSupport
  - ncclTuner_getCollInfo
  - ncclTuner_finalize
  - ncclTuner_init
  - getNcclTuner_v2
  source_file: /src/nccl/src/plugin/tuner/tuner_v2.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getGlobalGinType
  - getGlobalRailedGinType
  - setLocalGinType
  - ncclGinProgress
  - ncclGinConnectOnce
  - ncclGinDevCommSetup
  - ncclGinDevCommFree
  - ncclGinHostFinalize
  - ncclGinRegister
  - ncclGinDeregister
  - ncclGinQueryLastError
  source_file: /src/nccl/src/gin/gin_host.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getDmaBufFd
  - proxyGinPollCompletions
  - extractSignalVal
  - extractOp
  - proxyGinPollGfd
  - mapGfdOpToSignalOp
  - proxyGinProcessGfd
  - ncclGinProxyListen
  - ncclGinProxyCloseListen
  - ncclGinProxyConnect
  - ncclGinProxyCloseColl
  - ncclGinProxyRegMrSym
  - ncclGinProxyDeregMrSym
  - isPowerOfTwo
  - ncclGinProxyCreateContext
  - ncclGinProxyDestroyContext
  - ncclGinProxyProgress
  - ncclGinProxyQueryLastError
  - ncclGinProxyInit
  source_file: /src/nccl/src/gin/gin_host_proxy.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: op
        type: ncclGinProxyOp_t
      - name: counterId
        type: uint16_t
      - name: done
        type: int
      - name: '*request'
        type: void
      item_type: struct
      name: ginProxyGfdState
      pos:
        line_end: 25
        line_start: 20
        source_file: /src/nccl/src/gin/gin_host_proxy.cc
    - fields:
      - name: contextId
        type: int
      - name: queueSize
        type: size_t
      - name: '*queues'
        type: ncclGinProxyGfd_t
      - name: '*cisGdrHandle'
        type: void
      - name: '* pis'
        type: uint32_t
      - name: '*cis'
        type: uint32_t
      - name: '*cisShadow'
        type: uint32_t
      - name: '*sis'
        type: uint32_t
      - name: '*states'
        type: struct ginProxyGfdState
      - name: '*inlines'
        type: uint64_t
      - name: '*inlinesMhandle'
        type: void
      - name: '*inlinesGinHandle'
        type: void
      item_type: struct
      name: ginProxyHostGpuCtx
      pos:
        line_end: 51
        line_start: 28
        source_file: /src/nccl/src/gin/gin_host_proxy.cc
    - fields:
      - name: '*collComm'
        type: void
      - name: nRanks
        type: int
      - name: '*devHandle'
        type: ncclNetDeviceHandle_t
      - name: '*hostGpuCtx'
        type: struct ginProxyHostGpuCtx
      - name: '*countersGdrHandle'
        type: void
      - name: '*counters'
        type: uint64_t
      - name: '*countersDev'
        type: uint64_t
      - name: signalsCumemhandle
        type: CUmemGenericAllocationHandle
      - name: '*signalsMhandle'
        type: void
      - name: '*signalsGinHandle'
        type: void
      - name: '*signalsDev'
        type: uint64_t
      - name: hasError
        type: bool
      - name: nContexts
        type: int
      - name: nCountersPerContext
        type: int
      - name: nSignalsPerContext
        type: int
      - name: '* ginCtx'
        type: void
      item_type: struct
      name: ginProxyCtx
      pos:
        line_end: 74
        line_start: 53
        source_file: /src/nccl/src/gin/gin_host_proxy.cc
    - fields:
      - name: dev
        type: int
      - name: '* listenComm'
        type: void
      item_type: struct
      name: ncclGinProxyListenComm
      pos:
        line_end: 321
        line_start: 318
        source_file: /src/nccl/src/gin/gin_host_proxy.cc
    - fields:
      - name: props
        type: ncclNetProperties_t
      - name: nRanks
        type: int
      - name: '* collComm'
        type: void
      item_type: struct
      name: ncclGinProxyCollComm
      pos:
        line_end: 347
        line_start: 343
        source_file: /src/nccl/src/gin/gin_host_proxy.cc
    typedefs: []
    union: []
- function_names:
  - symkRedOp
  - convertCollTaskToSymmetricTask
  - ncclMakeSymmetricTaskList
  - ncclSymmetricTaskScheduler
  source_file: /src/nccl/src/scheduler/symmetric_sched.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclScheduleBcastTasksToPlan
  source_file: /src/nccl/src/scheduler/allgatherv_sched.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/dev_runtime.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* memory'
        type: struct ncclDevrMemory
      - name: '* userPtr'
        type: void
      - name: size
        type: size_t
      - name: bigOffset
        type: size_t
      - name: winFlags
        type: int
      - name: '* localRegHandle'
        type: void
      - name: '* vidmem'
        type: struct ncclWindow_vidmem
      - name: '* next'
        type: struct ncclDevrWindow
      - name: '* comm'
        type: struct ncclComm
      item_type: struct
      name: ncclDevrWindow
      pos:
        line_end: 30
        line_start: 20
        source_file: /src/nccl/src/include/dev_runtime.h
    - fields:
      - name: '*next'
        type: struct ncclDevrRegTask
      - name: '* userPtr'
        type: void
      - name: userSize
        type: size_t
      - name: winFlags
        type: int
      - name: '* outWinDev'
        type: ncclWindow_t
      item_type: struct
      name: ncclDevrRegTask
      pos:
        line_end: 40
        line_start: 34
        source_file: /src/nccl/src/include/dev_runtime.h
    - fields:
      - name: '*next'
        type: struct ncclDevrCommCreateTask
      - name: '* reqs'
        type: struct ncclDevCommRequirements
      - name: '* outDevComm'
        type: struct ncclDevComm
      - name: '* devCompat'
        type: struct ncclDevCommCompat
      item_type: struct
      name: ncclDevrCommCreateTask
      pos:
        line_end: 47
        line_start: 42
        source_file: /src/nccl/src/include/dev_runtime.h
    - fields:
      - name: lsaSelf
        type: int
      - name: lsaSize
        type: int
      - name: '* lsaRankList'
        type: int
      - name: nLsaTeams
        type: int
      - name: granularity
        type: size_t
      - name: ginEnabled
        type: bool
      - name: rmaProxyEnabled
        type: bool
      - name: '* memHead'
        type: struct ncclDevrMemory
      - name: '* winSorted'
        type: struct ncclDevrWindowSorted
      - name: winSortedCapacity
        type: int
      - name: '* teamHead'
        type: struct ncclDevrTeam
      - name: bigSize
        type: size_t
      - name: bigSpace
        type: struct ncclSpace
      - name: '* lsaFlatBase'
        type: void
      - name: shadows
        type: struct ncclShadowPool
      - name: '* windowTable'
        type: struct ncclDevCommWindowTable
      - name: regTaskQueue
        type: struct ncclIntruQueue<struct ncclDevrRegTask, &ncclDevrRegTask::next>
      - name: commCreateTaskQueue
        type: struct ncclIntruQueue<struct ncclDevrCommCreateTask, &ncclDevrCommCreateTask::next>
      item_type: struct
      name: ncclDevrState
      pos:
        line_end: 73
        line_start: 49
        source_file: /src/nccl/src/include/dev_runtime.h
    - fields:
      - name: minVersion
        type: int
      - name: (*commPropertiesFilter)(ncclComm_t comm, struct ncclCommProperties*
          props)
        type: ncclResult_t
      - name: (*devCommRequirementsFilter)(ncclComm_t comm, ncclDevCommRequirements_t*
          reqs)
        type: ncclResult_t
      - name: (*devCommCopyNewToOld)(ncclComm_t comm, void* oldDevComm, struct ncclDevComm
          const* newDevComm)
        type: ncclResult_t
      - name: (*devCommCopyOldToNew)(ncclComm_t comm, struct ncclDevComm* newDevComm,
          void const* oldDevComm)
        type: ncclResult_t
      item_type: struct
      name: ncclDevCommCompat
      pos:
        line_end: 81
        line_start: 75
        source_file: /src/nccl/src/include/dev_runtime.h
    typedefs: []
    union: []
- function_names:
  - 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
  - ncclGdrPinV2Available
  - wrap_gdr_pin_buffer_v2
  - 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
  - allocMemCPUAccessible
  - freeMemCPUAccessible
  source_file: /src/nccl/src/include/gdrwrap.h
  types:
    enum:
    - enumerators:
      - name: GDR_PIN_FLAG_DEFAULT
        value: '0'
      - name: GDR_PIN_FLAG_FORCE_PCIE
        value: '1'
      item_type: enum
      name: gdr_pin_flags
      pos:
        line_end: 123
        line_start: 120
        source_file: /src/nccl/src/include/gdrwrap.h
    preproc_defs:
    - item_type: preproc_def
      name: e
      pos:
        line_end: 33
        line_start: 24
        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: 126
        line_start: 125
        source_file: /src/nccl/src/include/gdrwrap.h
      type_or_value: '16'
    - item_type: preproc_def
      name: GPU_PAGE_SIZE
      pos:
        line_end: 127
        line_start: 126
        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: 128
        line_start: 127
        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: 129
        line_start: 128
        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: 135
        line_start: 133
        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: 145
        line_start: 137
        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: 179
        line_start: 173
        source_file: /src/nccl/src/include/gdrwrap.h
    typedefs:
    - item_type: typedef
      name: '*gdr_t'
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/nccl/src/include/gdrwrap.h
      type: gdr
    - item_type: typedef
      name: gdr_info_t
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/nccl/src/include/gdrwrap.h
      type: gdr_info
    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: 38
        line_start: 35
        source_file: /src/nccl/src/include/p2p.h
    preproc_defs: []
    structs:
    - fields:
      - name: '* rmtRegAddr'
        type: void
      - name: legacyIpcCap
        type: bool
      - name: offset
        type: uintptr_t
      - name: numSegments
        type: int
      item_type: struct
      name: ncclIpcImpInfo
      pos:
        line_end: 45
        line_start: 40
        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: 52
        line_start: 47
        source_file: /src/nccl/src/include/p2p.h
    typedefs: []
    union:
    - fields:
      - name: data
        type: uint64_t
      - name: handle
        type: CUmemFabricHandle
      item_type: union
      name: ncclCuDesc
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/nccl/src/include/p2p.h
    - fields:
      - name: devIpc
        type: cudaIpcMemHandle_t
      item_type: union
      name: ncclIpcDesc
      pos:
        line_end: 33
        line_start: 25
        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: 53
        line_start: 53
        source_file: /src/nccl/src/include/nvtx_payload_schemas.h
      type: NcclNvtxParamsCommInitRank
    - item_type: typedef
      name: NcclNvtxParamsCommInitRankScalable
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/nccl/src/include/nvtx_payload_schemas.h
      type: NcclNvtxParamsCommInitRank
    - item_type: typedef
      name: NcclNvtxParamsCommAbort
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/nccl/src/include/nvtx_payload_schemas.h
      type: NcclNvtxParamsCommInitRank
    - item_type: typedef
      name: NcclNvtxParamsCommDestroy
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/nccl/src/include/nvtx_payload_schemas.h
      type: NcclNvtxParamsCommInitRank
    - item_type: typedef
      name: NcclNvtxParamsCommRevoke
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/nccl/src/include/nvtx_payload_schemas.h
      type: NcclNvtxParamsCommInitRank
    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: 18
        line_start: 17
        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: 23
        line_start: 19
        source_file: /src/nccl/src/include/ipcsocket.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/os.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/os.h
      type_or_value: MAX_PATH
    - item_type: preproc_def
      name: NCCL_OS_DL_LAZY
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/src/include/os.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_OS_DL_NOW
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/nccl/src/include/os.h
      type_or_value: '1'
    structs:
    - fields:
      - name: shmDesc
        type: ncclShmDescriptor
      - 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: ncclShmHandleInternal
      pos:
        line_end: 102
        line_start: 94
        source_file: /src/nccl/src/include/os.h
    typedefs:
    - item_type: typedef
      name: '* ncclOsLibraryHandle'
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/nccl/src/include/os.h
      type: void
    - item_type: typedef
      name: ncclShmDescriptor
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/nccl/src/include/os.h
      type: int
    - item_type: typedef
      name: ncclShmDescriptor
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/nccl/src/include/os.h
      type: HANDLE
    - item_type: typedef
      name: ncclShmDescriptor
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/nccl/src/include/os.h
      type: int
    union: []
- function_names: []
  source_file: /src/nccl/src/include/env.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCL_PARAM
  source_file: /src/nccl/src/include/param.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclSizeOfT
  - ncclSizeOfT
  - operator()(Args &&...args) const
  - ncclCuMemHostAlloc
  - ncclCuMemHostFree
  - ncclCuMemHostAlloc
  - ncclCuMemHostFree
  - ncclCudaHostCallocDebug
  - ncclCudaHostFree
  - ncclCudaHostCalloc
  - ncclCallocDebug
  - ncclCallocDebug
  - ncclCallocDebug
  - ncclCalloc
  - ncclRealloc
  - ncclCuMemMapAndSetAccess
  - ncclCuMemAllocAddr
  - ncclCuMemFreeAddr
  - ncclCuMemAlloc
  - ncclCuMemFree
  - ncclCuMemGetAddressRange
  - ncclCuMemAlloc
  - ncclCuMemFree
  - ncclCuMemAllocAddr
  - ncclCuMemFreeAddr
  - ncclCuMemGetAddressRange
  - ncclCudaMallocDebug
  - ncclCudaMalloc
  - ncclCudaCallocDebug
  - ncclCudaCalloc
  - ncclCudaCallocAsyncDebug
  - ncclCudaCallocAsync
  - ncclCudaMemcpy
  - ncclCudaMemset
  - ncclCudaMemcpyAsync
  - ncclCudaFree
  - ncclIbMallocDebug
  - ncclIbMalloc
  source_file: /src/nccl/src/include/alloc.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: ncclDeleterWrapper
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/nccl/src/include/alloc.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/mnnvl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclShadowPoolAlloc
  - ncclShadowPoolToHost
  source_file: /src/nccl/src/include/allocator.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: count
        type: int
      - name: capacity
        type: int
      - name: '* cuts'
        type: int64_t
      item_type: struct
      name: ncclSpace
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/nccl/src/include/allocator.h
    - fields:
      - name: count
        type: int
      - name: '** table'
        type: struct ncclShadowObject
      - name: memPool
        type: cudaMemPool_t
      - name: '* pages'
        type: struct ncclShadowPage
      item_type: struct
      name: ncclShadowPool
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/nccl/src/include/allocator.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/ce_coll.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_CE_SYNC_OPS_PER_RANK_MC
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/src/include/ce_coll.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_CE_SYNC_OPS_PER_RANK_UC
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/include/ce_coll.h
      type_or_value: '3'
    structs:
    - fields:
      - name: '* baseUCSymReadyPtr'
        type: uint8_t
      - name: '* baseUCSymComplPtr'
        type: uint8_t
      - name: baseUCSymReadyOffset
        type: size_t
      - name: baseUCSymComplOffset
        type: size_t
      - name: ceSeqNum
        type: uint32_t
      - name: useCompletePtr
        type: bool
      - name: intraBatchSyncFreq
        type: uint32_t
      - name: intraBatchSyncMsgThreshold
        type: uint64_t
      - name: '* ceSyncWin'
        type: struct ncclDevrWindow
      - name: '* ceSeqNumDev'
        type: uint32_t
      item_type: struct
      name: ncclCeColl
      pos:
        line_end: 29
        line_start: 18
        source_file: /src/nccl/src/include/ce_coll.h
    - fields:
      - name: '*next'
        type: struct ncclCeInitTask
      - name: '* comm'
        type: struct ncclComm
      item_type: struct
      name: ncclCeInitTask
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/nccl/src/include/ce_coll.h
    - fields:
      - name: func
        type: ncclFunc_t
      - name: rootRank
        type: int
      - name: datatype
        type: ncclDataType_t
      - name: nElts
        type: size_t
      - name: eltSize
        type: size_t
      - name: '* sendBuff'
        type: uint8_t
      - name: '* recvBuff'
        type: uint8_t
      - name: '* sendWin'
        type: struct ncclDevrWindow
      - name: '* recvWin'
        type: struct ncclDevrWindow
      - name: '* collApiEventHandle'
        type: void
      - name: '* ceCollProfHandle'
        type: void
      item_type: struct
      name: ncclCeCollArgs
      pos:
        line_end: 48
        line_start: 36
        source_file: /src/nccl/src/include/ce_coll.h
    - fields:
      - name: '** dsts'
        type: void
      - name: '** srcs'
        type: void
      - name: '* sizes'
        type: size_t
      - name: numOps
        type: size_t
      - name: intraBatchSync
        type: bool
      item_type: struct
      name: ncclCeBatchOpsParams
      pos:
        line_end: 61
        line_start: 50
        source_file: /src/nccl/src/include/ce_coll.h
    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: 16
        line_start: 15
        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: 19
        line_start: 18
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: (NCCL_STEPS/4)
    - item_type: preproc_def
      name: ALLREDUCE_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: ALLGATHER_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: ALLGATHER_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: ALLTOALL_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: ALLTOALL_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: REDUCESCATTER_SLICESTEPS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: (NCCL_STEPS/4)
    - item_type: preproc_def
      name: REDUCESCATTER_CHUNKSTEPS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: (NCCL_STEPS/2)
    - item_type: preproc_def
      name: BROADCAST_SLICESTEPS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BROADCAST_CHUNKSTEPS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GATHER_SLICESTEPS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GATHER_CHUNKSTEPS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SCATTER_SLICESTEPS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SCATTER_CHUNKSTEPS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: REDUCE_SLICESTEPS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: REDUCE_CHUNKSTEPS
      pos:
        line_end: 34
        line_start: 33
        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: 35
        line_start: 34
        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: 36
        line_start: 35
        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: 69
        line_start: 68
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_MODE_OFFSET
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_MODE_PTR
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_PAT_NWORKERS
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '512'
    - item_type: preproc_def
      name: NCCL_SHMEM_PAT_STEPS
      pos:
        line_end: 421
        line_start: 420
        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: 76
        line_start: 71
        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: 406
        line_start: 403
        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: 418
        line_start: 408
        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: 427
        line_start: 421
        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
  - clockRealtime
  - getRandomData
  - gcd
  - ncclAtomicRefCountIncrement
  - ncclAtomicRefCountDecrement
  - ncclMemoryStackConstruct
  - ncclMemoryStack::allocate
  - ncclMemoryStackAlloc
  - ncclMemoryStackAlloc
  - ncclMemoryStackAllocInlineArray
  - ncclMemoryStackPush
  - ncclMemoryStackPop
  - ncclMemoryPoolConstruct
  - ncclMemoryPoolAlloc
  - ncclMemoryPoolFree
  - ncclMemoryPoolTakeAll
  - ncclIntruQueueConstruct
  - ncclIntruQueueEmpty
  - ncclIntruQueueHead
  - ncclIntruQueueTail
  - ncclIntruQueueEnqueue
  - ncclIntruQueueEnqueueFront
  - ncclIntruQueueDequeue
  - ncclIntruQueueDelete
  - ncclIntruQueueTryDequeue
  - ncclIntruQueueTransfer
  - ncclIntruQueueMpscConstruct
  - ncclIntruQueueMpscEmpty
  - ncclIntruQueueMpscEnqueue
  - ncclIntruQueueMpscDequeueAll
  - ncclIntruQueueMpscAbandon
  - ncclIntruAddressMapDestruct
  - ncclIntruAddressMapInsert
  - ncclIntruAddressMapFind
  - ncclIntruAddressMapRemove
  - ncclThreadJoin
  - ncclVersionToString
  source_file: /src/nccl/src/include/utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: strtok_r
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/include/utils.h
      type_or_value: strtok_s
    structs:
    - fields:
      - name: prefix[64]
        type: char
      - name: port
        type: int
      item_type: struct
      name: netIf
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: mutex
        type: std::mutex
      - name: cond
        type: std::condition_variable
      item_type: struct
      name: ncclThreadSignal
      pos:
        line_end: 200
        line_start: 197
        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: 250
        line_start: 229
        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: 233
        line_start: 230
        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: 237
        line_start: 234
        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: 243
        line_start: 238
        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: 325
        line_start: 319
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: '*next'
        type: Cell
      item_type: struct
      name: Cell
      pos:
        line_end: 322
        line_start: 320
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: '*head'
        type: T
      item_type: struct
      name: ncclIntruQueue
      pos:
        line_end: 371
        line_start: 369
        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: 467
        line_start: 463
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: hbits
        type: int
      - name: count
        type: int
      - name: '** table'
        type: void
      item_type: struct
      name: ncclIntruAddressMap_untyped
      pos:
        line_end: 628
        line_start: 624
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: base
        type: ncclIntruAddressMap_untyped
      item_type: struct
      name: ncclIntruAddressMap
      pos:
        line_end: 639
        line_start: 632
        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: 25
        line_start: 22
        source_file: /src/nccl/src/include/ibvwrap.h
    preproc_defs: []
    structs: []
    typedefs: []
    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
      - name: peerWinOffset
        type: size_t
      - name: peerWin
        type: ncclWindow_t
      - name: sigIdx
        type: int
      - name: ctx
        type: int
      - name: flags
        type: unsigned int
      - name: nDesc
        type: int
      - name: '* signalDescs'
        type: ncclWaitSignalDesc_t
      item_type: struct
      name: ncclInfo
      pos:
        line_end: 40
        line_start: 16
        source_file: /src/nccl/src/include/info.h
    typedefs: []
    union: []
- function_names:
  - minval
  - minval
  - maxval
  - maxval
  - BIT
  - MASK
  - DIVUP
  - ROUNDUP
  - ALIGN_POWER
  - ALIGN_SIZE
  - divUp
  - roundUp
  - roundDown
  - alignUp
  - alignUp
  - alignDown
  - 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: 372
        line_start: 372
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<signed char>
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<unsigned char>
      pos:
        line_end: 374
        line_start: 374
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<signed short>
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<unsigned short>
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<signed int>
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<unsigned int>
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<signed long>
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<unsigned long>
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<signed long long>
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<unsigned long long>
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/nccl/src/include/bitops.h
    typedefs: []
    union: []
- function_names:
  - ncclStrToCpuset
  - ncclCpusetToRangeStr
  - ncclStrListToCpuset
  - ncclCpusetToStrList
  source_file: /src/nccl/src/include/cpuset.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CPU_SETSIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/include/cpuset.h
      type_or_value: 64 // Windows uses DWORD_PTR for affinity
    - item_type: preproc_def
      name: U32_LEN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/cpuset.h
      type_or_value: 32 // using uint32_t
    - item_type: preproc_def
      name: CPU_SET_N_U32
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/cpuset.h
      type_or_value: (CPU_SETSIZE / U32_LEN)
    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: 16
        line_start: 15
        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: 17
        line_start: 16
        source_file: /src/nccl/src/include/enqueue.h
      type_or_value: '480'
    - item_type: preproc_def
      name: NCCL_SIMPLE_ALIGNMENT
      pos:
        line_end: 18
        line_start: 17
        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: 19
        line_start: 18
        source_file: /src/nccl/src/include/enqueue.h
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CUDACHECK
  - CUDACHECKGOTO
  - CUDACHECKIGNORE
  - cuda_clear
  - CUDASUCCESS
  - CUDACLEARERROR
  - SYSCHECK
  - SYSCHECKSYNC
  - SYSCHECKGOTO
  - PTHREADCHECK
  - PTHREADCHECKGOTO
  - NEQCHECK
  - EQCHECK
  - NCCLCHECKIGNORE
  - NCCLCHECKNOWARN
  - NCCLCHECKGOTONOWARN
  - NCCLWAIT
  - NCCLWAITGOTO
  - NCCLCHECKTHREAD
  - CUDACHECKTHREAD
  - STDTHREADCREATE_IMPL
  - STDTHREADCREATE
  - STDTHREADCREATE_GOTO
  - NEW_NOTHROW
  - NEW_NOTHROW_GOTO
  source_file: /src/nccl/src/include/checks.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RES
      pos:
        line_end: 121
        line_start: 113
        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: 138
        line_start: 130
        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: 148
        line_start: 140
        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: 157
        line_start: 149
        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_SWITCH
      - name: IBV_NODE_ROUTER
      - name: IBV_NODE_RNIC
      - 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: 94
        line_start: 82
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_TRANSPORT_UNKNOWN
        value: '-1'
      - name: IBV_EXP_TRANSPORT_SCIF
        value: IBV_EXP_TRANSPORT_TYPE_START
      - name: IBV_TRANSPORT_IB
        value: '0'
      - name: IBV_TRANSPORT_IWARP
      - name: IBV_EXP_TRANSPORT_TYPE_START
        value: '32'
      item_type: enum
      name: ibv_transport_type
      pos:
        line_end: 106
        line_start: 96
        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_RAW_MULTI
        value: 1 <<  3
      - name: IBV_DEVICE_BAD_QKEY_CNTR
        value: 1 <<  2
      - 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_XRC
        value: 1 << 20
      - name: IBV_DEVICE_SRQ_RESIZE
        value: 1 << 13
      - name: IBV_DEVICE_SYS_IMAGE_GUID
        value: 1 << 11
      - name: IBV_DEVICE_MANAGED_FLOW_STEERING
        value: 1 << 29
      - name: IBV_DEVICE_N_NOTIFY_CQ
        value: 1 << 14
      - name: IBV_DEVICE_RC_RNR_NAK_GEN
        value: 1 << 12
      - name: IBV_DEVICE_PORT_ACTIVE_EVENT
        value: 1 << 10
      item_type: enum
      name: ibv_device_cap_flags
      pos:
        line_end: 126
        line_start: 108
        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: 132
        line_start: 128
        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_2048
        value: '4'
      - name: IBV_MTU_4096
        value: '5'
      item_type: enum
      name: ibv_mtu
      pos:
        line_end: 183
        line_start: 177
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_PORT_NOP
        value: '0'
      - name: IBV_PORT_DOWN
        value: '1'
      - name: IBV_PORT_INIT
        value: '2'
      - name: IBV_PORT_ARMED
        value: '3'
      - name: IBV_PORT_ACTIVE
        value: '4'
      - name: IBV_PORT_ACTIVE_DEFER
        value: '5'
      item_type: enum
      name: ibv_port_state
      pos:
        line_end: 192
        line_start: 185
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - 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
      - name: IBV_PORT_SM
        value: 1 <<  1
      - 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_MKEY_NVRAM
        value: 1 <<  7
      - name: IBV_PORT_PKEY_SW_EXT_PORT_TRAP_SUP
        value: 1 << 12
      - name: IBV_PORT_REINIT_SUP
        value: 1 << 18
      - name: IBV_PORT_IP_BASED_GIDS
        value: 1 << 26
      - name: IBV_PORT_OPT_IPD_SUP
        value: 1 <<  4
      - 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
      item_type: enum
      name: ibv_port_cap_flags
      pos:
        line_end: 226
        line_start: 206
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - 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
      - 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_COMM_EST
      - name: IBV_EVENT_DEVICE_FATAL
      - name: IBV_EVENT_QP_LAST_WQE_REACHED
      - name: IBV_EVENT_PKEY_CHANGE
      - name: IBV_EVENT_QP_FATAL
      - name: IBV_EVENT_SQ_DRAINED
      - name: IBV_EVENT_PORT_ACTIVE
      - name: IBV_EVENT_CLIENT_REREGISTER
      - name: IBV_EVENT_SM_CHANGE
      - name: IBV_EXP_EVENT_DCT_ACCESS_ERR
      item_type: enum
      name: ibv_event_type
      pos:
        line_end: 281
        line_start: 254
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_WC_SUCCESS
      - name: IBV_WC_LOC_EEC_OP_ERR
      - name: IBV_WC_BAD_RESP_ERR
      - name: IBV_WC_REM_INV_REQ_ERR
      - name: IBV_WC_RNR_RETRY_EXC_ERR
      - name: IBV_WC_INV_EECN_ERR
      - name: IBV_WC_LOC_PROT_ERR
      - name: IBV_WC_LOC_ACCESS_ERR
      - name: IBV_WC_LOC_RDD_VIOL_ERR
      - name: IBV_WC_INV_EEC_STATE_ERR
      - name: IBV_WC_REM_ACCESS_ERR
      - name: IBV_WC_GENERAL_ERR
      - name: IBV_WC_LOC_LEN_ERR
      - name: IBV_WC_WR_FLUSH_ERR
      - name: IBV_WC_REM_INV_RD_REQ_ERR
      - name: IBV_WC_REM_OP_ERR
      - name: IBV_WC_FATAL_ERR
      - name: IBV_WC_LOC_QP_OP_ERR
      - name: IBV_WC_MW_BIND_ERR
      - name: IBV_WC_RETRY_EXC_ERR
      - name: IBV_WC_REM_ABORT_ERR
      - name: IBV_WC_RESP_TIMEOUT_ERR
      item_type: enum
      name: ibv_wc_status
      pos:
        line_end: 319
        line_start: 296
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_WC_SEND
      - name: IBV_WC_RDMA_WRITE
      - name: IBV_WC_RDMA_READ
      - name: IBV_WC_COMP_SWAP
      - name: IBV_WC_FETCH_ADD
      - 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: 335
        line_start: 322
        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: 340
        line_start: 337
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_ACCESS_LOCAL_WRITE
        value: '1'
      - name: IBV_ACCESS_REMOTE_WRITE
        value: (1<<1)
      - name: IBV_ACCESS_REMOTE_READ
        value: (1<<2)
      - name: IBV_ACCESS_REMOTE_ATOMIC
        value: (1<<3)
      - name: IBV_ACCESS_MW_BIND
        value: (1<<4)
      - name: IBV_ACCESS_RELAXED_ORDERING
        value: (1<<20)
      item_type: enum
      name: ibv_access_flags
      pos:
        line_end: 365
        line_start: 358
        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: 376
        line_start: 372
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_REREG_MR_CHANGE_TRANSLATION
        value: (1 << 0)
      - name: IBV_REREG_MR_CHANGE_PD
        value: (1 << 1)
      - name: IBV_REREG_MR_CHANGE_ACCESS
        value: (1 << 2)
      - name: IBV_REREG_MR_KEEP_VALID
        value: (1 << 3)
      item_type: enum
      name: ibv_rereg_mr_flags
      pos:
        line_end: 393
        line_start: 388
        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: 408
        line_start: 405
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_RATE_MAX
        value: '0'
      - name: IBV_RATE_10_GBPS
        value: '3'
      - name: IBV_RATE_20_GBPS
        value: '6'
      - 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_14_GBPS
        value: '11'
      - name: IBV_RATE_56_GBPS
        value: '12'
      - name: IBV_RATE_200_GBPS
        value: '17'
      - name: IBV_RATE_100_GBPS
        value: '16'
      - name: IBV_RATE_112_GBPS
        value: '13'
      - name: IBV_RATE_300_GBPS
        value: '18'
      - name: IBV_RATE_25_GBPS
        value: '15'
      - name: IBV_RATE_168_GBPS
        value: '14'
      item_type: enum
      name: ibv_rate
      pos:
        line_end: 452
        line_start: 433
        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: 494
        line_start: 491
        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: 510
        line_start: 507
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_SRQ_INIT_ATTR_TYPE
        value: 1 << 0
      - name: IBV_SRQ_INIT_ATTR_RESERVED
        value: 1 << 4
      - name: IBV_SRQ_INIT_ATTR_CQ
        value: 1 << 3
      - name: IBV_SRQ_INIT_ATTR_PD
        value: 1 << 1
      - name: IBV_SRQ_INIT_ATTR_XRCD
        value: 1 << 2
      item_type: enum
      name: ibv_srq_init_attr_mask
      pos:
        line_end: 518
        line_start: 512
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_QPT_RC
        value: '2'
      - name: IBV_QPT_RAW_PACKET
        value: '8'
      - name: IBV_QPT_XRC
      - name: IBV_QPT_UC
      - name: IBV_QPT_UD
      - 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: 547
        line_start: 531
        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: 573
        line_start: 569
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_QP_OPEN_ATTR_NUM
        value: 1 << 0
      - name: IBV_QP_OPEN_ATTR_CONTEXT
        value: 1 << 2
      - name: IBV_QP_OPEN_ATTR_XRCD
        value: 1 << 1
      - name: IBV_QP_OPEN_ATTR_RESERVED
        value: 1 << 4
      - name: IBV_QP_OPEN_ATTR_TYPE
        value: 1 << 3
      item_type: enum
      name: ibv_qp_open_attr_mask
      pos:
        line_end: 595
        line_start: 589
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - 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_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_QP_RD_ATOMIC
        value: 1 << 13
      - name: IBV_QP_MAX_DEST_RD_ATOMIC
        value: 1 << 17
      - 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_DEST_QPN
        value: 1 << 20
      - name: IBV_QP_ACCESS_FLAGS
        value: "1 << \t3"
      - name: IBV_QP_AV
        value: "1 << \t7"
      - name: IBV_QP_RNR_RETRY
        value: 1 << 11
      - name: IBV_QP_MIN_RNR_TIMER
        value: 1 << 15
      - name: IBV_QP_CAP
        value: 1 << 19
      item_type: enum
      name: ibv_qp_attr_mask
      pos:
        line_end: 627
        line_start: 605
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_QPS_RESET
      - name: IBV_QPS_RTR
      - name: IBV_QPS_RTS
      - name: IBV_QPS_SQD
      - 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: 638
        line_start: 629
        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: 644
        line_start: 640
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_WR_RDMA_WRITE
      - name: IBV_WR_RDMA_READ
      - name: IBV_WR_RDMA_WRITE_WITH_IMM
      - name: IBV_WR_SEND
      - name: IBV_WR_SEND_WITH_IMM
      - name: IBV_WR_ATOMIC_CMP_AND_SWP
      - name: IBV_WR_ATOMIC_FETCH_AND_ADD
      item_type: enum
      name: ibv_wr_opcode
      pos:
        line_end: 682
        line_start: 674
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_SEND_FENCE
        value: 1 << 0
      - name: IBV_SEND_SOLICITED
        value: 1 << 2
      - name: IBV_SEND_SIGNALED
        value: 1 << 1
      - name: IBV_SEND_INLINE
        value: 1 << 3
      item_type: enum
      name: ibv_send_flags
      pos:
        line_end: 689
        line_start: 684
        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: 776
        line_start: 774
        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: 825
        line_start: 822
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_FLOW_ATTR_NORMAL
        value: '0x0'
      - name: IBV_FLOW_ATTR_MC_DEFAULT
        value: '0x2'
      - name: IBV_FLOW_ATTR_ALL_DEFAULT
        value: '0x1'
      item_type: enum
      name: ibv_flow_attr_type
      pos:
        line_end: 838
        line_start: 827
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_FLOW_SPEC_ETH
        value: '0x20'
      - name: IBV_FLOW_SPEC_IPV4
        value: '0x30'
      - name: IBV_FLOW_SPEC_TCP
        value: '0x40'
      - name: IBV_FLOW_SPEC_UDP
        value: '0x41'
      item_type: enum
      name: ibv_flow_spec_type
      pos:
        line_end: 845
        line_start: 840
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: VERBS_CONTEXT_XRCD
        value: (uint64_t)1 << 0
      - name: VERBS_CONTEXT_QP
        value: (uint64_t)1 << 2
      - name: VERBS_CONTEXT_EXP
        value: (uint64_t)1 << 62
      - name: VERBS_CONTEXT_SRQ
        value: (uint64_t)1 << 1
      - name: VERBS_CONTEXT_RESERVED
        value: (uint64_t)1 << 3
      item_type: enum
      name: verbs_context_mask
      pos:
        line_end: 1032
        line_start: 1026
        source_file: /src/nccl/src/include/ibvcore.h
    preproc_defs:
    - item_type: preproc_def
      name: __attribute_const
      pos:
        line_end: 53
        line_start: 52
        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: 175
        line_start: 134
        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: 252
        line_start: 228
        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: 294
        line_start: 283
        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: 356
        line_start: 342
        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: 370
        line_start: 367
        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: 382
        line_start: 378
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*context'
        type: struct ibv_context
      item_type: struct
      name: ibv_xrcd
      pos:
        line_end: 386
        line_start: 384
        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: 403
        line_start: 395
        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: 414
        line_start: 410
        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: 422
        line_start: 416
        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: 431
        line_start: 424
        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: 489
        line_start: 481
        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: 500
        line_start: 496
        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: 505
        line_start: 502
        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: 529
        line_start: 520
        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: 555
        line_start: 549
        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: 567
        line_start: 557
        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: 587
        line_start: 575
        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: 603
        line_start: 597
        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: 672
        line_start: 646
        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: 695
        line_start: 691
        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: 731
        line_start: 697
        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: 738
        line_start: 733
        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: 747
        line_start: 740
        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: 771
        line_start: 749
        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: 795
        line_start: 780
        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: 801
        line_start: 797
        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: 814
        line_start: 803
        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: 820
        line_start: 816
        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: 855
        line_start: 847
        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: 862
        line_start: 857
        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: 867
        line_start: 864
        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: 874
        line_start: 869
        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: 879
        line_start: 876
        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: 886
        line_start: 881
        source_file: /src/nccl/src/include/ibvcore.h
    - fields: []
      item_type: struct
      name: ibv_flow_spec
      pos:
        line_end: 898
        line_start: 888
        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: 912
        line_start: 900
        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: 918
        line_start: 914
        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: 926
        line_start: 923
        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: 945
        line_start: 933
        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: 956
        line_start: 947
        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: 1014
        line_start: 958
        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: 1024
        line_start: 1016
        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: 1063
        line_start: 1034
        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: 1109
        line_start: 1096
        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: 63
        line_start: 57
        source_file: /src/nccl/src/include/ibvcore.h
- function_names: []
  source_file: /src/nccl/src/include/scheduler.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- 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&&)'
  - ncclOptionalNvtxScopedRange::push
  - ~ncclOptionalNvtxScopedRange() noexcept
  - ncclOptionalNvtxScopedRange::ncclOptionalNvtxScopedRange
  - ncclOptionalNvtxScopedRange::ncclOptionalNvtxScopedRange
  - '& operator=(ncclOptionalNvtxScopedRange const&)'
  - ncclOptionalNvtxScopedRange::ncclOptionalNvtxScopedRange
  - '& operator=(ncclOptionalNvtxScopedRange&&)'
  - NVTX3_PAYLOAD
  - NVTX3_FUNC_WITH_PARAMS
  - ncclOptionalNvtxPayloadRange::push
  - ~ncclOptionalNvtxPayloadRange() noexcept
  - ncclOptionalNvtxPayloadRange::setPayloadData
  - ncclOptionalNvtxPayloadRange::ncclOptionalNvtxPayloadRange
  - ncclOptionalNvtxPayloadRange::ncclOptionalNvtxPayloadRange
  - '& operator=(ncclOptionalNvtxPayloadRange const&)'
  - ncclOptionalNvtxPayloadRange::ncclOptionalNvtxPayloadRange
  - '& operator=(ncclOptionalNvtxPayloadRange&&)'
  - ncclOptionalNvtxPayloadRange::isPushed
  - 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: 16
        line_start: 15
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: constexpr
    - item_type: preproc_def
      name: NVTX_SID_CommInitRank
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_SID_CommInitAll
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_SID_CommDestroy
      pos:
        line_end: 24
        line_start: 23
        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: 25
        line_start: 24
        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: 26
        line_start: 25
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NVTX_SID_AllReduce
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NVTX_SID_Broadcast
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NVTX_SID_ReduceScatter
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '7'
    - item_type: preproc_def
      name: NVTX_SID_Reduce
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NVTX_SID_Send
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '9'
    - item_type: preproc_def
      name: NVTX_SID_Recv
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '10'
    - item_type: preproc_def
      name: NVTX_SID_CommInitRankConfig
      pos:
        line_end: 33
        line_start: 32
        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: 34
        line_start: 33
        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: 35
        line_start: 34
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '13'
    - item_type: preproc_def
      name: NVTX_SID_CommFinalize
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '14'
    - item_type: preproc_def
      name: NVTX_SID_CommShrink
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '15'
    - item_type: preproc_def
      name: NVTX_SID_AlltoAll
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NVTX_SID_Gather
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '17'
    - item_type: preproc_def
      name: NVTX_SID_Scatter
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '18'
    - item_type: preproc_def
      name: NVTX_SID_CommRevoke
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: 19 // same schema as NVTX_SID_CommInitRank
    - item_type: preproc_def
      name: NVTX_SID_CommGrow
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '20'
    - item_type: preproc_def
      name: NVTX_SID_PutSignal
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '21'
    - item_type: preproc_def
      name: NVTX_SID_Signal
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '22'
    - item_type: preproc_def
      name: NVTX_SID_WaitSignal
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '23'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_NCCL_REDOP
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: 24 + NVTX_PAYLOAD_ENTRY_TYPE_SCHEMA_ID_STATIC_START
    - item_type: preproc_def
      name: NCCL_NVTX3_FUNC_RANGE
      pos:
        line_end: 143
        line_start: 136
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: "ncclOptionalNvtxScopedRange nvtx3_range__; \\\n  if (!ncclParamNvtxDisable())
        { \\\n    static ::nvtx3::v1::registered_string_in<nccl_domain> const nvtx3_func_name__{__func__};
        \\\n    static ::nvtx3::v1::event_attributes const nvtx3_func_attr__{nvtx3_func_name__};
        \\\n    nvtx3_range__.push(nvtx3_func_attr__); \\\n  }"
    structs:
    - fields:
      - name: '* name'
        type: char
      item_type: struct
      name: nccl_domain
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/nccl/src/include/nvtx.h
    typedefs: []
    union: []
- function_names:
  - VERSION
  - WARN
  - NOWARN
  - 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: 18
        line_start: 17
        source_file: /src/nccl/src/include/debug.h
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCL_API
  - NCCL_API
  - NCCL_API
  source_file: /src/nccl/src/include/core.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/compiler.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_COMPILER_GCC
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/include/compiler.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_COMPILER_MSVC
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/compiler.h
      type_or_value: '1'
    structs: []
    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: 22
        line_start: 17
        source_file: /src/nccl/src/include/shmutils.h
    typedefs:
    - item_type: typedef
      name: '* ncclShmHandle_t'
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/nccl/src/include/shmutils.h
      type: void
    union: []
- function_names:
  - ncclRegFind
  source_file: /src/nccl/src/include/register_inline.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/gin.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[32]
        type: char
      - name: handle
        type: ncclShmHandle_t
      - name: shmSize
        type: size_t
      item_type: struct
      name: shmLegacyIpc
      pos:
        line_end: 16
        line_start: 12
        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: 25
        line_start: 18
        source_file: /src/nccl/src/include/shm.h
    - fields:
      - name: legacy
        type: bool
      item_type: struct
      name: shmIpcDesc
      pos:
        line_end: 34
        line_start: 27
        source_file: /src/nccl/src/include/shm.h
    typedefs:
    - item_type: typedef
      name: ncclShmIpcDesc_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/nccl/src/include/shm.h
      type: shmIpcDesc
    union: []
- function_names: []
  source_file: /src/nccl/src/include/transport.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NTRANSPORTS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TRANSPORT_UNDEFINED
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: TRANSPORT_P2P
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TRANSPORT_SHM
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TRANSPORT_NET
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TRANSPORT_COLLNET
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TRANSPORT_PROFILER
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CONNECT_SIZE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '256'
    - item_type: preproc_def
      name: NCCL_MAX_PAGE_SIZE
      pos:
        line_end: 66
        line_start: 65
        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: 67
        line_start: 66
        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: 74
        line_start: 73
        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
      - name: supportedGinType
        type: ncclGinType_t
      - name: crossNicSupport
        type: bool
      - name: rmaPluginAvailable
        type: bool
      - name: cuMemGdrSupport
        type: bool
      item_type: struct
      name: ncclPeerInfo
      pos:
        line_end: 62
        line_start: 42
        source_file: /src/nccl/src/include/transport.h
    - fields:
      - name: data[CONNECT_SIZE]
        type: char
      item_type: struct
      name: ncclConnect
      pos:
        line_end: 69
        line_start: 67
        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: chunkSize
        type: int
      - name: treeMaxChunkSize
        type: int
      - name: nvlsShmem
        type: struct ncclShmemCollBuff
      - name: '*nvlsShmemHandle'
        type: void
      item_type: struct
      name: ncclNvlsSharedRes
      pos:
        line_end: 99
        line_start: 74
        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: 112
        line_start: 103
        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 ncclComm* comm, 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: 125
        line_start: 114
        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: 132
        line_start: 127
        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: ncclPid_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: 20
        line_start: 13
        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: 36
        line_start: 29
        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: 131
        line_start: 118
        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: 138
        line_start: 133
        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
  - collNetFinalize
  - 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: 14
        line_start: 14
        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: ncclProxyOpReady
      - name: ncclProxyOpProgress
      item_type: enum
      name: ncclProxyOpState
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/nccl/src/include/proxy.h
    - enumerators:
      - name: connUninitialized
        value: '0'
      - name: connSetupDone
        value: '3'
      - name: connSharedInitialized
        value: '2'
      - name: connConnected
        value: '4'
      - name: connInitialized
        value: '1'
      - name: numConnStates
        value: '5'
      item_type: enum
      name: proxyConnectState
      pos:
        line_end: 385
        line_start: 378
        source_file: /src/nccl/src/include/proxy.h
    - enumerators:
      - name: proxyRing
        value: '0'
      - name: proxyFrom
        value: '1'
      - name: proxyTo
        value: '2'
      item_type: enum
      name: proxyMode
      pos:
        line_end: 414
        line_start: 410
        source_file: /src/nccl/src/include/proxy.h
    - enumerators:
      - name: ncclProxyMsgInit
        value: '1'
      - name: ncclProxyMsgConnect
        value: '4'
      - name: ncclProxyMsgSetup
        value: '3'
      - name: ncclProxyMsgStart
        value: '5'
      - name: ncclProxyMsgSharedInit
        value: '2'
      - 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: 436
        line_start: 423
        source_file: /src/nccl/src/include/proxy.h
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PROXY_MAX_SUBS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/nccl/src/include/proxy.h
      type_or_value: MAXCHANNELS
    - item_type: preproc_def
      name: NCCL_MAX_NETDEVS
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/nccl/src/include/proxy.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MAX_OPS_PER_PEER
      pos:
        line_end: 220
        line_start: 219
        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: collAPI
        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: nChannels
        type: int
      - name: nPeers
        type: int
      - 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: ncclPid_t
      - name: '* profilerContext'
        type: void
      - name: workCounter
        type: uint64_t
      - name: '*enqNext'
        type: struct ncclProxyOp
      item_type: struct
      name: ncclProxyOp
      pos:
        line_end: 123
        line_start: 68
        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: 130
        line_start: 127
        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: ncclPid_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: 175
        line_start: 132
        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: collAPI
        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: nChannels
        type: int
      - name: nPeers
        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: 212
        line_start: 177
        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: std::mutex
      - name: cond
        type: std::condition_variable
      item_type: struct
      name: ncclProxyOpsPool
      pos:
        line_end: 228
        line_start: 221
        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: 237
        line_start: 230
        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: 247
        line_start: 239
        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: 252
        line_start: 249
        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: 261
        line_start: 254
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: '* opsPool'
        type: struct ncclProxyOpsPool
      - name: handle
        type: ncclShmHandle_t
      - name: opsPoolShmSuffix[16]
        type: char
      - name: thread
        type: std::thread
      - 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: 278
        line_start: 264
        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: 288
        line_start: 281
        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: 297
        line_start: 290
        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: 305
        line_start: 299
        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: 313
        line_start: 309
        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: 323
        line_start: 316
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: refCount
        type: int
      - name: '* comm'
        type: struct ncclComm
      - 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: '* ginState'
        type: struct ncclGinState
      - name: '* abortFlag'
        type: uint32_t
      - name: directMode
        type: bool
      - name: '* memManager'
        type: struct ncclMemManager
      - name: thread
        type: std::thread
      - name: threadUDS
        type: std::thread
      - name: '* listenSock'
        type: struct ncclSocket
      - name: ipcSock
        type: struct ncclIpcSocket
      - name: stop
        type: int
      - name: cudaCtx
        type: CUcontext
      - name: cudaCtxOnceFlag
        type: std::once_flag
      - 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: peerArraySize
        type: int
      - name: peerIpcSock
        type: struct ncclIpcSocket
      - name: '*peerAddressesUDS'
        type: uint64_t
      - name: progressState
        type: struct ncclProxyProgressState
      - name: '* netContext'
        type: void
      - name: netAttr
        type: ncclNetAttr_t
      - name: '* collNetContext'
        type: void
      - name: '* profilerContext'
        type: void
      - name: '* expectedResponses'
        type: struct ncclExpectedProxyResponse
      item_type: struct
      name: ncclProxyState
      pos:
        line_end: 376
        line_start: 325
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: '* handle'
        type: void
      - name: '* next'
        type: struct proxyMemHandle
      item_type: struct
      name: proxyMemHandle
      pos:
        line_end: 390
        line_start: 387
        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
      - name: proxyMemHandleQueue
        type: struct ncclIntruQueue<struct proxyMemHandle, &proxyMemHandle::next>
      item_type: struct
      name: ncclProxyConnection
      pos:
        line_end: 406
        line_start: 392
        source_file: /src/nccl/src/include/proxy.h
    typedefs:
    - item_type: typedef
      name: (*proxyProgressFunc_t)(struct ncclProxyState*, struct ncclProxyArgs*)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/nccl/src/include/proxy.h
      type: ncclResult_t
    - item_type: typedef
      name: (*threadFunc_t)(struct ncclProxyArgs*)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/nccl/src/include/proxy.h
      type: ncclResult_t
    union:
    - fields:
      - name: collnetDirect
        type: "struct {\n    size_t sizePerRank;\n    int nNodes, node;\n  }"
      - name: bcast
        type: "struct {\n    int sendSlices;\n    int recvSlices;\n    int stepSize;\n
          \ }"
      item_type: union
      name: ncclProxyOpSpecifics
      pos:
        line_end: 66
        line_start: 56
        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: 68
        line_start: 67
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: 5 // Send/Recv not included for now
    structs: []
    typedefs:
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/nccl/src/include/nccl_common.h
      type: SSIZE_T
    - item_type: typedef
      name: (*ncclDebugLogger_t)(ncclDebugLogLevel level, unsigned long flags, const
        char *file, int line, const char *fmt, ...)
      pos:
        line_end: 55
        line_start: 55
        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: 65
        line_start: 65
        source_file: /src/nccl/src/include/nccl_common.h
      type: ncclResult_t
    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: 47
        line_start: 19
        source_file: /src/nccl/src/include/ibvsymbols.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/profiler.h
  types:
    enum:
    - enumerators:
      - name: ncclProfilerGroupApiStartStateReset
        value: '0'
      - name: ncclProfilerGroupApiStartStateStopped
        value: '2'
      - name: ncclProfilerGroupApiStartStateStarted
        value: '1'
      item_type: enum
      name: groupApiState
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/nccl/src/include/profiler.h
    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: 29
        line_start: 22
        source_file: /src/nccl/src/include/profiler.h
    - fields:
      - name: profilerGroupDepth
        type: int
      - name: eActivationMask
        type: int
      - name: state
        type: groupApiState
      - name: '*groupApiEventHandle'
        type: void
      - name: '* p2pApiEventHandle'
        type: void
      - name: '*collApiEventHandle'
        type: void
      item_type: struct
      name: ncclProfilerApiState
      pos:
        line_end: 46
        line_start: 38
        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: 30
        line_start: 27
        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: 36
        line_start: 32
        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: '** ginMhandles'
        type: void
      - name: '** ginHandles'
        type: void
      - name: '* collnetProxyconn'
        type: struct ncclProxyConnector
      - name: regIpcAddrs
        type: struct ncclPeerRegIpcAddr
      - name: '** ipcInfos'
        type: struct ncclIpcRegInfo
      - name: ipcInfosSize
        type: int
      item_type: struct
      name: ncclReg
      pos:
        line_end: 62
        line_start: 38
        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: 68
        line_start: 64
        source_file: /src/nccl/src/include/register.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/net.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_UNDEF_DEV_COUNT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/src/include/net.h
      type_or_value: '-1'
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclNetHandle_t[NCCL_NET_HANDLE_MAXSIZE]
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/net.h
      type: char
    union: []
- function_names: []
  source_file: /src/nccl/src/include/mem_manager.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_FABRIC_SUPPORTED
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/include/mem_manager.h
      type_or_value: ((CUdevice_attribute)128)
    - item_type: preproc_def
      name: CU_MEM_HANDLE_TYPE_FABRIC
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/mem_manager.h
      type_or_value: ((CUmemAllocationHandleType)0x8ULL)
    - item_type: preproc_def
      name: CU_IPC_HANDLE_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/mem_manager.h
      type_or_value: '64'
    - item_type: preproc_def
      name: NCCL_MEM_EXPORT_PEERS_INIT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/include/mem_manager.h
      type_or_value: '8'
    structs:
    - fields:
      - name: data[CU_IPC_HANDLE_SIZE]
        type: unsigned char
      item_type: struct
      name: CUmemFabricHandle_st
      pos:
        line_end: 29
        line_start: 27
        source_file: /src/nccl/src/include/mem_manager.h
    - fields:
      - name: shareableHandle
        type: "union {\n    int                          fd;            // For POSIX_FILE_DESCRIPTOR
          (unused)\n    CUmemFabricHandle            fabricHandle;  // For FABRIC\n
          \ }"
      - name: shareableHandleValid
        type: bool
      - name: numExportedPeers
        type: int
      - name: exportedPeersCapacity
        type: int
      - name: '*                           exportedPeerRanks'
        type: int
      item_type: struct
      name: ncclDynMemLocalDesc
      pos:
        line_end: 66
        line_start: 52
        source_file: /src/nccl/src/include/mem_manager.h
    - fields:
      - name: ownerRank
        type: int
      - name: ownerDev
        type: int
      - name: '*                          ownerPtr'
        type: void
      item_type: struct
      name: ncclDynMemImportDesc
      pos:
        line_end: 73
        line_start: 69
        source_file: /src/nccl/src/include/mem_manager.h
    - fields:
      - name: '*                          ptr'
        type: void
      - name: size
        type: size_t
      - name: handle
        type: CUmemGenericAllocationHandle
      - name: handleType
        type: CUmemAllocationHandleType
      - name: memType
        type: ncclMemType_t
      - name: state
        type: ncclDynMemState_t
      - name: cudaDev
        type: int
      - name: '*                          cpuBackup'
        type: void
      - name: isImportedFromPeer
        type: bool
      - name: desc
        type: "union {\n    ncclDynMemLocalDesc          local;\n    ncclDynMemImportDesc
          \        imported;\n  }"
      - name: '*        next'
        type: struct ncclDynMemEntry
      item_type: struct
      name: ncclDynMemEntry
      pos:
        line_end: 97
        line_start: 76
        source_file: /src/nccl/src/include/mem_manager.h
    - fields:
      - name: '*    ptr'
        type: void
      - name: ownerRank
        type: int
      - name: ownerDev
        type: int
      - name: size
        type: size_t
      - name: handleType
        type: int
      item_type: struct
      name: ncclDynMemP2pHandleInfo
      pos:
        line_end: 110
        line_start: 100
        source_file: /src/nccl/src/include/mem_manager.h
    - fields:
      - name: '*  entries'
        type: ncclDynMemEntry
      - name: numEntries
        type: int
      - name: lock
        type: std::mutex
      - name: released
        type: int
      - name: initialized
        type: int
      - name: refCount
        type: int
      - name: totalPersist
        type: size_t
      - name: totalPersistImported
        type: size_t
      - name: totalScratch
        type: size_t
      - name: totalScratchImported
        type: size_t
      - name: totalOffload
        type: size_t
      - name: totalOffloadImported
        type: size_t
      - name: cpuBackupUsage
        type: size_t
      - name: commCudaDev
        type: int
      item_type: struct
      name: ncclMemManager
      pos:
        line_end: 130
        line_start: 113
        source_file: /src/nccl/src/include/mem_manager.h
    - fields:
      - name: '* next'
        type: struct ncclMemManagerTask
      - name: '* comm'
        type: struct ncclComm
      item_type: struct
      name: ncclMemManagerTask
      pos:
        line_end: 135
        line_start: 132
        source_file: /src/nccl/src/include/mem_manager.h
    typedefs:
    - item_type: typedef
      name: CUmemFabricHandle
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/nccl/src/include/mem_manager.h
      type: CUmemFabricHandle_v1
    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: 36
        line_start: 32
        source_file: /src/nccl/src/include/nvmlwrap.h
    - enumerators:
      - name: NVML_NVLINK_CAP_P2P_SUPPORTED
        value: '0'
      - name: NVML_NVLINK_CAP_SYSMEM_ACCESS
        value: '1'
      - name: NVML_NVLINK_CAP_SYSMEM_ATOMICS
        value: '3'
      - name: NVML_NVLINK_CAP_P2P_ATOMICS
        value: '2'
      - name: NVML_NVLINK_CAP_SLI_BRIDGE
        value: '4'
      - name: NVML_NVLINK_CAP_VALID
        value: '5'
      - name: NVML_NVLINK_CAP_COUNT
      item_type: enum
      name: nvmlNvLinkCapability_enum
      pos:
        line_end: 48
        line_start: 38
        source_file: /src/nccl/src/include/nvmlwrap.h
    - enumerators:
      - 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_FUNCTION_NOT_FOUND
        value: '13'
      - name: NVML_ERROR_OPERATING_SYSTEM
        value: '17'
      - name: NVML_ERROR_IRQ_ISSUE
        value: '11'
      - name: NVML_ERROR_GPU_IS_LOST
        value: '15'
      - name: NVML_ERROR_IN_USE
        value: '19'
      - name: NVML_SUCCESS
        value: '0'
      - name: NVML_ERROR_INVALID_ARGUMENT
        value: '2'
      - name: NVML_ERROR_NO_PERMISSION
        value: '4'
      - name: NVML_ERROR_NOT_FOUND
        value: '6'
      - name: NVML_ERROR_INSUFFICIENT_POWER
        value: '8'
      - name: NVML_ERROR_LIBRARY_NOT_FOUND
        value: '12'
      - name: NVML_ERROR_LIB_RM_VERSION_MISMATCH
        value: '18'
      - name: NVML_ERROR_RESET_REQUIRED
        value: '16'
      - name: NVML_ERROR_TIMEOUT
        value: '10'
      - name: NVML_ERROR_CORRUPTED_INFOROM
        value: '14'
      item_type: enum
      name: nvmlReturn_enum
      pos:
        line_end: 73
        line_start: 50
        source_file: /src/nccl/src/include/nvmlwrap.h
    - enumerators:
      - name: NVML_P2P_STATUS_OK
        value: '0'
      - name: NVML_P2P_STATUS_DISABLED_BY_REGKEY
      - name: NVML_P2P_STATUS_GPU_NOT_SUPPORTED
      - name: NVML_P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED
      - 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: 103
        line_start: 94
        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_PROP
      - name: NVML_P2P_CAPS_INDEX_WRITE
      - name: NVML_P2P_CAPS_INDEX_UNKNOWN
      item_type: enum
      name: nvmlGpuP2PCapsIndex_enum
      pos:
        line_end: 114
        line_start: 106
        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_UNSIGNED_INT
        value: '1'
      - name: NVML_VALUE_TYPE_UNSIGNED_LONG
        value: '2'
      - name: NVML_VALUE_TYPE_SIGNED_LONG_LONG
        value: '4'
      - name: NVML_VALUE_TYPE_COUNT
      item_type: enum
      name: nvmlValueType_enum
      pos:
        line_end: 129
        line_start: 119
        source_file: /src/nccl/src/include/nvmlwrap.h
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NVML_DIRECT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVML_API_VERSION
      pos:
        line_end: 25
        line_start: 24
        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: 31
        line_start: 30
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '32'
    - item_type: preproc_def
      name: NVML_FI_DEV_NVLINK_SPEED_MBPS_COMMON
      pos:
        line_end: 152
        line_start: 151
        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: 153
        line_start: 152
        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: 160
        line_start: 159
        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: 165
        line_start: 164
        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: 167
        line_start: 166
        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: 168
        line_start: 167
        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: 169
        line_start: 168
        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: 171
        line_start: 170
        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: 172
        line_start: 171
        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: 173
        line_start: 172
        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: 175
        line_start: 174
        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: 192
        line_start: 191
        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: 194
        line_start: 193
        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: 195
        line_start: 194
        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: 196
        line_start: 195
        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: 197
        line_start: 196
        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: 208
        line_start: 207
        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: 209
        line_start: 208
        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: 210
        line_start: 209
        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: 212
        line_start: 211
        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: 213
        line_start: 212
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '0x11'
    - item_type: preproc_def
      name: nvmlGpuFabricInfo_v2
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: NVML_STRUCT_VERSION(GpuFabricInfo, 2)
    - item_type: preproc_def
      name: nvmlPlatformInfo_v2
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: NVML_STRUCT_VERSION(PlatformInfo, 2)
    - item_type: preproc_def
      name: NVML_CC_SYSTEM_FEATURE_DISABLED
      pos:
        line_end: 278
        line_start: 277
        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: 279
        line_start: 278
        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: 290
        line_start: 289
        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: 291
        line_start: 290
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVML_CC_SYSTEM_MULTIGPU_NVLE
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '2'
    - item_type: preproc_def
      name: nvmlSystemConfComputeSettings_v1
      pos:
        line_end: 306
        line_start: 305
        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: 91
        line_start: 75
        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: 188
        line_start: 179
        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: 205
        line_start: 200
        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: 247
        line_start: 240
        source_file: /src/nccl/src/include/nvmlwrap.h
    - fields:
      - name: version
        type: unsigned int
      - name: ibGuid[16]
        type: unsigned char
      - name: chassisSerialNumber[16]
        type: unsigned char
      - name: slotNumber
        type: unsigned char
      - name: trayIndex
        type: unsigned char
      - name: hostId
        type: unsigned char
      - name: peerType
        type: unsigned char
      - name: moduleId
        type: unsigned char
      item_type: struct
      name: nvmlPlatformInfo_v2_t
      pos:
        line_end: 269
        line_start: 259
        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: 284
        line_start: 280
        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: 302
        line_start: 296
        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: 314
        line_start: 311
        source_file: /src/nccl/src/include/nvmlwrap.h
    - fields:
      - name: p2pStatusRead
        type: nvmlGpuP2PStatus_t
      item_type: struct
      name: ncclNvmlDevicePairInfo
      pos:
        line_end: 317
        line_start: 315
        source_file: /src/nccl/src/include/nvmlwrap.h
    - fields:
      - name: CCEnabled
        type: bool
      - name: multiGpuProtectedPCIE
        type: bool
      - name: multiGpuNVLE
        type: bool
      item_type: struct
      name: ncclNvmlCCStatus
      pos:
        line_end: 326
        line_start: 322
        source_file: /src/nccl/src/include/nvmlwrap.h
    typedefs:
    - item_type: typedef
      name: '* nvmlDevice_t'
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/nccl/src/include/nvmlwrap.h
      type: nvmlDevice_st
    - item_type: typedef
      name: nvmlGpuFabricState_t
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/nccl/src/include/nvmlwrap.h
      type: unsigned char
    - item_type: typedef
      name: nvmlGpuFabricInfoV_t
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/nccl/src/include/nvmlwrap.h
      type: nvmlGpuFabricInfo_v2_t
    - item_type: typedef
      name: nvmlPlatformInfo_t
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/nccl/src/include/nvmlwrap.h
      type: nvmlPlatformInfo_v2_t
    - item_type: typedef
      name: nvmlSystemConfComputeSettings_t
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/nccl/src/include/nvmlwrap.h
      type: nvmlSystemConfComputeSettings_v1_t
    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: 142
        line_start: 135
        source_file: /src/nccl/src/include/nvmlwrap.h
- function_names:
  - ~ncclAsyncJob()
  - ncclGroupStartInternal
  - ncclGroupEnabled
  - ncclGroupErrCheck
  - ncclGroupCommJoin
  - ncclGroupCommPreconnect
  - ncclGroupCommLeave
  source_file: /src/nccl/src/include/group.h
  types:
    enum:
    - enumerators:
      - name: ncclGroupJobRunning
        value: '0'
      - name: ncclGroupJobJoined
        value: '2'
      - name: ncclGroupJobDone
        value: '1'
      item_type: enum
      name: ncclGroupJobState
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/nccl/src/include/group.h
    preproc_defs: []
    structs:
    - fields:
      - name: '* next'
        type: struct ncclAsyncJob
      - name: thread
        type: std::thread
      - 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
      - name: isThreadMain
        type: bool
      item_type: struct
      name: ncclAsyncJob
      pos:
        line_end: 56
        line_start: 35
        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: 75
        line_start: 65
        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: 25
        line_start: 25
        source_file: /src/nccl/src/include/group.h
      type: ncclResult_t
    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: 78
        line_start: 78
        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: 509
        line_start: 505
        source_file: /src/nccl/src/include/comm.h
    - enumerators:
      - name: ncclCheckModeDefault
        value: '0'
      - name: ncclCheckModeDebugGlobal
        value: '2'
      - name: ncclCheckModeDebugLocal
        value: '1'
      item_type: enum
      name: ncclCheckMode
      pos:
        line_end: 520
        line_start: 516
        source_file: /src/nccl/src/include/comm.h
    - enumerators:
      - name: ncclLaunchModeInvalid
        value: '0'
      - name: ncclLaunchModeGroup
      - name: ncclLaunchModeParallel
      item_type: enum
      name: ncclLaunchMode
      pos:
        line_end: 797
        line_start: 793
        source_file: /src/nccl/src/include/comm.h
    preproc_defs:
    - item_type: preproc_def
      name: CACHE_LINE_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/include/comm.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MEM_ALIGN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/include/comm.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: CUDA_IPC_MIN
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/src/include/comm.h
      type_or_value: 2097152UL
    - item_type: preproc_def
      name: NCCL_LL_THREAD_THRESHOLD
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/src/include/comm.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_LL128_THREAD_THRESHOLD
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/src/include/comm.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_SIMPLE_THREAD_THRESHOLD
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/include/comm.h
      type_or_value: '64'
    - item_type: preproc_def
      name: NCCL_IPC_POOL_SIZE
      pos:
        line_end: 81
        line_start: 80
        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: 504
        line_start: 503
        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: 40
        line_start: 33
        source_file: /src/nccl/src/include/comm.h
    - fields: []
      item_type: struct
      name: ncclSendMem
      pos:
        line_end: 64
        line_start: 52
        source_file: /src/nccl/src/include/comm.h
    - fields: []
      item_type: struct
      name: ncclRecvMem
      pos:
        line_end: 76
        line_start: 66
        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: 86
        line_start: 82
        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: 91
        line_start: 88
        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: 97
        line_start: 93
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* next'
        type: struct ncclDestructor
      - name: '* obj'
        type: void
      - name: '* comm'
        type: struct ncclComm
      - name: (*fn)(struct ncclDestructor* me)
        type: ncclResult_t
      item_type: struct
      name: ncclDestructor
      pos:
        line_end: 104
        line_start: 99
        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: 109
        line_start: 106
        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: 114
        line_start: 110
        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
      - name: ginState
        type: struct ncclGinState
      item_type: struct
      name: ncclSharedResources
      pos:
        line_end: 144
        line_start: 116
        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: 168
        line_start: 146
        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: 173
        line_start: 170
        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: 179
        line_start: 174
        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: 187
        line_start: 181
        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: '* sendWin'
        type: struct ncclDevrWindow
      - name: '* recvWin'
        type: struct ncclDevrWindow
      - name: winRegType
        type: ncclSymRegType_t
      - 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: '* groupApiEventHandle'
        type: void
      - name: '* collApiEventHandle'
        type: void
      - name: '* eventHandle'
        type: void
      - name: nChannels
        type: uint8_t
      item_type: struct
      name: ncclTaskColl
      pos:
        line_end: 231
        line_start: 189
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* next'
        type: struct ncclTaskBcast
      - name: func
        type: ncclFunc_t
      - name: '* recvbuff'
        type: void
      - name: '* sendbuff'
        type: void
      - name: count
        type: size_t
      - name: datatype
        type: ncclDataType_t
      - name: root
        type: int
      - name: ringDepth
        type: int
      - name: algorithm
        type: int32_t
      - name: eActivationMask
        type: int
      - name: '* groupApiEventHandle'
        type: void
      - name: '* collApiEventHandle'
        type: void
      - name: '* eventHandle'
        type: void
      - name: nChannels
        type: uint8_t
      item_type: struct
      name: ncclTaskBcast
      pos:
        line_end: 253
        line_start: 234
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* next'
        type: struct ncclTaskP2p
      - name: func
        type: ncclFunc_t
      - name: collAPI
        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: allowUB
        type: bool
      - name: eActivationMask
        type: int
      - name: '* groupApiEventHandle'
        type: void
      - name: '* p2pApiEventHandle'
        type: void
      - name: '* eventHandle'
        type: void
      - name: nChannels
        type: uint8_t
      item_type: struct
      name: ncclTaskP2p
      pos:
        line_end: 272
        line_start: 255
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* next'
        type: struct ncclTaskRma
      - name: func
        type: ncclFunc_t
      - name: ctx
        type: int
      - name: count
        type: size_t
      - name: datatype
        type: ncclDataType_t
      - name: bytes
        type: size_t
      - name: '* srcBuff'
        type: void
      - name: srcWinOffset
        type: size_t
      - name: '* srcWinHost'
        type: struct ncclDevrWindow
      - name: peer
        type: int
      - name: peerWinOffset
        type: size_t
      - name: '* peerWinHost'
        type: struct ncclDevrWindow
      - name: signalMode
        type: ncclSignalMode_t
      - name: '* peers'
        type: int
      - name: '* nsignals'
        type: int
      - name: npeers
        type: int
      - name: eActivationMask
        type: int
      - name: '* groupApiEventHandle'
        type: void
      - name: '* rmaApiEventHandle'
        type: void
      - name: '* eventHandle'
        type: void
      - name: nChannels
        type: uint8_t
      item_type: struct
      name: ncclTaskRma
      pos:
        line_end: 302
        line_start: 274
        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: isCeColl
        type: bool
      - name: isRma
        type: bool
      - name: workStorageType
        type: enum ncclDevWorkStorageType
      - name: kernelSpecialized
        type: bool
      - name: kernelDynSmem
        type: int
      - 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: nTasksBcast
        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: bcastTaskQueue
        type: struct ncclIntruQueue<struct ncclTaskBcast, &ncclTaskBcast::next>
      - name: rmaTaskQueueProxy
        type: struct ncclIntruQueue<struct ncclTaskRma, &ncclTaskRma::next>
      - name: rmaTaskQueueCe
        type: struct ncclIntruQueue<struct ncclTaskRma, &ncclTaskRma::next>
      - name: collTaskQueue
        type: struct ncclIntruQueue<struct ncclTaskColl, &ncclTaskColl::next>
      - name: proxyOpQueue
        type: struct ncclIntruQueue<struct ncclProxyOp, &ncclProxyOp::enqNext>
      - name: '* groupApiEventHandle'
        type: void
      - name: '* kernelLaunchEventHandle'
        type: void
      - name: '* groupEventHandle'
        type: void
      item_type: struct
      name: ncclKernelPlan
      pos:
        line_end: 351
        line_start: 304
        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: 376
        line_start: 358
        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: 426
        line_start: 423
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: collSorter
        type: struct ncclTaskCollSorter
      - name: '* peers'
        type: struct Peer
      - name: nTasksColl
        type: int
      - name: nTasksP2pSend
        type: int
      - name: bcast_info
        type: "struct {\n    int minBcastPeer;  /* initialized to INT_MAX */\n    int
          maxBcastPeer;  /* initialized to INT_MIN */\n    int BcastPeers;  /* initialized
          to 0 */\n  }"
      - name: persistent
        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: collCeTaskQueue
        type: struct ncclIntruQueue<struct ncclTaskColl, &ncclTaskColl::next>
      - name: '*rmaTaskQueues'
        type: struct ncclIntruQueue<struct ncclTaskRma, &ncclTaskRma::next>
      - name: collSymTaskQueue
        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 nBcasts; // Number
          of bcast works in this batch\n        int p2pEpoch;\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      int nWorkBatchesBcast;
          // number of bcast 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: 501
        line_start: 428
        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>
      - name: bcastQueue
        type: struct ncclIntruQueue<struct ncclTaskBcast, &ncclTaskBcast::next>
      item_type: struct
      name: Peer
      pos:
        line_end: 438
        line_start: 433
        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 nBcasts; // Number of bcast works
          in this batch\n        int p2pEpoch;\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      int nWorkBatchesBcast;
          // number of bcast 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: 491
        line_start: 477
        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 nBcasts; // Number of bcast works in this batch\n        int
          p2pEpoch;\n        int p2pRounds[NCCL_MAX_DEV_WORK_P2P_PER_BATCH]; // which
          rounds are present in this batch.\n      }"
      - name: nWorkBatchesP2p
        type: int
      - name: nWorkBatchesBcast
        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: 490
        line_start: 478
        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: minNetBw
        type: float
      - name: '* ncclNet'
        type: ncclNet_t
      - name: '* netContext'
        type: void
      - name: '* ginContext'
        type: void
      - name: '* rmaGinContext'
        type: void
      - name: netPluginIndex
        type: int
      - name: ginPluginIndex
        type: int
      - name: ncclNetVer
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: '* ncclCollNet'
        type: ncclCollNet_t
      - name: '* collNetContext'
        type: void
      - name: '* bootstrap'
        type: void
      - name: isGrow
        type: bool
      - 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: ncclAffinity
      - 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: minLocalRanks
        type: int
      - name: '* rankToNode'
        type: int
      - name: '* rankToLocalRank'
        type: int
      - name: '* localRankToRank'
        type: int
      - name: '* nodeRanks'
        type: struct ncclNodeRanks
      - name: MNNVL
        type: int
      - name: isMultiRankGpu
        type: bool
      - name: clique
        type: struct cliqueInfo
      - name: cliqueRank
        type: int
      - name: nvlDomainInfo
        type: ncclNvlDomainInfo_v5_t
      - name: checkMode
        type: ncclCheckMode_t
      - name: dmaBufSupport
        type: bool
      - name: ccEnable
        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: nvlsTreeMaxChunkSize
        type: int
      - name: nvlsHeads[MAXCHANNELS]
        type: int
      - name: p2pnChannels
        type: int
      - name: p2pnChannelsPerPeer
        type: int
      - name: p2pSchedGroupSize
        type: int
      - name: p2pMaxPeers
        type: int
      - name: allocP2pNetLLBuffers
        type: bool
      - name: buffSizes[NCCL_NUM_PROTOCOLS]
        type: int
      - name: p2pChunkSize
        type: int
      - name: nvlsChunkSize
        type: int
      - name: p2pCrossClique
        type: bool
      - name: nvlDomainSize
        type: int
      - name: tunerConstants
        type: ncclTunerConstants_t
      - 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: revokedFlag
        type: uint32_t
      - name: '* devComm'
        type: struct ncclKernelComm
      - 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_ncclTaskBcast
        type: struct ncclMemoryPool
      - name: memPool_ncclTaskColl
        type: struct ncclMemoryPool
      - name: memPool_ncclTaskP2p
        type: struct ncclMemoryPool
      - name: memPool_ncclTaskRma
        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: '* ringTasks'
        type: void
      - 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: rmaState
        type: struct ncclRmaState
      - name: rmaCeInitTaskQueue
        type: struct ncclIntruQueue<struct ncclRmaCeInitTask, &ncclRmaCeInitTask::next>
      - name: argsInfoQueue
        type: struct ncclIntruQueue<struct ncclArgsInfo, &ncclArgsInfo::next>
      - name: ceColl
        type: struct ncclCeColl
      - name: ceInitTaskQueue
        type: struct ncclIntruQueue<struct ncclCeInitTask, &ncclCeInitTask::next>
      - name: regCache
        type: struct ncclRegCache
      - name: isAllNvlink
        type: int
      - name: isAllDirectP2p
        type: bool
      - name: isAllCudaP2p
        type: bool
      - name: isAllDirectNvlink
        type: bool
      - name: symmetricSupport
        type: int
      - name: useNetPXN
        type: bool
      - name: useGdr
        type: bool
      - name: globalGinSupport
        type: ncclGinConnectionType_t
      - name: globalRmaProxySupport
        type: bool
      - name: hostRmaSupport
        type: bool
      - name: childCount
        type: int
      - name: devrState
        type: struct ncclDevrState
      - name: symkState
        type: struct ncclSymkState
      - name: '* memManager'
        type: struct ncclMemManager
      - name: suspendTaskQueue
        type: struct ncclIntruQueue<struct ncclMemManagerTask, &ncclMemManagerTask::next>
      - name: resumeTaskQueue
        type: struct ncclIntruQueue<struct ncclMemManagerTask, &ncclMemManagerTask::next>
      - name: endMagic
        type: uint64_t
      item_type: struct
      name: ncclComm
      pos:
        line_end: 788
        line_start: 522
        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: 712
        line_start: 712
        source_file: /src/nccl/src/include/comm.h
    typedefs: []
    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: ncclSocketStateNum
        value: '11'
      - name: ncclSocketStateError
        value: '10'
      item_type: enum
      name: ncclSocketState
      pos:
        line_end: 66
        line_start: 53
        source_file: /src/nccl/src/include/socket.h
    - enumerators:
      - name: ncclSocketTypeUnknown
        value: '0'
      - name: ncclSocketTypeBootstrap
        value: '1'
      - name: ncclSocketTypeProxy
        value: '2'
      - name: ncclSocketTypeNetSocket
        value: '3'
      - name: ncclSocketTypeNetIb
        value: '4'
      - name: ncclSocketTypeRasNetwork
        value: '5'
      item_type: enum
      name: ncclSocketType
      pos:
        line_end: 75
        line_start: 68
        source_file: /src/nccl/src/include/socket.h
    preproc_defs:
    - item_type: preproc_def
      name: MAX_IFS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/socket.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_IF_NAME_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/socket.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NI_MAXHOST
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/include/socket.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: NI_MAXSERV
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/include/socket.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SOCKET_NAME_MAXLEN
      pos:
        line_end: 35
        line_start: 34
        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: 36
        line_start: 35
        source_file: /src/nccl/src/include/socket.h
      type_or_value: 0x564ab9f2fc4b9d6cULL
    - item_type: preproc_def
      name: SOCKET_NAME_MAXLEN
      pos:
        line_end: 43
        line_start: 42
        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: 44
        line_start: 43
        source_file: /src/nccl/src/include/socket.h
      type_or_value: 0x564ab9f2fc4b9d6cULL
    - item_type: preproc_def
      name: NCCL_SOCKET_SEND
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/nccl/src/include/socket.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_SOCKET_RECV
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/nccl/src/include/socket.h
      type_or_value: '1'
    structs:
    - fields:
      - name: socketDescriptor
        type: ncclSocketDescriptor
      - name: acceptSocketDescriptor
        type: ncclSocketDescriptor
      - 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: 94
        line_start: 77
        source_file: /src/nccl/src/include/socket.h
    - fields:
      - name: op
        type: int
      - name: '* sock'
        type: struct ncclSocket
      - name: '* ptr'
        type: void
      - name: size
        type: int
      - name: offset
        type: int
      item_type: struct
      name: ncclSocketOp
      pos:
        line_end: 101
        line_start: 95
        source_file: /src/nccl/src/include/socket.h
    typedefs: []
    union:
    - fields:
      - name: _storage[28]
        type: char
      item_type: union
      name: ncclSocketAddress
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/nccl/src/include/socket.h
    - 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: 50
        line_start: 46
        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
      - name: nRanks
        type: int
      item_type: struct
      name: ncclBootstrapHandle
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/nccl/src/include/bootstrap.h
    typedefs: []
    union: []
- function_names:
  - ncclSymkLLMaxSlots
  - calcArgsSize
  - getWorkRange
  - getWorks
  source_file: /src/nccl/src/include/sym_kernels.h
  types:
    enum:
    - enumerators:
      - name: ncclSymkKernelId_AllReduce_AGxLL_R
      - name: ncclSymkKernelId_AllReduce_RSxLD_AGxST
      - name: ncclSymkKernelId_AllGather_TmaST
      - name: ncclSymkKernelId_AllGather_RailRing_LsaSTMC
      - name: ncclSymkKernelId_ReduceScatter_LDMC
      - name: ncclSymkKernelId_Count
      - name: ncclSymkKernelId_AllReduce_RSxTmaLD_AGxTmaST
      - name: ncclSymkKernelId_AllGather_LLMC
      - name: ncclSymkKernelId_ReduceScatter_LD
      - name: ncclSymkKernelId_AllGather_STMC
      - name: ncclSymkKernelId_AllReduce_AGxLLMC_R
      - name: ncclSymkKernelId_AllGather_LL
      - name: ncclSymkKernelId_AllGather_TmaSTMC
      - name: ncclSymkKernelId_ReduceScatter_RailA2A_LsaLDMC
      - name: ncclSymkKernelId_ReduceScatter_TmaLD
      - name: ncclSymkKernelId_AllReduce_RSxLDMC_AGxSTMC
      - name: ncclSymkKernelId_AllGather_ST
      - name: ncclSymkKernelId_ReduceScatter_LL
      - name: ncclSymkKernelId_ReduceScatter_RailA2A_LsaLD
      item_type: enum
      name: ncclSymkKernelId
      pos:
        line_end: 55
        line_start: 32
        source_file: /src/nccl/src/include/sym_kernels.h
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_SYM_KERNEL_CELL_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/include/sym_kernels.h
      type_or_value: 1024 // no less than 16 bytes minimal cell size
    structs:
    - fields:
      - name: devComm
        type: struct ncclDevComm
      - name: lsaLLA2A
        type: struct ncclLLA2AHandle
      - name: ginOutbox
        type: struct ncclGinOutboxHandle
      - name: ginCounterPerBlock
        type: ncclGinCounter_t
      - name: ginInboxRail
        type: struct ncclGinInboxA2AHandle
      - name: ginSyncHandle
        type: struct ncclGinSyncHandle
      item_type: struct
      name: ncclSymkDevComm
      pos:
        line_end: 64
        line_start: 57
        source_file: /src/nccl/src/include/sym_kernels.h
    - fields:
      - name: initialized
        type: bool
      - name: hasLsaMultimem
        type: bool
      - name: maxGinInboxBlocks
        type: int
      - name: kcomm
        type: struct ncclSymkDevComm
      item_type: struct
      name: ncclSymkState
      pos:
        line_end: 71
        line_start: 66
        source_file: /src/nccl/src/include/sym_kernels.h
    - fields:
      - name: workHi
        type: uint16_t
      - name: fracHi
        type: uint16_t
      item_type: struct
      name: ncclSymkChannelWorkRange
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/nccl/src/include/sym_kernels.h
    - fields:
      - name: redOpArg
        type: uint64_t
      - name: nElts
        type: size_t
      - name: '* inputWin'
        type: struct ncclWindow_vidmem
      - name: inputOff
        type: size_t
      - name: rootRank
        type: int
      - name: sChannelId
        type: uint64_t
      item_type: struct
      name: ncclSymkDevWork
      pos:
        line_end: 86
        line_start: 79
        source_file: /src/nccl/src/include/sym_kernels.h
    - fields:
      - name: kcomm
        type: struct ncclSymkDevComm
      - name: nMaxChannels
        type: int
      - name: maxDynamicSmem
        type: int
      - name: __device__
        type: __host__
      - name: __device__
        type: __host__
      item_type: struct
      name: ncclSymkDevWorkArgs
      pos:
        line_end: 105
        line_start: 88
        source_file: /src/nccl/src/include/sym_kernels.h
    typedefs: []
    union:
    - fields:
      - name: args
        type: struct ncclSymkDevWorkArgs
      - name: buf4K[4096]
        type: char
      item_type: union
      name: ncclSymkDevWorkArgs4K
      pos:
        line_end: 110
        line_start: 107
        source_file: /src/nccl/src/include/sym_kernels.h
- function_names:
  - NCCL_LL_FLAG
  - NCCL_LL_FLAG
  - ncclP2pPartBounds
  - ncclP2pChannelForPart
  - ncclP2pChannelToPart
  - ncclProtoGrainSize
  - ncclCollCbdPart
  - ncclDevWorkSize
  - ncclMaxDevWorkBatchBytes
  - ncclMaxKernelArgsSize
  - min_constexpr
  - min_constexpr
  - max_constexpr
  - max_constexpr
  - ncclDevMaxChannelsForArgsBytes
  - ncclCalcUnroll
  - ncclCollUnroll
  - ncclNvlsUnrollBytes
  - ncclNvlsUnrollInsns
  - ncclNvlsUnroll
  - ncclShmemScratchWarpSize
  - ncclTmaShmemScratchWarpSize
  - ncclShmemDynamicSize
  - ncclNvlsSupported
  - ncclDevFuncId
  - ncclDevFuncId_P2p
  source_file: /src/nccl/src/include/device.h
  types:
    enum:
    - enumerators:
      - name: ncclDevSum
      - name: ncclDevProd
      - name: ncclDevMinMax
      - name: ncclDevPreMulSum
      - name: ncclDevSumPostDiv
      - name: ncclNumDevRedOps
      item_type: enum
      name: ncclDevRedOp_t
      pos:
        line_end: 63
        line_start: 59
        source_file: /src/nccl/src/include/device.h
    - enumerators:
      - name: ncclDevWorkTypeP2p
      - name: ncclDevWorkTypeBcast
      - name: ncclDevWorkTypeCollReg
      - name: ncclDevWorkTypeColl
      item_type: enum
      name: ncclDevWorkType
      pos:
        line_end: 371
        line_start: 366
        source_file: /src/nccl/src/include/device.h
    - enumerators:
      - name: ncclDevWorkStorageTypeArgs
        value: '0'
      - name: ncclDevWorkStorageTypeFifo
        value: '1'
      - name: ncclDevWorkStorageTypePersistent
        value: '2'
      item_type: enum
      name: ncclDevWorkStorageType
      pos:
        line_end: 468
        line_start: 464
        source_file: /src/nccl/src/include/device.h
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_MAX_OPS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/device.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: NCCL_STEPS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/device.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/include/device.h
      type_or_value: __CUDA_ARCH__
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 35
        line_start: 34
        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: 38
        line_start: 37
        source_file: /src/nccl/src/include/device.h
      type_or_value: '900'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/nccl/src/include/device.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/src/include/device.h
      type_or_value: '1010'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/include/device.h
      type_or_value: '1200'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 49
        line_start: 48
        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: 53
        line_start: 52
        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: 55
        line_start: 54
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WARP_SIZE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/nccl/src/include/device.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAXCHANNELS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/nccl/src/include/device.h
      type_or_value: '64'
    - item_type: preproc_def
      name: NCCL_MAX_LOCAL_RANKS
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/nccl/src/include/device.h
      type_or_value: '72'
    - item_type: preproc_def
      name: NCCL_MAX_NTHREADS
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/nccl/src/include/device.h
      type_or_value: '640'
    - item_type: preproc_def
      name: NCCL_MIN_NTHREADS
      pos:
        line_end: 91
        line_start: 90
        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: 92
        line_start: 91
        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: 93
        line_start: 92
        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: 94
        line_start: 93
        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: 95
        line_start: 94
        source_file: /src/nccl/src/include/device.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_LL_CLEAN_MASK
      pos:
        line_end: 97
        line_start: 96
        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: 98
        line_start: 97
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: NCCL_LL_CLEAN_MASK
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x7ffffff8'
    - item_type: preproc_def
      name: NCCL_LL128_LINESIZE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/nccl/src/include/device.h
      type_or_value: '128'
    - item_type: preproc_def
      name: NCCL_LL128_LINEELEMS
      pos:
        line_end: 108
        line_start: 107
        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: 109
        line_start: 108
        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: 111
        line_start: 110
        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: 112
        line_start: 111
        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: 114
        line_start: 113
        source_file: /src/nccl/src/include/device.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_LL128_SHMEM_SIZE
      pos:
        line_end: 115
        line_start: 114
        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: 117
        line_start: 116
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: NCCL_P2P_READ
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: NCCL_DIRECT_NIC
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: NCCL_NVLS_MIN_POLL
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: NCCL_MAX_GROUPS
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/nccl/src/include/device.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NCCL_REGULAR_BUFFER
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: NCCL_IPC_REG_BUFFER
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: NCCL_NVLS_REG_BUFFER
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: NCCL_NET_REG_BUFFER
      pos:
        line_end: 128
        line_start: 127
        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: 187
        line_start: 186
        source_file: /src/nccl/src/include/device.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_MAX_TREE_ARITY
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/nccl/src/include/device.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_MAX_DIRECT_ARITY
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/nccl/src/include/device.h
      type_or_value: '7'
    - item_type: preproc_def
      name: NCCL_MAX_NVLS_ARITY
      pos:
        line_end: 210
        line_start: 209
        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: 211
        line_start: 210
        source_file: /src/nccl/src/include/device.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_MAX_ARITY
      pos:
        line_end: 223
        line_start: 222
        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: 225
        line_start: 224
        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: 228
        line_start: 227
        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: 387
        line_start: 386
        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: 388
        line_start: 387
        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: 389
        line_start: 388
        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: 428
        line_start: 427
        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: 69
        line_start: 64
        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: 147
        line_start: 129
        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
      - name: (*proxyGinProgress)(struct ncclProxyState* proxyState)
        type: ncclResult_t
      item_type: struct
      name: ncclProxyConnector
      pos:
        line_end: 158
        line_start: 149
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: connected
        type: int
      - name: hasSeen
        type: int
      - name: p2pOnly
        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: 168
        line_start: 160
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: prev
        type: int
      - name: next
        type: int
      - name: '* userRanks'
        type: int
      - name: '* rankToIndex'
        type: int
      - name: index
        type: int
      item_type: struct
      name: ncclRing
      pos:
        line_end: 182
        line_start: 170
        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: 193
        line_start: 189
        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: 207
        line_start: 196
        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: 219
        line_start: 211
        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: 232
        line_start: 228
        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: 253
        line_start: 236
        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: pad1[12]
        type: uint8_t
      - name: '* recvbuff'
        type: void
      - name: '* sendbuff'
        type: void
      - name: pad0
        type: uint64_t
      - 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
      - name: pad2[8]
        type: uint8_t
      item_type: struct
      name: ncclDevWorkColl
      pos:
        line_end: 311
        line_start: 279
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: ringDepth
        type: int
      - name: chunkSize
        type: int
      - name: '*sendbuff'
        type: void
      - name: '*recvbuff'
        type: void
      - name: bytes
        type: size_t
      - name: bytes_done
        type: size_t
      - name: pad[8]
        type: uint8_t
      item_type: struct
      name: ncclDevWorkBcast
      pos:
        line_end: 322
        line_start: 314
        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: 364
        line_start: 359
        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: 407
        line_start: 389
        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: 414
        line_start: 409
        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: 425
        line_start: 416
        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: 433
        line_start: 428
        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: p2pCrossClique
        type: bool
      - 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: ncclKernelComm
      pos:
        line_end: 457
        line_start: 435
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: comm
        type: struct ncclKernelComm
      - name: channels[MAXCHANNELS]
        type: struct ncclDevChannel
      item_type: struct
      name: ncclKernelCommAndChannels
      pos:
        line_end: 462
        line_start: 459
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: '* comm'
        type: struct ncclKernelComm
      - 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: 478
        line_start: 470
        source_file: /src/nccl/src/include/device.h
    - fields: []
      item_type: struct
      name: ncclDevKernelArgsStorage
      pos:
        line_end: 491
        line_start: 486
        source_file: /src/nccl/src/include/device.h
    typedefs:
    - item_type: typedef
      name: ncclDevKernelArgs4K
      pos:
        line_end: 493
        line_start: 493
        source_file: /src/nccl/src/include/device.h
      type: ncclDevKernelArgsStorage
    union:
    - fields:
      - name: v[2]
        type: uint64_t
      - name: i4
        type: int4
      item_type: union
      name: ncclLLFifoLine
      pos:
        line_end: 84
        line_start: 71
        source_file: /src/nccl/src/include/device.h
- function_names:
  - ncclGdcPinFlag
  source_file: /src/nccl/src/include/graph.h
  types:
    enum:
    - enumerators:
      - name: ncclTopoGdrModeDisable
        value: '0'
      - name: ncclTopoGdrModeNum
        value: '3'
      - name: ncclTopoGdrModePci
        value: '2'
      - name: ncclTopoGdrModeDefault
        value: '1'
      item_type: enum
      name: ncclTopoGdrMode
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/nccl/src/include/graph.h
    - enumerators:
      - name: ncclTopoFlushNone
        value: '0'
      - name: ncclTopoFlushC2c
        value: '2'
      - name: ncclTopoFlushAlways
        value: '1'
      item_type: enum
      name: ncclTopoFlushType
      pos:
        line_end: 56
        line_start: 52
        source_file: /src/nccl/src/include/graph.h
    - enumerators:
      - name: NETDEVS_POLICY_AUTO
        value: '0x0'
      - name: NETDEVS_POLICY_ALL
        value: '0x1'
      - name: NETDEVS_POLICY_MAX
        value: '0x2'
      - name: NETDEVS_POLICY_UNDEF
        value: '0xffffffff'
      item_type: enum
      name: netDevsPolicy
      pos:
        line_end: 101
        line_start: 96
        source_file: /src/nccl/src/include/graph.h
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_ARCH_X86
      pos:
        line_end: 75
        line_start: 74
        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: 76
        line_start: 75
        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: 77
        line_start: 76
        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: 78
        line_start: 77
        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: 79
        line_start: 78
        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: 80
        line_start: 79
        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: 81
        line_start: 80
        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: 82
        line_start: 81
        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: 83
        line_start: 82
        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: 84
        line_start: 83
        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: 85
        line_start: 84
        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: 86
        line_start: 85
        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: 87
        line_start: 86
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_TOPO_MAX_NODES
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '640'
    - item_type: preproc_def
      name: PATH_LOC
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PATH_NVL
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_NVB
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PATH_C2C
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PATH_PIX
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PATH_PXB
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '5'
    - item_type: preproc_def
      name: PATH_P2C
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '6'
    - item_type: preproc_def
      name: PATH_PXN
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '7'
    - item_type: preproc_def
      name: PATH_PHB
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PATH_SYS
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '9'
    - item_type: preproc_def
      name: PATH_NET
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '10'
    - item_type: preproc_def
      name: PATH_PORT
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/nccl/src/include/graph.h
      type_or_value: PATH_NVL
    - item_type: preproc_def
      name: PATH_DIS
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '11'
    - item_type: preproc_def
      name: NCCL_TOPO_PATTERN_BALANCED_TREE
      pos:
        line_end: 152
        line_start: 151
        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: 153
        line_start: 152
        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: 154
        line_start: 153
        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: 155
        line_start: 154
        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: 156
        line_start: 155
        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: 157
        line_start: 156
        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: 176
        line_start: 157
        source_file: /src/nccl/src/include/graph.h
    - fields:
      - name: crossNicRing
        type: int
      - 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: 193
        line_start: 182
        source_file: /src/nccl/src/include/graph.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CUPFN
  - CUCHECK
  - CUCALL
  - CUCHECKGOTO
  - CUCHECKIGNORE
  - CUCHECKTHREAD
  - DECLARE_CUDA_PFN_EXTERN
  - ncclCudaStreamIsLegacyNull
  - 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:
    - fields:
      - name: info
        type: struct ncclInfo
      - name: '* next'
        type: struct ncclArgsInfo
      item_type: struct
      name: ncclArgsInfo
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/nccl/src/include/argcheck.h
    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: 16
        line_start: 15
        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: 18
        line_start: 17
        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: 19
        line_start: 18
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NCCL_NET_MULTI_REQUEST
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: MAX_NET_SIZE
      pos:
        line_end: 22
        line_start: 21
        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: 23
        line_start: 22
        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: 25
        line_start: 24
        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: 26
        line_start: 25
        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: 27
        line_start: 26
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: NCCL_NET_MR_FLAG_FORCE_SO
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: NCCL_NET_SIGNAL_OP_INC
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NCCL_NET_SIGNAL_OP_ADD
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: NCCL_NET_MAX_REQUESTS
      pos:
        line_end: 34
        line_start: 33
        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: 38
        line_start: 37
        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: 49
        line_start: 48
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: NCCL_NET_MAX_DEVS_PER_NIC_V12
    - item_type: preproc_def
      name: NCCL_NET_PLUGIN_SYMBOL
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: ncclNetPlugin_v12
    - item_type: preproc_def
      name: NCCL_COLLNET_PLUGIN_SYMBOL
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: ncclCollNetPlugin_v12
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclNet_t
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type: ncclNet_v12_t
    - item_type: typedef
      name: ncclCollNet_t
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type: ncclCollNet_v12_t
    - item_type: typedef
      name: ncclNetSGE_t
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type: ncclNetSGE_v12_t
    - item_type: typedef
      name: ncclNetProperties_t
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type: ncclNetProperties_v12_t
    - item_type: typedef
      name: ncclNetAttr_t
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type: ncclNetAttr_v12_t
    - item_type: typedef
      name: ncclNetVDeviceProps_t
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type: ncclNetVDeviceProps_v12_t
    - item_type: typedef
      name: ncclNetCommConfig_t
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type: ncclNetCommConfig_v12_t
    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: 99
        line_start: 98
        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: 100
        line_start: 99
        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: 101
        line_start: 100
        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_v1_t
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfilerEventState_v2_t
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfilerEventState_v3_t
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfilerEventState_v4_t
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfilerEventState_v5_t
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfilerEventState_v6_t
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfiler_t
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type: ncclProfiler_v6_t
    - item_type: typedef
      name: ncclProfilerEventDescr_t
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type: ncclProfilerEventDescr_v6_t
    - item_type: typedef
      name: ncclProfilerEventStateArgs_t
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type: ncclProfilerEventStateArgs_v6_t
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/nccl_gin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GIN_HANDLE_MAXSIZE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/src/include/plugin/nccl_gin.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MAX_GIN_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/include/plugin/nccl_gin.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_GIN_MAX_PLUGINS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/plugin/nccl_gin.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NCCL_GIN_SIGNAL_OP_INC
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/plugin/nccl_gin.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NCCL_GIN_SIGNAL_OP_ADD
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/plugin/nccl_gin.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: NCCL_GIN_PLUGIN_SYMBOL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/include/plugin/nccl_gin.h
      type_or_value: ncclGinPlugin_v13
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclGin_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/nccl/src/include/plugin/nccl_gin.h
      type: ncclGin_v13_t
    - item_type: typedef
      name: ncclGinConfig_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/nccl/src/include/plugin/nccl_gin.h
      type: ncclGinConfig_v13_t
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/nccl_env.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_ENV_PLUGIN_SYMBOL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/include/plugin/nccl_env.h
      type_or_value: ncclEnvPlugin_v1
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclEnv_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/nccl/src/include/plugin/nccl_env.h
      type: ncclEnv_v1_t
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/plugin.h
  types:
    enum:
    - enumerators:
      - name: ncclPluginTypeNet
      - name: ncclPluginTypeGin
      - name: ncclPluginTypeEnv
      - name: ncclPluginTypeProfiler
      - name: ncclPluginTypeTuner
      item_type: enum
      name: ncclPluginType
      pos:
        line_end: 18
        line_start: 12
        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: 25
        line_start: 24
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '"ncclTunerPlugin_v6"'
    - item_type: preproc_def
      name: NCCL_ALGO_UNDEF
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_ALGO_TREE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_ALGO_RING
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_ALGO_COLLNET_DIRECT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_ALGO_COLLNET_CHAIN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_ALGO_NVLS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_ALGO_NVLS_TREE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NCCL_ALGO_PAT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NCCL_NUM_ALGORITHMS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: NCCL_NUM_ALGORITHMS_V5 // Tree/Ring/CollNet*/PAT
    - item_type: preproc_def
      name: NCCL_PROTO_UNDEF
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_PROTO_LL
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_PROTO_LL128
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_PROTO_SIMPLE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_NUM_PROTOCOLS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: NCCL_NUM_PROTOCOLS_V5 // Simple/LL/LL128
    - item_type: preproc_def
      name: NCCL_ALGO_PROTO_IGNORE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '-1.0'
    - item_type: preproc_def
      name: NCCL_HW_NVLINK
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_HW_PCI
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_HW_NET
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_NUM_HW_LINKS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: NCCL_NUM_HW_LINKS_V5
    - item_type: preproc_def
      name: NCCL_VOLTA_COMPCAP_IDX
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_AMPERE_COMPCAP_IDX
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_HOPPER_COMPCAP_IDX
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_BLACKWELL_COMPCAP_IDX
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_NUM_COMPCAPS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: NCCL_NUM_COMPCAPS_V5
    - item_type: preproc_def
      name: NCCL_TUNING_SCALE_1NODE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_TUNING_SCALE_2NODES
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_TUNING_SCALE_4NODES
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_NUM_TUNING_SCALES
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: NCCL_NUM_TUNING_SCALES_V5
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclTuner_t
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type: ncclTuner_v6_t
    - item_type: typedef
      name: ncclTunerConstants_t
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type: ncclTunerConstants_v5_t
    - item_type: typedef
      name: ncclNvlDomainInfo_t
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type: ncclNvlDomainInfo_v6_t
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/gin/gin_v12.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** ctx, uint64_t commId, ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v11_t* props)
        type: ncclResult_t
      - name: (*listen)(void* ctx, int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: "(*connect)(void* ctx, void* handles[], int nranks, int rank, int nConnections,\n
          \                         int queueDepth, void* listenComm, void** collComm)"
        type: ncclResult_t
      - name: (*createContext)(void* collComm, int nSignals, int nCounters, int nContexts,
          void** ginCtx, ncclNetDeviceHandle_v11_t** devHandle)
        type: ncclResult_t
      - name: (*regMrSym)(void* collComm, void* data, size_t size, int type, uint64_t
          mrFlags, void** mhandle, void **ginHandle)
        type: ncclResult_t
      - name: (*regMrSymDmaBuf)(void* collComm, void* data, size_t size, int type,
          uint64_t offset, int fd, uint64_t mrFlags, void** mhandle, void **ginHandle)
        type: ncclResult_t
      - name: (*deregMrSym)(void* collComm, void* mhandle)
        type: ncclResult_t
      - name: (*destroyContext)(void* ginCtx)
        type: ncclResult_t
      - name: (*closeColl)(void* collComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: "(*iput)(void* collComm, uint64_t srcOff, void* srcMhandle, size_t size,\n
          \     uint64_t dstOff, void* dstMhandle, uint32_t rank, int connectionId,
          void** request)"
        type: ncclResult_t
      - name: "(*iputSignal)(void* collComm, uint64_t srcOff, void* srcMhandle,\n
          \     size_t size, uint64_t dstOff, void* dstMhandle,\n      uint32_t rank,
          uint64_t signalOff, void *signalMhandle,\n      uint64_t signalValue, uint32_t
          signalOp, int connectionId, void** request)"
        type: ncclResult_t
      - name: (*test)(void* collComm, void* request, int* done)
        type: ncclResult_t
      - name: (*ginProgress)(void* collComm)
        type: ncclResult_t
      - name: (*queryLastError)(void* ginCtx, bool *hasError)
        type: ncclResult_t
      - name: (*finalize)(void* ctx)
        type: ncclResult_t
      item_type: struct
      name: ncclGin_v12_t
      pos:
        line_end: 60
        line_start: 11
        source_file: /src/nccl/src/include/plugin/gin/gin_v12.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/gin/gin_v13.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nSignals
        type: int
      - name: nCounters
        type: int
      - name: nContexts
        type: int
      - name: queueDepth
        type: int
      - name: trafficClass
        type: int
      item_type: struct
      name: ncclGinConfig_v13_t
      pos:
        line_end: 17
        line_start: 11
        source_file: /src/nccl/src/include/plugin/gin/gin_v13.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** ctx, uint64_t commId, ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v12_t* props)
        type: ncclResult_t
      - name: (*listen)(void* ctx, int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: "(*connect)(void* ctx, void* handles[], int nranks, int rank,\n                          void*
          listenComm, void** collComm)"
        type: ncclResult_t
      - name: (*createContext)(void* collComm, ncclGinConfig_v13_t* config, void**
          ginCtx, ncclNetDeviceHandle_v11_t** devHandle)
        type: ncclResult_t
      - name: (*regMrSym)(void* collComm, void* data, size_t size, int type, uint64_t
          mrFlags, void** mhandle, void **ginHandle)
        type: ncclResult_t
      - name: (*regMrSymDmaBuf)(void* collComm, void* data, size_t size, int type,
          uint64_t offset, int fd, uint64_t mrFlags, void** mhandle, void **ginHandle)
        type: ncclResult_t
      - name: (*deregMrSym)(void* collComm, void* mhandle)
        type: ncclResult_t
      - name: (*destroyContext)(void* ginCtx)
        type: ncclResult_t
      - name: (*closeColl)(void* collComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: "(*iput)(void* ginCtx, int context, uint64_t srcOff, void* srcMhandle,
          size_t size,\n      uint64_t dstOff, void* dstMhandle, uint32_t rank, void**
          request)"
        type: ncclResult_t
      - name: "(*iputSignal)(void* ginCtx, int context, uint64_t srcOff, void* srcMhandle,\n
          \     size_t size, uint64_t dstOff, void* dstMhandle,\n      uint32_t rank,
          uint64_t signalOff, void *signalMhandle,\n      uint64_t signalValue, uint32_t
          signalOp, void** request)"
        type: ncclResult_t
      - name: "(*iget)(void* ginCtx, int context, uint64_t remoteOff, void* remoteMhandle,
          size_t size,\n      uint64_t localOff, void* localMhandle, uint32_t rank,
          void** request)"
        type: ncclResult_t
      - name: (*iflush)(void* ginCtx, int context, void* mhandle, uint32_t rank, void**
          request)
        type: ncclResult_t
      - name: (*test)(void* collComm, void* request, int* done)
        type: ncclResult_t
      - name: (*ginProgress)(void* ginCtx)
        type: ncclResult_t
      - name: (*queryLastError)(void* ginCtx, bool *hasError)
        type: ncclResult_t
      - name: (*finalize)(void* ctx)
        type: ncclResult_t
      item_type: struct
      name: ncclGin_v13_t
      pos:
        line_end: 71
        line_start: 19
        source_file: /src/nccl/src/include/plugin/gin/gin_v13.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/gin/gin_v11.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** ctx, uint64_t commId, ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v11_t* props)
        type: ncclResult_t
      - name: (*listen)(void* ctx, int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* ctx, void* handles[], int nranks, int rank, void* listenComm,
          void** collComm)
        type: ncclResult_t
      - name: (*createContext)(void* collComm, int nSignals, int nCounters, void**
          ginCtx, ncclNetDeviceHandle_v11_t** devHandle)
        type: ncclResult_t
      - name: (*regMrSym)(void* collComm, void* data, size_t size, int type, uint64_t
          mrFlags, void** mhandle, void **ginHandle)
        type: ncclResult_t
      - name: (*regMrSymDmaBuf)(void* collComm, void* data, size_t size, int type,
          uint64_t offset, int fd, uint64_t mrFlags, void** mhandle, void **ginHandle)
        type: ncclResult_t
      - name: (*deregMrSym)(void* collComm, void* mhandle)
        type: ncclResult_t
      - name: (*destroyContext)(void* ginCtx)
        type: ncclResult_t
      - name: (*closeColl)(void* collComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: "(*iput)(void* collComm, uint64_t srcOff, void* srcMhandle, size_t size,\n
          \     uint64_t dstOff, void* dstMhandle, uint32_t rank, void** request)"
        type: ncclResult_t
      - name: "(*iputSignal)(void* collComm, uint64_t srcOff, void* srcMhandle,\n
          \     size_t size, uint64_t dstOff, void* dstMhandle,\n      uint32_t rank,
          uint64_t signalOff, void *signalMhandle,\n      uint64_t signalValue, uint32_t
          signalOp, void** request)"
        type: ncclResult_t
      - name: (*test)(void* collComm, void* request, int* done)
        type: ncclResult_t
      - name: (*ginProgress)(void* collComm)
        type: ncclResult_t
      - name: (*queryLastError)(void* ginCtx, bool *hasError)
        type: ncclResult_t
      - name: (*finalize)(void* ctx)
        type: ncclResult_t
      item_type: struct
      name: ncclGin_v11_t
      pos:
        line_end: 57
        line_start: 9
        source_file: /src/nccl/src/include/plugin/gin/gin_v11.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/net/net_v11.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAX_DEVS_PER_NIC_V11
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/src/include/plugin/net/net_v11.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_NET_TRAFFIC_CLASS_UNDEF
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/include/plugin/net/net_v11.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_NET_ATTR_UNDEF
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/src/include/plugin/net/net_v11.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_NET_ATTR_INIT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/include/plugin/net/net_v11.h
      type_or_value: "{ \\\n  { NCCL_NET_ATTR_UNDEF, NCCL_NET_ATTR_UNDEF, NCCL_NET_ATTR_UNDEF,
        NCCL_NET_ATTR_UNDEF }, "
    structs:
    - fields:
      - name: ndevs
        type: int
      - name: devs[NCCL_NET_MAX_DEVS_PER_NIC_V11]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v11_t
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/nccl/src/include/plugin/net/net_v11.h
    - fields:
      - name: trafficClass
        type: int
      item_type: struct
      name: ncclNetCommConfig_v11_t
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/nccl/src/include/plugin/net/net_v11.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_v11_t
      - name: maxP2pBytes
        type: size_t
      - name: maxCollBytes
        type: size_t
      - name: maxMultiRequestSize
        type: int
      item_type: struct
      name: ncclNetProperties_v11_t
      pos:
        line_end: 43
        line_start: 24
        source_file: /src/nccl/src/include/plugin/net/net_v11.h
    - fields:
      - name: sendCommAttr
        type: ncclNetCommAttr_v11_t
      - name: recvCommAttr
        type: ncclNetCommAttr_v11_t
      - name: op
        type: uint32_t
      - name: algo
        type: uint32_t
      - name: proto
        type: uint32_t
      item_type: struct
      name: ncclNetAttr_v11_t
      pos:
        line_end: 68
        line_start: 62
        source_file: /src/nccl/src/include/plugin/net/net_v11.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** ctx, uint64_t commId, ncclNetCommConfig_v11_t* config,
          ncclDebugLogger_t logFunction, ncclProfilerCallback_t profFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v11_t* props)
        type: ncclResult_t
      - name: (*listen)(void* ctx, int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* ctx, int dev, void* handle, void** sendComm, ncclNetDeviceHandle_v11_t**
          sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v11_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_v11_t* props)
        type: ncclResult_t
      - name: (*finalize)(void* ctx)
        type: ncclResult_t
      - name: (*setNetAttr)(void* ctx, ncclNetAttr_v11_t* netAttr)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v11_t
      pos:
        line_end: 131
        line_start: 70
        source_file: /src/nccl/src/include/plugin/net/net_v11.h
    - fields:
      - name: '* mhandle'
        type: void
      - name: '* address'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: ncclNetSGE_v11_t
      pos:
        line_end: 137
        line_start: 133
        source_file: /src/nccl/src/include/plugin/net/net_v11.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** ctx, uint64_t commId, ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v11_t* props)
        type: ncclResult_t
      - name: (*listen)(void* ctx, 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_v11_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_v11_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_v11_t* props)
        type: ncclResult_t
      - name: (*finalize)(void* ctx)
        type: ncclResult_t
      item_type: struct
      name: ncclCollNet_v11_t
      pos:
        line_end: 189
        line_start: 139
        source_file: /src/nccl/src/include/plugin/net/net_v11.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/net/net_v9.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ndevs
        type: int
      - name: devs[NCCL_NET_MAX_DEVS_PER_NIC_V11]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v9_t
      pos:
        line_end: 13
        line_start: 10
        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: 33
        line_start: 15
        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: 92
        line_start: 35
        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: 98
        line_start: 94
        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: 148
        line_start: 100
        source_file: /src/nccl/src/include/plugin/net/net_v9.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/net/net_v12.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAX_DEVS_PER_NIC_V12
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/src/include/plugin/net/net_v12.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_NET_TRAFFIC_CLASS_UNDEF
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/include/plugin/net/net_v12.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_NET_ATTR_UNDEF
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/include/plugin/net/net_v12.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_NET_ID_UNDEF
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/src/include/plugin/net/net_v12.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_NET_ATTR_INIT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/nccl/src/include/plugin/net/net_v12.h
      type_or_value: "{ \\\n  { NCCL_NET_ATTR_UNDEF, NCCL_NET_ATTR_UNDEF, NCCL_NET_ATTR_UNDEF,
        NCCL_NET_ATTR_UNDEF }, "
    structs:
    - fields:
      - name: ndevs
        type: int
      - name: devs[NCCL_NET_MAX_DEVS_PER_NIC_V12]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v12_t
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/nccl/src/include/plugin/net/net_v12.h
    - fields:
      - name: trafficClass
        type: int
      item_type: struct
      name: ncclNetCommConfig_v12_t
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/nccl/src/include/plugin/net/net_v12.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_v12_t
      - name: maxP2pBytes
        type: size_t
      - name: maxCollBytes
        type: size_t
      - name: maxMultiRequestSize
        type: int
      - name: railId
        type: int16_t
      - name: planeId
        type: int16_t
      item_type: struct
      name: ncclNetProperties_v12_t
      pos:
        line_end: 45
        line_start: 24
        source_file: /src/nccl/src/include/plugin/net/net_v12.h
    - fields:
      - name: sendCommAttr
        type: ncclNetCommAttr_v12_t
      - name: recvCommAttr
        type: ncclNetCommAttr_v12_t
      - name: op
        type: uint32_t
      - name: algo
        type: uint32_t
      - name: proto
        type: uint32_t
      item_type: struct
      name: ncclNetAttr_v12_t
      pos:
        line_end: 72
        line_start: 66
        source_file: /src/nccl/src/include/plugin/net/net_v12.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** ctx, uint64_t commId, ncclNetCommConfig_v12_t* config,
          ncclDebugLogger_t logFunction, ncclProfilerCallback_t profFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v12_t* props)
        type: ncclResult_t
      - name: (*listen)(void* ctx, int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* ctx, int dev, void* handle, void** sendComm, ncclNetDeviceHandle_v12_t**
          sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v12_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_v12_t* props)
        type: ncclResult_t
      - name: (*finalize)(void* ctx)
        type: ncclResult_t
      - name: (*setNetAttr)(void* ctx, ncclNetAttr_v12_t* netAttr)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v12_t
      pos:
        line_end: 135
        line_start: 74
        source_file: /src/nccl/src/include/plugin/net/net_v12.h
    - fields:
      - name: '* mhandle'
        type: void
      - name: '* address'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: ncclNetSGE_v12_t
      pos:
        line_end: 141
        line_start: 137
        source_file: /src/nccl/src/include/plugin/net/net_v12.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** ctx, uint64_t commId, ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v12_t* props)
        type: ncclResult_t
      - name: (*listen)(void* ctx, 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_v12_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_v12_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_v12_t* props)
        type: ncclResult_t
      - name: (*finalize)(void* ctx)
        type: ncclResult_t
      item_type: struct
      name: ncclCollNet_v12_t
      pos:
        line_end: 193
        line_start: 143
        source_file: /src/nccl/src/include/plugin/net/net_v12.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: 23
        line_start: 10
        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: 78
        line_start: 25
        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: 118
        line_start: 80
        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: 24
        line_start: 10
        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: 79
        line_start: 26
        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: 85
        line_start: 81
        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: 132
        line_start: 87
        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: 11
        line_start: 10
        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: 24
        line_start: 13
        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: 71
        line_start: 26
        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: 111
        line_start: 73
        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_TRAFFIC_CLASS_UNDEF
      pos:
        line_end: 16
        line_start: 15
        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_V11]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v10_t
      pos:
        line_end: 13
        line_start: 10
        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: 20
        line_start: 17
        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: 41
        line_start: 23
        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: 100
        line_start: 43
        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: 106
        line_start: 102
        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: 156
        line_start: 108
        source_file: /src/nccl/src/include/plugin/net/net_v10.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/profiler/profiler_v6.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint64_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v6_t
      pos:
        line_end: 121
        line_start: 13
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v6.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, uint64_t commId, int* eActivationMask, const
          char* commName, int nNodes, int nranks, int rank, ncclDebugLogger_t logfn)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v6_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v6_t eState,
          ncclProfilerEventStateArgs_v6_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v6_t
      pos:
        line_end: 144
        line_start: 127
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v6.h
    typedefs:
    - item_type: typedef
      name: ncclProfilerEventStateArgs_v6_t
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v6.h
      type: ncclProfilerEventStateArgs_v5_t
    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: 58
        line_start: 10
        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: 105
        line_start: 71
        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: 69
        line_start: 60
        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: 63
        line_start: 10
        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: 110
        line_start: 76
        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: 74
        line_start: 65
        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: 11
        line_start: 10
        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: 30
        line_start: 21
        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: 61
        line_start: 10
        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: 121
        line_start: 81
        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: 79
        line_start: 63
        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: 11
        line_start: 10
        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: 32
        line_start: 21
        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_v5.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint64_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v5_t
      pos:
        line_end: 89
        line_start: 10
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v5.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, uint64_t commId, int* eActivationMask, const
          char* commName, int nNodes, int nranks, int rank, ncclDebugLogger_t logfn)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v5_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v5_t eState,
          ncclProfilerEventStateArgs_v5_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v5_t
      pos:
        line_end: 149
        line_start: 109
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v5.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_v5_t
      pos:
        line_end: 107
        line_start: 91
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v5.h
- 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: 55
        line_start: 10
        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: 102
        line_start: 68
        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: 66
        line_start: 57
        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/env/env_v1.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(uint8_t ncclMajor, uint8_t ncclMinor, uint8_t ncclPatch, const
          char* suffix)
        type: ncclResult_t
      - name: (*finalize)(void)
        type: ncclResult_t
      - name: '* (*getEnv)(const char* name)'
        type: char
      item_type: struct
      name: ncclEnv_v1_t
      pos:
        line_end: 33
        line_start: 12
        source_file: /src/nccl/src/include/plugin/env/env_v1.h
    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: 53
        line_start: 12
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v3.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/tuner/tuner_v6.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: "(*init)(void** ctx, uint64_t commId, size_t nRanks, size_t nNodes,
          ncclDebugLogger_t logFunction,\n                      ncclNvlDomainInfo_v6_t*
          nvlDomainInfo, ncclTunerConstants_v6_t* constants)"
        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: (*finalize)(void* context)
        type: ncclResult_t
      - name: "(*getChunkSize)(void* context, ncclFunc_t collType, size_t nBytes,\n
          \                              int algo, int proto, int nChannels, size_t*
          chunkSize)"
        type: ncclResult_t
      item_type: struct
      name: ncclTuner_v6_t
      pos:
        line_end: 81
        line_start: 18
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v6.h
    typedefs:
    - item_type: typedef
      name: ncclTunerConstants_v6_t
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v6.h
      type: ncclTunerConstants_v5_t
    - item_type: typedef
      name: ncclNvlDomainInfo_v6_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v6.h
      type: ncclNvlDomainInfo_v5_t
    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: 54
        line_start: 12
        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: 51
        line_start: 12
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v2.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/tuner/tuner_v5.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NUM_ALGORITHMS_V5
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v5.h
      type_or_value: 7 // Tree/Ring/CollNet*/PAT
    - item_type: preproc_def
      name: NCCL_NUM_PROTOCOLS_V5
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v5.h
      type_or_value: 3 // Simple/LL/LL128
    - item_type: preproc_def
      name: NCCL_NUM_HW_LINKS_V5
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v5.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_NUM_COMPCAPS_V5
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v5.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_NUM_TUNING_SCALES_V5
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v5.h
      type_or_value: '3'
    structs:
    - fields:
      - name: nNvlDomains
        type: int
      - name: minRanksPerNvlDomain
        type: int
      - name: maxRanksPerNvlDomain
        type: int
      item_type: struct
      name: ncclNvlDomainInfo_v5_t
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v5.h
    - fields:
      - name: baseLatencies [NCCL_NUM_ALGORITHMS_V5][NCCL_NUM_PROTOCOLS_V5]
        type: double
      - name: hwLatencies [NCCL_NUM_HW_LINKS_V5][NCCL_NUM_ALGORITHMS_V5][NCCL_NUM_PROTOCOLS_V5]
        type: double
      - name: llMaxBws [NCCL_NUM_COMPCAPS_V5][NCCL_NUM_TUNING_SCALES_V5]
        type: double
      - name: perChMaxRingLL128Bws [NCCL_NUM_COMPCAPS_V5][NCCL_NUM_TUNING_SCALES_V5]
        type: double
      - name: perChMaxTreeLL128Bws [NCCL_NUM_COMPCAPS_V5][NCCL_NUM_TUNING_SCALES_V5]
        type: double
      - name: perChMaxTreeBws [NCCL_NUM_COMPCAPS_V5][NCCL_NUM_TUNING_SCALES_V5]
        type: double
      - name: perChMaxNVLSTreeBws [NCCL_NUM_COMPCAPS_V5][NCCL_NUM_TUNING_SCALES_V5]
        type: double
      item_type: struct
      name: ncclTunerConstants_v5_t
      pos:
        line_end: 35
        line_start: 24
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v5.h
    - fields:
      - name: '* name'
        type: char
      - name: "(*init)(void** ctx, uint64_t commId, size_t nRanks, size_t nNodes,
          ncclDebugLogger_t logFunction,\n                      ncclNvlDomainInfo_v5_t*
          nvlDomainInfo, ncclTunerConstants_v5_t* constants)"
        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: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclTuner_v5_t
      pos:
        line_end: 85
        line_start: 38
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v5.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
  types:
    enum:
    - enumerators:
      - name: MLX5DV_CONTEXT_MASK_CQE_COMPRESION
        value: 1 << 0
      - name: MLX5DV_CONTEXT_MASK_SWP
        value: 1 << 1
      - name: MLX5DV_CONTEXT_MASK_STRIDING_RQ
        value: 1 << 2
      - name: MLX5DV_CONTEXT_MASK_TUNNEL_OFFLOADS
        value: 1 << 3
      - name: MLX5DV_CONTEXT_MASK_DYN_BFREGS
        value: 1 << 4
      - name: MLX5DV_CONTEXT_MASK_CLOCK_INFO_UPDATE
        value: 1 << 5
      - name: MLX5DV_CONTEXT_MASK_FLOW_ACTION_FLAGS
        value: 1 << 6
      - name: MLX5DV_CONTEXT_MASK_DC_ODP_CAPS
        value: 1 << 7
      - name: MLX5DV_CONTEXT_MASK_HCA_CORE_CLOCK
        value: 1 << 8
      - name: MLX5DV_CONTEXT_MASK_NUM_LAG_PORTS
        value: 1 << 9
      - name: MLX5DV_CONTEXT_MASK_DCI_STREAMS
        value: 1 << 11
      - name: MLX5DV_CONTEXT_MASK_CRYPTO_OFFLOAD
        value: 1 << 13
      - name: MLX5DV_CONTEXT_MASK_REG_C0
        value: 1 << 15
      - name: MLX5DV_CONTEXT_MASK_SIGNATURE_OFFLOAD
        value: 1 << 10
      - name: MLX5DV_CONTEXT_MASK_OOO_RECV_WRS
        value: 1 << 16
      - name: MLX5DV_CONTEXT_MASK_WR_MEMCPY_LENGTH
        value: 1 << 12
      - name: MLX5DV_CONTEXT_MASK_MAX_DC_RD_ATOM
        value: 1 << 14
      item_type: enum
      name: mlx5dv_context_comp_mask
      pos:
        line_end: 66
        line_start: 48
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - enumerators:
      - name: MLX5DV_REG_DMABUF_ACCESS_DATA_DIRECT
        value: (1<<0)
      item_type: enum
      name: mlx5dv_reg_dmabuf_access
      pos:
        line_end: 70
        line_start: 68
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - enumerators:
      - name: MLX5DV_QP_CREATE_TUNNEL_OFFLOADS
        value: 1 << 0
      - name: MLX5DV_QP_CREATE_DISABLE_SCATTER_TO_CQE
        value: 1 << 3
      - name: MLX5DV_QP_CREATE_ALLOW_SCATTER_TO_CQE
        value: 1 << 4
      - name: MLX5DV_QP_CREATE_TIR_ALLOW_SELF_LOOPBACK_UC
        value: 1 << 1
      - name: MLX5DV_QP_CREATE_TIR_ALLOW_SELF_LOOPBACK_MC
        value: 1 << 2
      - name: MLX5DV_QP_CREATE_PACKET_BASED_CREDIT_MODE
        value: 1 << 5
      - name: MLX5DV_QP_CREATE_SIG_PIPELINING
        value: 1 << 6
      - name: MLX5DV_QP_CREATE_OOO_DP
        value: 1 << 7
      item_type: enum
      name: mlx5dv_qp_create_flags
      pos:
        line_end: 164
        line_start: 155
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - enumerators:
      - name: MLX5DV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS
        value: 1 << 0
      - name: MLX5DV_QP_INIT_ATTR_MASK_DC
        value: 1 << 1
      - name: MLX5DV_QP_INIT_ATTR_MASK_SEND_OPS_FLAGS
        value: 1 << 2
      - name: MLX5DV_QP_INIT_ATTR_MASK_DCI_STREAMS
        value: 1 << 3
      item_type: enum
      name: mlx5dv_qp_init_attr_mask
      pos:
        line_end: 171
        line_start: 166
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - enumerators:
      - name: MLX5DV_DCTYPE_DCT
        value: '1'
      - name: MLX5DV_DCTYPE_DCI
      item_type: enum
      name: mlx5dv_dc_type
      pos:
        line_end: 176
        line_start: 173
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    preproc_defs: []
    structs:
    - fields:
      - name: max_num
        type: uint32_t
      - name: supported_format
        type: uint32_t
      item_type: struct
      name: mlx5dv_cqe_comp_caps
      pos:
        line_end: 75
        line_start: 72
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - fields:
      - name: sw_parsing_offloads
        type: uint32_t
      - name: supported_qpts
        type: uint32_t
      item_type: struct
      name: mlx5dv_sw_parsing_caps
      pos:
        line_end: 80
        line_start: 77
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - fields:
      - name: min_single_stride_log_num_of_bytes
        type: uint32_t
      - name: max_single_stride_log_num_of_bytes
        type: uint32_t
      - name: min_single_wqe_log_num_of_strides
        type: uint32_t
      - name: max_single_wqe_log_num_of_strides
        type: uint32_t
      - name: supported_qpts
        type: uint32_t
      item_type: struct
      name: mlx5dv_striding_rq_caps
      pos:
        line_end: 88
        line_start: 82
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - fields:
      - name: max_log_num_concurent
        type: uint8_t
      - name: max_log_num_errored
        type: uint8_t
      item_type: struct
      name: mlx5dv_dci_streams_caps
      pos:
        line_end: 93
        line_start: 90
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - fields:
      - name: block_size
        type: uint64_t
      - name: block_prot
        type: uint32_t
      - name: t10dif_bg
        type: uint16_t
      - name: crc_type
        type: uint16_t
      item_type: struct
      name: mlx5dv_sig_caps
      pos:
        line_end: 100
        line_start: 95
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - fields:
      - name: failed_selftests
        type: uint16_t
      - name: crypto_engines
        type: uint8_t
      - name: wrapped_import_method
        type: uint8_t
      - name: log_max_num_deks
        type: uint8_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: mlx5dv_crypto_caps
      pos:
        line_end: 113
        line_start: 102
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - fields:
      - name: max_rc
        type: uint32_t
      - name: max_xrc
        type: uint32_t
      - name: max_dct
        type: uint32_t
      - name: max_ud
        type: uint32_t
      - name: max_uc
        type: uint32_t
      item_type: struct
      name: mlx5dv_ooo_recv_wrs_caps
      pos:
        line_end: 121
        line_start: 115
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - fields:
      - name: value
        type: uint32_t
      - name: mask
        type: uint32_t
      item_type: struct
      name: mlx5dv_reg
      pos:
        line_end: 126
        line_start: 123
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - fields:
      - name: version
        type: uint8_t
      - name: flags
        type: uint64_t
      - name: comp_mask
        type: uint64_t
      - name: cqe_comp_caps
        type: struct mlx5dv_cqe_comp_caps
      - name: sw_parsing_caps
        type: struct mlx5dv_sw_parsing_caps
      - name: striding_rq_caps
        type: struct mlx5dv_striding_rq_caps
      - name: tunnel_offloads_caps
        type: uint32_t
      - name: max_dynamic_bfregs
        type: uint32_t
      - name: max_clock_info_update_nsec
        type: uint64_t
      - name: flow_action_flags
        type: uint32_t
      - name: dc_odp_caps
        type: uint32_t
      - name: '*hca_core_clock'
        type: void
      - name: num_lag_ports
        type: uint8_t
      - name: sig_caps
        type: struct mlx5dv_sig_caps
      - name: dci_streams_caps
        type: struct mlx5dv_dci_streams_caps
      - name: max_wr_memcpy_length
        type: size_t
      - name: crypto_caps
        type: struct mlx5dv_crypto_caps
      - name: max_dc_rd_atom
        type: uint64_t
      - name: max_dc_init_rd_atom
        type: uint64_t
      - name: reg_c0
        type: struct mlx5dv_reg
      - name: ooo_recv_wrs_caps
        type: struct mlx5dv_ooo_recv_wrs_caps
      item_type: struct
      name: mlx5dv_context
      pos:
        line_end: 153
        line_start: 131
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - fields:
      - name: log_num_concurent
        type: uint8_t
      - name: log_num_errored
        type: uint8_t
      item_type: struct
      name: mlx5dv_dci_streams
      pos:
        line_end: 181
        line_start: 178
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - fields:
      - name: dc_type
        type: enum mlx5dv_dc_type
      item_type: struct
      name: mlx5dv_dc_init_attr
      pos:
        line_end: 188
        line_start: 182
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    - fields:
      - name: comp_mask
        type: uint64_t
      - name: create_flags
        type: uint32_t
      - name: dc_init_attr
        type: struct mlx5dv_dc_init_attr
      - name: send_ops_flags
        type: uint64_t
      item_type: struct
      name: mlx5dv_qp_init_attr
      pos:
        line_end: 195
        line_start: 190
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    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: 26
        line_start: 23
        source_file: /src/nccl/src/include/mlx5/mlx5dvwrap.h
    preproc_defs: []
    structs: []
    typedefs: []
    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
      - name: (*mlx5dv_internal_query_device)(struct ibv_context *ctx_in, struct mlx5dv_context
          *attrs_out)
        type: int
      - name: '*(*mlx5dv_internal_create_qp)(struct ibv_context *context, struct ibv_qp_init_attr_ex
          *qp_attr, struct mlx5dv_qp_init_attr *mlx5_qp_attr)'
        type: struct ibv_qp
      item_type: struct
      name: ncclMlx5dvSymbols
      pos:
        line_end: 26
        line_start: 19
        source_file: /src/nccl/src/include/mlx5/mlx5dvsymbols.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/gin/gin_host_win_stub.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GIN_MAX_CONNECTIONS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/gin/gin_host_win_stub.h
      type_or_value: '4'
    structs:
    - fields:
      - name: nSignals
        type: int
      - name: nCounters
        type: int
      - name: nContexts
        type: int
      - name: queueDepth
        type: int
      - name: trafficClass
        type: int
      item_type: struct
      name: ncclGinConfig_t
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/nccl/src/include/gin/gin_host_win_stub.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** ctx, uint64_t commId, ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_t* props)
        type: ncclResult_t
      - name: (*listen)(void* ctx, int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* ctx, void* handles[], int nranks, int rank, void* listenComm,
          void** collComm)
        type: ncclResult_t
      - name: (*createContext)(void* collComm, ncclGinConfig_t* config, void** ginCtx,
          ncclNetDeviceHandle_t** devHandle)
        type: ncclResult_t
      - name: (*regMrSym)(void* collComm, void* data, size_t size, int type, uint64_t
          mrFlags, void** mhandle, void** ginHandle)
        type: ncclResult_t
      - name: (*regMrSymDmaBuf)(void* collComm, void* data, size_t size, int type,
          uint64_t offset, int fd, uint64_t mrFlags, void** mhandle, void** ginHandle)
        type: ncclResult_t
      - name: (*deregMrSym)(void* collComm, void* mhandle)
        type: ncclResult_t
      - name: (*destroyContext)(void* ginCtx)
        type: ncclResult_t
      - name: (*closeColl)(void* collComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: (*iput)(void* ginCtx, int context, uint64_t srcOff, void* srcMhandle,
          size_t size, uint64_t dstOff, void* dstMhandle, uint32_t rank, void** request)
        type: ncclResult_t
      - name: (*iputSignal)(void* ginCtx, int context, uint64_t srcOff, void* srcMhandle,
          size_t size, uint64_t dstOff, void* dstMhandle, uint32_t rank, uint64_t
          signalOff, void* signalMhandle, uint64_t signalValue, uint32_t signalOp,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* collComm, void* request, int* done)
        type: ncclResult_t
      - name: (*ginProgress)(void* ginCtx)
        type: ncclResult_t
      - name: (*queryLastError)(void* ginCtx, bool* hasError)
        type: ncclResult_t
      - name: (*finalize)(void* ctx)
        type: ncclResult_t
      item_type: struct
      name: ncclGin
      pos:
        line_end: 63
        line_start: 42
        source_file: /src/nccl/src/include/gin/gin_host_win_stub.h
    - fields:
      - name: contextCount
        type: int
      - name: '* ginCtx[NCCL_GIN_MAX_CONNECTIONS]'
        type: void
      - name: '* devHandles[NCCL_GIN_MAX_CONNECTIONS]'
        type: ncclNetDeviceHandle_t
      - name: '* next'
        type: struct ncclGinStateDevComm
      item_type: struct
      name: ncclGinStateDevComm
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/nccl/src/include/gin/gin_host_win_stub.h
    - fields:
      - name: '* ncclGin'
        type: ncclGin_t
      - name: '* ginInstance'
        type: void
      - name: connected
        type: bool
      - name: ginType
        type: ncclGinType_t
      - name: ginCommCount
        type: int
      - name: '* ginComms[NCCL_GIN_MAX_CONNECTIONS]'
        type: void
      - name: ginProps[NCCL_GIN_MAX_CONNECTIONS]
        type: ncclNetProperties_t
      - name: needsProxyProgress
        type: int
      - name: ginProgress
        type: int
      - name: thread
        type: std::thread
      - name: mutex
        type: std::mutex
      - name: cond
        type: std::condition_variable
      - name: asyncResult
        type: ncclResult_t
      - name: ginVersion
        type: int
      - name: '* devComms'
        type: struct ncclGinStateDevComm
      - name: ginConnectionType
        type: ncclGinConnectionType_t
      item_type: struct
      name: ncclGinState
      pos:
        line_end: 95
        line_start: 77
        source_file: /src/nccl/src/include/gin/gin_host_win_stub.h
    typedefs:
    - item_type: typedef
      name: '* ncclGinWindow_t'
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/nccl/src/include/gin/gin_host_win_stub.h
      type: void
    - item_type: typedef
      name: ncclGin_t
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/nccl/src/include/gin/gin_host_win_stub.h
      type: ncclGinHostPlugin
    - item_type: typedef
      name: ncclGin_t
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/nccl/src/include/gin/gin_host_win_stub.h
      type: ncclGin
    union: []
- function_names: []
  source_file: /src/nccl/src/include/gin/gin_host_proxy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/gin/gin_host.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: contextCount
        type: int
      - name: '* ginCtx[NCCL_GIN_MAX_CONNECTIONS]'
        type: void
      - name: '* devHandles[NCCL_GIN_MAX_CONNECTIONS]'
        type: ncclNetDeviceHandle_t
      - name: '* next'
        type: struct ncclGinStateDevComm
      item_type: struct
      name: ncclGinStateDevComm
      pos:
        line_end: 23
        line_start: 18
        source_file: /src/nccl/src/include/gin/gin_host.h
    - fields:
      - name: '* ncclGin'
        type: ncclGin_t
      - name: '* ginInstance'
        type: void
      - name: connected
        type: bool
      - name: ginType
        type: ncclGinType_t
      - name: ginCommCount
        type: int
      - name: '* ginComms[NCCL_GIN_MAX_CONNECTIONS]'
        type: void
      - name: ginProps[NCCL_GIN_MAX_CONNECTIONS]
        type: ncclNetProperties_t
      - name: needsProxyProgress
        type: int
      - name: ginProgress
        type: int
      - name: thread
        type: std::thread
      - name: mutex
        type: std::mutex
      - name: cond
        type: std::condition_variable
      - name: asyncResult
        type: ncclResult_t
      - name: ginVersion
        type: int
      - name: '* devComms'
        type: struct ncclGinStateDevComm
      - name: ginConnectionType
        type: ncclGinConnectionType_t
      item_type: struct
      name: ncclGinState
      pos:
        line_end: 43
        line_start: 25
        source_file: /src/nccl/src/include/gin/gin_host.h
    typedefs: []
    union: []
- function_names:
  - resolve
  - validate
  - toString
  - resolve
  - validate
  - toString
  - resolve
  - validate
  - toString
  - validate
  - resolve
  - NCCL_PARAM_IF_CONSTEXPR
  - toString
  - nccl::param::parser::defaultResolve
  - nccl::param::parser::defaultValidate
  - nccl::param::parser::defaultToString
  - nccl::param::parser::boundedValidate
  - nccl::param::parser::defaultResolve
  - nccl::param::parser::defaultValidate
  - nccl::param::parser::defaultToString
  - nccl::param::parser::boundedValidate
  - nccl::param::parser::defaultResolve
  - nccl::param::parser::defaultValidate
  - nccl::param::parser::defaultToString
  - nccl::param::parser::boundedValidate
  - nccl::param::parser::defaultResolve
  - nccl::param::parser::defaultValidate
  - nccl::param::parser::defaultToString
  - nccl::param::parser::boundedValidate
  - nccl::param::parser::defaultResolve
  - nccl::param::parser::defaultValidate
  - nccl::param::parser::defaultToString
  - nccl::param::parser::boundedValidate
  - nccl::param::parser::defaultResolve
  - nccl::param::parser::defaultValidate
  - nccl::param::parser::defaultToString
  - nccl::param::parser::boundedValidate
  - nccl::param::parser::defaultResolve
  - nccl::param::parser::defaultValidate
  - nccl::param::parser::defaultToString
  - nccl::param::parser::boundedValidate
  - nccl::param::parser::defaultResolve
  - nccl::param::parser::defaultValidate
  - nccl::param::parser::defaultToString
  - nccl::param::parser::boundedValidate
  - ncclParamDefault
  - ncclParamBounded
  - ncclParamBounded
  source_file: /src/nccl/src/include/param/parser_default.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* desc'
        type: char
      item_type: struct
      name: ncclParamParserDefault
      pos:
        line_end: 32
        line_start: 22
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields:
      - name: '* desc'
        type: char
      item_type: struct
      name: ncclParamParserDefault<bool>
      pos:
        line_end: 53
        line_start: 36
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields:
      - name: '* desc'
        type: char
      item_type: struct
      name: ncclParamParserDefault<const char*>
      pos:
        line_end: 72
        line_start: 59
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields:
      - name: ncclSuccess
        type: return
      item_type: struct
      name: ncclIntegerParser
      pos:
        line_end: 93
        line_start: 76
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields: []
      item_type: struct
      name: ncclParamParserDefault<int8_t>
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields: []
      item_type: struct
      name: ncclParamParserDefault<int16_t>
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields: []
      item_type: struct
      name: ncclParamParserDefault<int32_t>
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields: []
      item_type: struct
      name: ncclParamParserDefault<int64_t>
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields: []
      item_type: struct
      name: ncclParamParserDefault<uint8_t>
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields: []
      item_type: struct
      name: ncclParamParserDefault<uint16_t>
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields: []
      item_type: struct
      name: ncclParamParserDefault<uint32_t>
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields: []
      item_type: struct
      name: ncclParamParserDefault<uint64_t>
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields:
      - name: lower
        type: T
      - name: upper
        type: T
      item_type: struct
      name: boundedCtx
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields:
      - name: lower
        type: T
      - name: upper
        type: T
      item_type: struct
      name: boundedCtx
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields:
      - name: lower
        type: T
      - name: upper
        type: T
      item_type: struct
      name: boundedCtx
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields:
      - name: lower
        type: T
      - name: upper
        type: T
      item_type: struct
      name: boundedCtx
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields:
      - name: lower
        type: T
      - name: upper
        type: T
      item_type: struct
      name: boundedCtx
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields:
      - name: lower
        type: T
      - name: upper
        type: T
      item_type: struct
      name: boundedCtx
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields:
      - name: lower
        type: T
      - name: upper
        type: T
      item_type: struct
      name: boundedCtx
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/nccl/src/include/param/parser_default.h
    - fields:
      - name: lower
        type: T
      - name: upper
        type: T
      item_type: struct
      name: boundedCtx
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/nccl/src/include/param/parser_default.h
    typedefs: []
    union: []
- function_names:
  - DEFINE_NCCL_PARAM
  - USE_NCCL_PARAM
  - ~ncclParam() override
  - ncclParam
  - '& operator=(const ncclParam&)'
  - '& operator=(ncclParam&&)'
  - operator()()
  - getRawData
  - toString
  - dump
  - ensureLoaded
  - loadValue
  - '* ncclParam<const char*>::operator()()'
  - ncclParam<const char*>::loadValue
  - ncclParam<const char*>::getRawData
  source_file: /src/nccl/src/include/param/param.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: info
        type: ncclParamInfo_t
      - name: defaultValue
        type: T
      - name: value
        type: T
      - name: cstrData
        type: std::string
      - name: '* srcStr'
        type: char
      - name: mtx
        type: std::mutex
      - name: loaded
        type: std::atomic<bool>
      - name: parser
        type: ncclParamParser<T>
      item_type: struct
      name: ncclParam
      pos:
        line_end: 168
        line_start: 52
        source_file: /src/nccl/src/include/param/param.h
    typedefs: []
    union: []
- function_names:
  - NCCL_PARAM_COMPILER_EXPECT
  - NCCL_PARAM_COMPILER_EXPECT
  - ncclParamTypeIdOf
  - nccl::param::utils::flagsStr
  - nccl::param::utils::srcDefault
  - nccl::param::utils::srcEnvPlugin
  - nccl::param::utils::stringFormat
  - nccl::param::utils::iequals
  - nccl::param::utils::trim
  - nccl::param::utils::split
  - nccl::param::utils::flagsStr
  - nccl::param::utils::srcDefault
  - nccl::param::utils::srcEnvPlugin
  - nccl::param::utils::stringFormat
  - nccl::param::utils::iequals
  - nccl::param::utils::trim
  - nccl::param::utils::split
  - nccl::param::utils::flagsStr
  - nccl::param::utils::srcDefault
  - nccl::param::utils::srcEnvPlugin
  - nccl::param::utils::stringFormat
  - nccl::param::utils::iequals
  - nccl::param::utils::trim
  - nccl::param::utils::split
  - nccl::param::utils::flagsStr
  - nccl::param::utils::srcDefault
  - nccl::param::utils::srcEnvPlugin
  - nccl::param::utils::stringFormat
  - nccl::param::utils::iequals
  - nccl::param::utils::trim
  - nccl::param::utils::split
  - nccl::param::utils::flagsStr
  - nccl::param::utils::srcDefault
  - nccl::param::utils::srcEnvPlugin
  - nccl::param::utils::stringFormat
  - nccl::param::utils::iequals
  - nccl::param::utils::trim
  - nccl::param::utils::split
  - nccl::param::utils::flagsStr
  - nccl::param::utils::srcDefault
  - nccl::param::utils::srcEnvPlugin
  - nccl::param::utils::stringFormat
  - nccl::param::utils::iequals
  - nccl::param::utils::trim
  - nccl::param::utils::split
  - nccl::param::utils::flagsStr
  - nccl::param::utils::srcDefault
  - nccl::param::utils::srcEnvPlugin
  - nccl::param::utils::stringFormat
  - nccl::param::utils::iequals
  - nccl::param::utils::trim
  - nccl::param::utils::split
  - nccl::param::utils::flagsStr
  - nccl::param::utils::srcDefault
  - nccl::param::utils::srcEnvPlugin
  - nccl::param::utils::stringFormat
  - nccl::param::utils::iequals
  - nccl::param::utils::trim
  - nccl::param::utils::split
  source_file: /src/nccl/src/include/param/utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PARAM_IF_CONSTEXPR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/param/utils.h
      type_or_value: constexpr
    - item_type: preproc_def
      name: NCCL_PARAM_COMPILER_EXPORT_SYMBOL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/nccl/src/include/param/utils.h
      type_or_value: __attribute__((visibility("default")))
    structs:
    - fields:
      - name: flag
        type: uint64_t
      - name: '* name'
        type: char
      item_type: struct
      name: "entries[] = {\n    {NCCL_PARAM_FLAG_DEPRECATED, \"Deprecated\"},\n    {NCCL_PARAM_FLAG_CACHED,
        \"Cached\"},\n    {NCCL_PARAM_FLAG_UNUSED, \"Unused\"},\n  }"
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nccl/src/include/param/utils.h
    - fields:
      - name: flag
        type: uint64_t
      - name: '* name'
        type: char
      item_type: struct
      name: "entries[] = {\n    {NCCL_PARAM_FLAG_DEPRECATED, \"Deprecated\"},\n    {NCCL_PARAM_FLAG_CACHED,
        \"Cached\"},\n    {NCCL_PARAM_FLAG_UNUSED, \"Unused\"},\n  }"
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nccl/src/include/param/utils.h
    - fields:
      - name: flag
        type: uint64_t
      - name: '* name'
        type: char
      item_type: struct
      name: "entries[] = {\n    {NCCL_PARAM_FLAG_DEPRECATED, \"Deprecated\"},\n    {NCCL_PARAM_FLAG_CACHED,
        \"Cached\"},\n    {NCCL_PARAM_FLAG_UNUSED, \"Unused\"},\n  }"
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nccl/src/include/param/utils.h
    - fields:
      - name: flag
        type: uint64_t
      - name: '* name'
        type: char
      item_type: struct
      name: "entries[] = {\n    {NCCL_PARAM_FLAG_DEPRECATED, \"Deprecated\"},\n    {NCCL_PARAM_FLAG_CACHED,
        \"Cached\"},\n    {NCCL_PARAM_FLAG_UNUSED, \"Unused\"},\n  }"
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nccl/src/include/param/utils.h
    - fields:
      - name: flag
        type: uint64_t
      - name: '* name'
        type: char
      item_type: struct
      name: "entries[] = {\n    {NCCL_PARAM_FLAG_DEPRECATED, \"Deprecated\"},\n    {NCCL_PARAM_FLAG_CACHED,
        \"Cached\"},\n    {NCCL_PARAM_FLAG_UNUSED, \"Unused\"},\n  }"
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nccl/src/include/param/utils.h
    - fields:
      - name: flag
        type: uint64_t
      - name: '* name'
        type: char
      item_type: struct
      name: "entries[] = {\n    {NCCL_PARAM_FLAG_DEPRECATED, \"Deprecated\"},\n    {NCCL_PARAM_FLAG_CACHED,
        \"Cached\"},\n    {NCCL_PARAM_FLAG_UNUSED, \"Unused\"},\n  }"
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nccl/src/include/param/utils.h
    - fields:
      - name: flag
        type: uint64_t
      - name: '* name'
        type: char
      item_type: struct
      name: "entries[] = {\n    {NCCL_PARAM_FLAG_DEPRECATED, \"Deprecated\"},\n    {NCCL_PARAM_FLAG_CACHED,
        \"Cached\"},\n    {NCCL_PARAM_FLAG_UNUSED, \"Unused\"},\n  }"
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nccl/src/include/param/utils.h
    - fields:
      - name: flag
        type: uint64_t
      - name: '* name'
        type: char
      item_type: struct
      name: "entries[] = {\n    {NCCL_PARAM_FLAG_DEPRECATED, \"Deprecated\"},\n    {NCCL_PARAM_FLAG_CACHED,
        \"Cached\"},\n    {NCCL_PARAM_FLAG_UNUSED, \"Unused\"},\n  }"
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nccl/src/include/param/utils.h
    typedefs: []
    union: []
- function_names:
  - nccl::param::parser::bitsetResolve
  - nccl::param::parser::bitsetValidate
  - nccl::param::parser::bitsetToString
  - nccl::param::parser::bitsetResolve
  - nccl::param::parser::bitsetValidate
  - nccl::param::parser::bitsetToString
  - nccl::param::parser::bitsetResolve
  - nccl::param::parser::bitsetValidate
  - nccl::param::parser::bitsetToString
  - nccl::param::parser::bitsetResolve
  - nccl::param::parser::bitsetValidate
  - nccl::param::parser::bitsetToString
  - nccl::param::parser::bitsetResolve
  - nccl::param::parser::bitsetValidate
  - nccl::param::parser::bitsetToString
  - nccl::param::parser::bitsetResolve
  - nccl::param::parser::bitsetValidate
  - nccl::param::parser::bitsetToString
  - nccl::param::parser::bitsetResolve
  - nccl::param::parser::bitsetValidate
  - nccl::param::parser::bitsetToString
  - nccl::param::parser::bitsetResolve
  - nccl::param::parser::bitsetValidate
  - nccl::param::parser::bitsetToString
  - ncclParamBitsetOf
  source_file: /src/nccl/src/include/param/parser_bitset.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: options
        type: ncclOptionSet<EnumT, N>
      - name: delimiter
        type: char
      item_type: struct
      name: bitsetCtx
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/nccl/src/include/param/parser_bitset.h
    - fields:
      - name: options
        type: ncclOptionSet<EnumT, N>
      - name: delimiter
        type: char
      item_type: struct
      name: bitsetCtx
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/nccl/src/include/param/parser_bitset.h
    - fields:
      - name: options
        type: ncclOptionSet<EnumT, N>
      - name: delimiter
        type: char
      item_type: struct
      name: bitsetCtx
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/nccl/src/include/param/parser_bitset.h
    - fields:
      - name: options
        type: ncclOptionSet<EnumT, N>
      - name: delimiter
        type: char
      item_type: struct
      name: bitsetCtx
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/nccl/src/include/param/parser_bitset.h
    - fields:
      - name: options
        type: ncclOptionSet<EnumT, N>
      - name: delimiter
        type: char
      item_type: struct
      name: bitsetCtx
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/nccl/src/include/param/parser_bitset.h
    - fields:
      - name: options
        type: ncclOptionSet<EnumT, N>
      - name: delimiter
        type: char
      item_type: struct
      name: bitsetCtx
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/nccl/src/include/param/parser_bitset.h
    - fields:
      - name: options
        type: ncclOptionSet<EnumT, N>
      - name: delimiter
        type: char
      item_type: struct
      name: bitsetCtx
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/nccl/src/include/param/parser_bitset.h
    - fields:
      - name: options
        type: ncclOptionSet<EnumT, N>
      - name: delimiter
        type: char
      item_type: struct
      name: bitsetCtx
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/nccl/src/include/param/parser_bitset.h
    typedefs: []
    union: []
- function_names:
  - nccl::param::parser::listOfResolve
  - nccl::param::parser::listOfValidate
  - nccl::param::parser::listOfToString
  - nccl::param::parser::listOfResolve
  - nccl::param::parser::listOfValidate
  - nccl::param::parser::listOfToString
  - nccl::param::parser::listOfResolve
  - nccl::param::parser::listOfValidate
  - nccl::param::parser::listOfToString
  - nccl::param::parser::listOfResolve
  - nccl::param::parser::listOfValidate
  - nccl::param::parser::listOfToString
  - nccl::param::parser::listOfResolve
  - nccl::param::parser::listOfValidate
  - nccl::param::parser::listOfToString
  - nccl::param::parser::listOfResolve
  - nccl::param::parser::listOfValidate
  - nccl::param::parser::listOfToString
  - nccl::param::parser::listOfResolve
  - nccl::param::parser::listOfValidate
  - nccl::param::parser::listOfToString
  - nccl::param::parser::listOfResolve
  - nccl::param::parser::listOfValidate
  - nccl::param::parser::listOfToString
  - ncclParamListOf
  source_file: /src/nccl/src/include/param/parser_list.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: delimiter
        type: char
      item_type: struct
      name: listOfCtx
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/param/parser_list.h
    - fields:
      - name: delimiter
        type: char
      item_type: struct
      name: listOfCtx
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/param/parser_list.h
    - fields:
      - name: delimiter
        type: char
      item_type: struct
      name: listOfCtx
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/param/parser_list.h
    - fields:
      - name: delimiter
        type: char
      item_type: struct
      name: listOfCtx
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/param/parser_list.h
    - fields:
      - name: delimiter
        type: char
      item_type: struct
      name: listOfCtx
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/param/parser_list.h
    - fields:
      - name: delimiter
        type: char
      item_type: struct
      name: listOfCtx
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/param/parser_list.h
    - fields:
      - name: delimiter
        type: char
      item_type: struct
      name: listOfCtx
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/param/parser_list.h
    - fields:
      - name: delimiter
        type: char
      item_type: struct
      name: listOfCtx
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/param/parser_list.h
    typedefs: []
    union: []
- function_names:
  - nccl::param::parser::oneOfResolve
  - nccl::param::parser::oneOfValidate
  - nccl::param::parser::oneOfToString
  - nccl::param::parser::oneOfResolve
  - nccl::param::parser::oneOfValidate
  - nccl::param::parser::oneOfToString
  - nccl::param::parser::oneOfResolve
  - nccl::param::parser::oneOfValidate
  - nccl::param::parser::oneOfToString
  - nccl::param::parser::oneOfResolve
  - nccl::param::parser::oneOfValidate
  - nccl::param::parser::oneOfToString
  - nccl::param::parser::oneOfResolve
  - nccl::param::parser::oneOfValidate
  - nccl::param::parser::oneOfToString
  - nccl::param::parser::oneOfResolve
  - nccl::param::parser::oneOfValidate
  - nccl::param::parser::oneOfToString
  - nccl::param::parser::oneOfResolve
  - nccl::param::parser::oneOfValidate
  - nccl::param::parser::oneOfToString
  - nccl::param::parser::oneOfResolve
  - nccl::param::parser::oneOfValidate
  - nccl::param::parser::oneOfToString
  - ncclParamOneOf
  source_file: /src/nccl/src/include/param/parser_enum.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~ncclParamInterface()
  source_file: /src/nccl/src/include/param/common.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: typeId
        type: ncclParamTypeId_t
      - name: flags
        type: uint64_t
      - name: '* typeStr'
        type: char
      - name: '* key'
        type: char
      - name: '* desc'
        type: char
      item_type: struct
      name: ncclParamInfo_t
      pos:
        line_end: 51
        line_start: 45
        source_file: /src/nccl/src/include/param/common.h
    - fields:
      - name: getRawData(void* out, int maxLen, int* len)
        type: ncclResult_t
      - name: toString()
        type: std::string
      - name: dump()
        type: std::string
      item_type: struct
      name: ncclParamInterface
      pos:
        line_end: 65
        line_start: 60
        source_file: /src/nccl/src/include/param/common.h
    typedefs: []
    union: []
- function_names:
  - '& state()'
  - '& instance()'
  - '& mutex()'
  - ncclParamRegistry::ncclParamRegistry
  source_file: /src/nccl/src/include/param/param_registry.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: info
        type: ncclParamInfo_t
      - name: '* param'
        type: ncclParamInterface
      item_type: struct
      name: mapEntry
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/nccl/src/include/param/param_registry.h
    - fields:
      - name: map
        type: mapType
      - name: mtx
        type: std::mutex
      item_type: struct
      name: registryState
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/nccl/src/include/param/param_registry.h
    typedefs: []
    union: []
- function_names:
  - resolve
  - validate
  - toString
  - operator bool() const
  - begin
  - end
  - size
  - makeOption
  - makeOption
  - makeOptions
  source_file: /src/nccl/src/include/param/parser_common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PARAM_DEFAULT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/include/param/parser_common.h
      type_or_value: '{}'
    structs:
    - fields:
      - name: resolveFn
        type: resolveFn_t
      - name: validateFn
        type: validateFn_t
      - name: toStringFn
        type: toStringFn_t
      - name: ctx
        type: std::shared_ptr<const void>
      - name: desc
        type: std::string
      item_type: struct
      name: ncclParamParser
      pos:
        line_end: 40
        line_start: 18
        source_file: /src/nccl/src/include/param/parser_common.h
    - fields:
      - name: '* name'
        type: char
      - name: value
        type: T
      - name: '* desc'
        type: char
      item_type: struct
      name: ncclOption
      pos:
        line_end: 62
        line_start: 58
        source_file: /src/nccl/src/include/param/parser_common.h
    - fields:
      - name: options
        type: std::array<ncclOption<T>, N>
      item_type: struct
      name: ncclOptionSet
      pos:
        line_end: 72
        line_start: 66
        source_file: /src/nccl/src/include/param/parser_common.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/param/parsers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    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_nvtxMemRegionsResize
        value: '5'
      - name: NVTX3EXT_CBID_nvtxMemRegionsRegister
        value: '4'
      - name: NVTX3EXT_CBID_nvtxMemHeapUnregister
        value: '2'
      - name: NVTX3EXT_CBID_nvtxMemHeapReset
        value: '3'
      - 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_nvtxMemCudaGetProcessWidePermissions
        value: '14'
      - name: NVTX3EXT_CBID_nvtxMemPermissionsReset
        value: '11'
      - name: NVTX3EXT_CBID_nvtxMemCudaGetDeviceWidePermissions
        value: '15'
      - name: NVTX3EXT_CBID_nvtxMemPermissionsUnbind
        value: '13'
      - name: NVTX3EXT_CBID_MEM_FN_NUM
        value: '17'
      - name: NVTX3EXT_CBID_nvtxMemCudaSetPeerAccess
        value: '16'
      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: nvtxMemHeap_t
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemHeap_v1
    - item_type: typedef
      name: '* nvtxMemHeapHandle_t'
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemHeap_t
    - item_type: typedef
      name: nvtxMemRegion_t
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemRegion_v1
    - item_type: typedef
      name: '* nvtxMemRegionHandle_t'
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemRegion_t
    - item_type: typedef
      name: nvtxMemPermissions_t
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemPermissions_v1
    - item_type: typedef
      name: '* nvtxMemPermissionsHandle_t'
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemPermissions_t
    - item_type: typedef
      name: nvtxMemVirtualRangeDesc_t
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemVirtualRangeDesc_v1
    - item_type: typedef
      name: nvtxMemHeapDesc_t
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemHeapDesc_v1
    - item_type: typedef
      name: nvtxMemRegionsRegisterBatch_t
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemRegionsRegisterBatch_v1
    - item_type: typedef
      name: nvtxMemRegionsResizeBatch_t
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemRegionsResizeBatch_v1
    - item_type: typedef
      name: nvtxMemRegionsUnregisterBatch_t
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemRegionsUnregisterBatch_v1
    - item_type: typedef
      name: nvtxMemRegionNameDesc_t
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemRegionNameDesc_v1
    - item_type: typedef
      name: nvtxMemRegionsNameBatch_t
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemRegionsNameBatch_v1
    - item_type: typedef
      name: nvtxMemPermissionsAssignRegionDesc_t
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemPermissionsAssignRegionDesc_v1
    - item_type: typedef
      name: nvtxMemPermissionsAssignBatch_t
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type: nvtxMemPermissionsAssignBatch_v1
    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_STREAM
        value: NVTX_RESOURCE_MAKE_TYPE(CUDART, 1)
      - name: NVTX_RESOURCE_TYPE_CUDART_EVENT
        value: NVTX_RESOURCE_MAKE_TYPE(CUDART, 2)
      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: []
    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
      type: nvtxMemCudaArrayRangeDesc_v1
    - item_type: typedef
      name: nvtxMemCuArrayRangeDesc_t
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMemCudaRt.h
      type: nvtxMemCuArrayRangeDesc_v1
    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_UNICODE
        value: '2'
      - name: NVTX_MESSAGE_TYPE_REGISTERED
        value: '3'
      - name: NVTX_MESSAGE_TYPE_ASCII
        value: '1'
      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_UNSIGNED_INT32
        value: '4'
      - name: NVTX_PAYLOAD_TYPE_UNSIGNED_INT64
        value: '1'
      - name: NVTX_PAYLOAD_TYPE_DOUBLE
        value: '3'
      - name: NVTX_PAYLOAD_TYPE_INT64
        value: '2'
      - 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_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_NATIVE
        value: NVTX_RESOURCE_MAKE_TYPE(GENERIC, 3)
      - 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: nvtxDomainRegistration
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type: nvtxDomainRegistration_st
    - item_type: typedef
      name: '* nvtxDomainHandle_t'
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type: nvtxDomainRegistration
    - item_type: typedef
      name: nvtxStringRegistration
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type: nvtxStringRegistration_st
    - item_type: typedef
      name: '* nvtxStringHandle_t'
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type: nvtxStringRegistration
    - item_type: typedef
      name: nvtxEventAttributes_t
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type: nvtxEventAttributes_v2
    - item_type: typedef
      name: nvtxResourceAttributes_t
      pos:
        line_end: 1097
        line_start: 1097
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type: nvtxResourceAttributes_v0
    - item_type: typedef
      name: '* nvtxResourceHandle_t'
      pos:
        line_end: 1103
        line_start: 1103
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type: nvtxResourceHandle
    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: nvtxCountersRegistration
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type: nvtxCountersRegistration_st
    - item_type: typedef
      name: '* nvtxCountersHandle_t'
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type: nvtxCountersRegistration
    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_COMMANDQUEUE
        value: NVTX_RESOURCE_MAKE_TYPE(OPENCL, 3)
      - 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_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: []
    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: []
    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_SPINLOCK
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 5)
      - name: NVTX_RESOURCE_TYPE_SYNC_PTHREAD_CONDITION
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 2)
      - 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_EVENT
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 3)
      - name: NVTX_RESOURCE_TYPE_SYNC_WINDOWS_SEMAPHORE
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 2)
      - name: NVTX_RESOURCE_TYPE_SYNC_WINDOWS_SRWLOCK
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 5)
      - name: NVTX_RESOURCE_TYPE_SYNC_WINDOWS_CRITICAL_SECTION
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 4)
      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_COMPLETION
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 4)
      - name: NVTX_RESOURCE_TYPE_SYNC_LINUX_SPINLOCK
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 5)
      - 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: nvtxResourceSyncAndroidType_t
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
      type: nvtxResourceSyncLinuxType_t
    - item_type: typedef
      name: '* nvtxSyncUser_t'
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
      type: nvtxSyncUser
    - item_type: typedef
      name: nvtxSyncUserAttributes_t
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
      type: nvtxSyncUserAttributes_v0
    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_OPENCL
        value: '3'
      - name: NVTX_CB_MODULE_CORE
        value: '1'
      - 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_MarkW
        value: '3'
      - name: NVTX_CBID_CORE_RangeStartEx
        value: '4'
      - name: NVTX_CBID_CORE_MarkEx
        value: '1'
      - name: NVTX_CBID_CORE_MarkA
        value: '2'
      - 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_NameOsThreadA
        value: '14'
      - name: NVTX_CBID_CORE_FORCE_INT
        value: '0x7fffffff'
      - name: NVTX_CBID_CORE_RangePop
        value: '11'
      - name: NVTX_CBID_CORE_NameOsThreadW
        value: '15'
      - name: NVTX_CBID_CORE_NameCategoryA
        value: '12'
      - name: NVTX_CBID_CORE_SIZE
      - name: NVTX_CBID_CORE_NameCategoryW
        value: '13'
      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_DomainMarkEx
        value: '1'
      - name: NVTX_CBID_CORE2_DomainRangeStartEx
        value: '2'
      - name: NVTX_CBID_CORE2_DomainRangePushEx
        value: '4'
      - 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_DomainRegisterStringA
        value: '10'
      - name: NVTX_CBID_CORE2_DomainCreateW
        value: '13'
      - name: NVTX_CBID_CORE2_SIZE
      - name: NVTX_CBID_CORE2_DomainDestroy
        value: '14'
      - name: NVTX_CBID_CORE2_DomainCreateA
        value: '12'
      - name: NVTX_CBID_CORE2_FORCE_INT
        value: '0x7fffffff'
      - name: NVTX_CBID_CORE2_DomainRegisterStringW
        value: '11'
      - name: NVTX_CBID_CORE2_Initialize
        value: '15'
      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_NameCuDeviceA
        value: '1'
      - name: NVTX_CBID_CUDA_NameCuDeviceW
        value: '2'
      - name: NVTX_CBID_CUDA_NameCuContextW
        value: '4'
      - 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_NameCudaDeviceA
        value: '1'
      - name: NVTX_CBID_CUDART_NameCudaStreamW
        value: '4'
      - name: NVTX_CBID_CUDART_NameCudaStreamA
        value: '3'
      - name: NVTX_CBID_CUDART_NameCudaDeviceW
        value: '2'
      - 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_NameClDeviceA
        value: '1'
      - name: NVTX_CBID_OPENCL_NameClDeviceW
        value: '2'
      - name: NVTX_CBID_OPENCL_NameClContextW
        value: '4'
      - name: NVTX_CBID_OPENCL_NameClContextA
        value: '3'
      - 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_NameClProgramW
        value: '12'
      - name: NVTX_CBID_OPENCL_SIZE
      - name: NVTX_CBID_OPENCL_FORCE_INT
        value: '0x7fffffff'
      - name: NVTX_CBID_OPENCL_NameClEventA
        value: '13'
      - name: NVTX_CBID_OPENCL_NameClSamplerW
        value: '10'
      - name: NVTX_CBID_OPENCL_NameClEventW
        value: '14'
      - name: NVTX_CBID_OPENCL_NameClProgramA
        value: '11'
      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_DomainSyncUserCreate
        value: '1'
      - name: NVTX_CBID_SYNC_DomainSyncUserAcquireFailed
        value: '4'
      - name: NVTX_CBID_SYNC_DomainSyncUserAcquireStart
        value: '3'
      - 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_CALLBACKS
        value: '1'
      - name: NVTX_ETID_RESERVED0
        value: '2'
      - name: NVTX_ETID_SIZE
      - 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: '* nvtxSyncUser_t'
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: nvtxSyncUser
    - item_type: typedef
      name: nvtxSyncUserAttributes_t
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: nvtxSyncUserAttributes_v0
    - 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
      type: nvtxRangeId_t
    - 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
      type: nvtxRangeId_t
    - 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
      type: nvtxRangeId_t
    - 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
      type: nvtxRangeId_t
    - 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
      type: nvtxResourceHandle_t
    - 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
      type: nvtxStringHandle_t
    - 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
      type: nvtxStringHandle_t
    - 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
      type: nvtxDomainHandle_t
    - 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
      type: nvtxDomainHandle_t
    - 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
      type: nvtxSyncUser_t
    - 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: (* 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
      type: NvtxFunctionPointer
    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
      type: nvtxSyncUser_t
    - 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:
  - NCCL_CONVERT_ORDER
  - COMPILER_ATOMIC_LOAD
  - COMPILER_ATOMIC_LOAD_DEST
  - COMPILER_ATOMIC_STORE
  - COMPILER_ATOMIC_LOAD_32
  - COMPILER_ATOMIC_STORE_32
  - COMPILER_ATOMIC_EXCHANGE
  - COMPILER_ATOMIC_COMPARE_EXCHANGE
  - COMPILER_ATOMIC_FETCH_ADD
  - COMPILER_ATOMIC_ADD_FETCH
  - COMPILER_ATOMIC_SUB_FETCH
  - COMPILER_PREFETCH
  - COMPILER_POPCOUNT32
  - COMPILER_POPCOUNT64
  - COMPILER_EXPECT
  - COMPILER_FFS
  - COMPILER_FFSL
  - COMPILER_FFSLL
  - COMPILER_CLZ
  - COMPILER_CLZL
  - COMPILER_CLZLL
  - COMPILER_BSWAP16
  - COMPILER_BSWAP32
  - COMPILER_BSWAP64
  - COMPILER_ASSUME_ALIGNED
  source_file: /src/nccl/src/include/compiler/gcc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMPILER_ATTRIBUTE_UNUSED
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/nccl/src/include/compiler/gcc.h
      type_or_value: __attribute__((unused))
    structs: []
    typedefs: []
    union: []
- function_names:
  - COMPILER_ATOMIC_LOAD_impl
  - COMPILER_ATOMIC_LOAD
  - COMPILER_ATOMIC_LOAD_DEST_impl
  - COMPILER_ATOMIC_LOAD_DEST
  - COMPILER_ATOMIC_STORE_impl
  - COMPILER_ATOMIC_STORE
  - COMPILER_ATOMIC_LOAD_32
  - COMPILER_ATOMIC_STORE_32
  - COMPILER_ATOMIC_EXCHANGE_impl
  - COMPILER_ATOMIC_EXCHANGE
  - COMPILER_ATOMIC_COMPARE_EXCHANGE_impl
  - COMPILER_ATOMIC_COMPARE_EXCHANGE
  - COMPILER_ATOMIC_FETCH_ADD_impl
  - COMPILER_ATOMIC_FETCH_ADD
  - COMPILER_ATOMIC_ADD_FETCH_impl
  - COMPILER_ATOMIC_ADD_FETCH
  - COMPILER_ATOMIC_SUB_FETCH_impl
  - COMPILER_ATOMIC_SUB_FETCH
  - COMPILER_PREFETCH
  - COMPILER_POPCOUNT32
  - COMPILER_POPCOUNT64
  - COMPILER_EXPECT
  - NCCL_FFS_impl
  - NCCL_FFSl_impl
  - NCCL_FFSll_impl
  - COMPILER_FFS
  - COMPILER_FFSL
  - COMPILER_FFSLL
  - nccl_clz_impl
  - nccl_clzl_impl
  - nccl_clzll_impl
  - COMPILER_CLZ
  - COMPILER_CLZL
  - COMPILER_CLZLL
  - COMPILER_BSWAP16
  - COMPILER_BSWAP32
  - COMPILER_BSWAP64
  - COMPILER_ASSUME_ALIGNED
  source_file: /src/nccl/src/include/compiler/msvc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/net_device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_DEVICE_INVALID_VERSION
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/src/include/nccl_device/net_device.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NCCL_NET_MTU_SIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/nccl/src/include/nccl_device/net_device.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: NCCL_NET_DEVICE_UNPACK_VERSION
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/src/include/nccl_device/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: 30
        line_start: 24
        source_file: /src/nccl/src/include/nccl_device/net_device.h
    typedefs:
    - item_type: typedef
      name: ncclNetDeviceHandle_v8_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/nccl/src/include/nccl_device/net_device.h
      type: ncclNetDeviceHandle_v7_t
    - item_type: typedef
      name: ncclNetDeviceHandle_v9_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/nccl/src/include/nccl_device/net_device.h
      type: ncclNetDeviceHandle_v8_t
    - item_type: typedef
      name: ncclNetDeviceHandle_v10_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nccl/src/include/nccl_device/net_device.h
      type: ncclNetDeviceHandle_v9_t
    - item_type: typedef
      name: ncclNetDeviceHandle_v11_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/nccl/src/include/nccl_device/net_device.h
      type: ncclNetDeviceHandle_v10_t
    - item_type: typedef
      name: ncclNetDeviceHandle_v12_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/nccl/src/include/nccl_device/net_device.h
      type: ncclNetDeviceHandle_v11_t
    - item_type: typedef
      name: ncclNetDeviceHandle_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/nccl/src/include/nccl_device/net_device.h
      type: ncclNetDeviceHandle_v12_t
    union: []
- function_names:
  - ncclGinBarrierSession
  source_file: /src/nccl/src/include/nccl_device/gin_barrier.h
  types:
    enum:
    - enumerators:
      - name: Relaxed
      item_type: enum
      name: ncclGinFenceLevel
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/nccl/src/include/nccl_device/gin_barrier.h
    preproc_defs: []
    structs:
    - fields:
      - name: ncclGinBarrierSession(Coop, ncclGin, ncclTeam, ncclGinBarrierHandle,
          uint32_t index)
        type: NCCL_DEVICE_INLINE
      - name: ncclGinBarrierSession(Coop, ncclGin, ncclTeamTagRail, uint32_t index)
        type: NCCL_DEVICE_INLINE
      - name: ncclGinBarrierSession(Coop, ncclGin, ncclTeamTagWorld, uint32_t index)
        type: NCCL_DEVICE_INLINE
      - name: ncclGinBarrierSession()
        type: NCCL_DEVICE_INLINE
      - name: sync(Coop, cuda::memory_order, ncclGinFenceLevel)
        type: NCCL_DEVICE_INLINE
      - name: ncclResult_t
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGinBarrierSession
      pos:
        line_end: 40
        line_start: 29
        source_file: /src/nccl/src/include/nccl_device/gin_barrier.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/core.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_DEV_COMM_REQUIREMENTS_INITIALIZER
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/nccl/src/include/nccl_device/core.h
      type_or_value: "{                               \\\n    sizeof(ncclDevCommRequirements_t),
        \          "
    - item_type: preproc_def
      name: NCCL_COMM_PROPERTIES_INITIALIZER
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/nccl/src/include/nccl_device/core.h
      type_or_value: "{                           \\\n  sizeof(ncclCommProperties_t),
        \                 "
    structs:
    - fields:
      - name: opaque[16]
        type: char
      item_type: struct
      name: ncclGinRequest_t
      pos:
        line_end: 33
        line_start: 31
        source_file: /src/nccl/src/include/nccl_device/core.h
    - fields:
      - name: nRanks
        type: int
      item_type: struct
      name: ncclTeam
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/nccl/src/include/nccl_device/core.h
    - fields: []
      item_type: struct
      name: ncclTeamTagWorld
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/nccl/src/include/nccl_device/core.h
    - fields: []
      item_type: struct
      name: ncclTeamTagLsa
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/nccl/src/include/nccl_device/core.h
    - fields: []
      item_type: struct
      name: ncclTeamTagRail
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/nccl/src/include/nccl_device/core.h
    - fields:
      - name: size
        type: size_t
      - name: magic
        type: unsigned int
      - name: version
        type: unsigned int
      - name: '* resourceRequirementsList'
        type: ncclDevResourceRequirements_t
      - name: '* teamRequirementsList'
        type: ncclTeamRequirements_t
      - name: lsaMultimem
        type: bool
      - name: barrierCount
        type: int
      - name: lsaBarrierCount
        type: int
      - name: railGinBarrierCount
        type: int
      - name: lsaLLA2ABlockCount
        type: int
      - name: ginForceEnable
        type: bool
      - name: ginContextCount
        type: int
      - name: ginSignalCount
        type: int
      - name: ginCounterCount
        type: int
      - name: ginConnectionType
        type: ncclGinConnectionType_t
      - name: ginExclusiveContexts
        type: bool
      - name: ginQueueDepth
        type: int
      - name: ginTrafficClass
        type: int
      - name: worldGinBarrierCount
        type: int
      item_type: struct
      name: ncclDevCommRequirements
      pos:
        line_end: 105
        line_start: 76
        source_file: /src/nccl/src/include/nccl_device/core.h
    - fields:
      - name: '* next'
        type: ncclTeamRequirements_t
      - name: team
        type: ncclTeam_t
      - name: multimem
        type: bool
      - name: '* outMultimemHandle'
        type: ncclMultimemHandle_t
      item_type: struct
      name: ncclTeamRequirements
      pos:
        line_end: 145
        line_start: 140
        source_file: /src/nccl/src/include/nccl_device/core.h
    - fields:
      - name: size
        type: size_t
      - name: magic
        type: unsigned int
      - name: version
        type: unsigned int
      - name: rank
        type: int
      - name: nRanks
        type: int
      - name: cudaDev
        type: int
      - name: nvmlDev
        type: int
      - name: deviceApiSupport
        type: bool
      - name: multimemSupport
        type: bool
      - name: ginType
        type: ncclGinType_t
      - name: nLsaTeams
        type: int
      - name: hostRmaSupport
        type: bool
      - name: railedGinType
        type: ncclGinType_t
      item_type: struct
      name: ncclCommProperties
      pos:
        line_end: 176
        line_start: 159
        source_file: /src/nccl/src/include/nccl_device/core.h
    typedefs:
    - item_type: typedef
      name: ncclDevComm_t
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclDevComm
    - item_type: typedef
      name: ncclTeam_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclTeam
    - item_type: typedef
      name: ncclWindow_vidmem_t
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclWindow_vidmem
    - item_type: typedef
      name: ncclMultimemHandle_t
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclMultimemHandle
    - item_type: typedef
      name: ncclDevResourceHandle
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: uint32_t
    - item_type: typedef
      name: ncclDevResourceHandle_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclDevResourceHandle
    - item_type: typedef
      name: ncclGinSignal_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: uint32_t
    - item_type: typedef
      name: ncclGinCounter_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: uint32_t
    - item_type: typedef
      name: ncclLsaBarrierHandle_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclLsaBarrierHandle
    - item_type: typedef
      name: ncclGinBarrierHandle_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclGinBarrierHandle
    - item_type: typedef
      name: ncclLLA2AHandle_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclLLA2AHandle
    - item_type: typedef
      name: ncclDevCommRequirements_t
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclDevCommRequirements
    - item_type: typedef
      name: ncclDevResourceRequirements_t
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclDevResourceRequirements
    - item_type: typedef
      name: ncclTeamRequirements_t
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclTeamRequirements
    - item_type: typedef
      name: ncclCommProperties_t
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/nccl/src/include/nccl_device/core.h
      type: ncclCommProperties
    union: []
- function_names:
  - ncclBarrierSession
  source_file: /src/nccl/src/include/nccl_device/barrier.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: "ncclBarrierSession(\n    Coop, ncclTeam innerTeam, ncclTeam outerTeam,
          ncclGin,\n    ncclLsaBarrierHandle innerBarHandle,\n    ncclGinBarrierHandle
          outerBarHandle,\n    uint32_t index,\n    bool multimem=false, ncclMultimemHandle
          innerMmHandle={}\n  )"
        type: NCCL_DEVICE_INLINE
      - name: "ncclBarrierSession(\n    Coop, ncclTeamTagWorld, ncclGin, uint32_t
          index, bool multimem=false\n  )"
        type: NCCL_DEVICE_INLINE
      - name: "ncclBarrierSession(\n    Coop, ncclTeamTagLsa, ncclDevComm const&,
          uint32_t index, bool multimem=false\n  )"
        type: NCCL_DEVICE_INLINE
      - name: "ncclBarrierSession(\n    Coop, ncclTeamTagRail, ncclGin, uint32_t index\n
          \ )"
        type: NCCL_DEVICE_INLINE
      - name: '& lsaBarrier()'
        type: NCCL_DEVICE_INLINE
      - name: '& ginBarrier()'
        type: NCCL_DEVICE_INLINE
      - name: sync(Coop, cuda::memory_order, ncclGinFenceLevel)
        type: NCCL_DEVICE_INLINE
      - name: ncclResult_t
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclBarrierSession
      pos:
        line_end: 45
        line_start: 18
        source_file: /src/nccl/src/include/nccl_device/barrier.h
    typedefs: []
    union: []
- function_names:
  - thread_rank
  - size
  - sync
  - get_vtable
  - ncclCoopAny
  - ncclCoopAny
  - ncclCoopAny
  - ncclCoopAny
  - thread_rank
  - size
  - num_threads
  - sync
  - thread_rank
  - size
  - num_threads
  - laneMask
  - sync
  - ncclCoopLanes
  - thread_rank
  - size
  - num_threads
  - sync
  - thread_rank
  - size
  - num_threads
  - sync
  - thread_rank
  - size
  - num_threads
  - sync
  - ncclCoopGetLaneMask
  - ncclCoopGetLaneMask
  - ncclCoopGetLaneMask
  - ncclCoopGetLaneMask
  - ncclCoopIsThread
  - ncclCoopIsThread
  - ncclCoopIsThread
  - ncclCoopIsThread
  - ncclCoopWithinWarp
  - ncclCoopWithinWarp
  - ncclCoopWithinWarp
  - ncclCoopWithinWarp
  - ncclCoopLanes::ncclCoopCoalesced
  - ncclCoopTile<32>::ncclCoopCoalesced
  - ncclCoopLanes::ncclCoopCoalesced
  - ncclCoopTile<nThreads>::ncclCoopCoalesced
  - ncclCoopBcast
  - ncclCoopBcast
  - ncclCoopBcast_WarpSpan_stash
  - ncclCoopBcast
  - ncclCoopBcast_Cta_stash
  - ncclCoopBcast
  source_file: /src/nccl/src/include/nccl_device/coop.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: storage
        type: Storage
      - name: '* vtable'
        type: VTable
      item_type: struct
      name: ncclCoopAny
      pos:
        line_end: 69
        line_start: 19
        source_file: /src/nccl/src/include/nccl_device/coop.h
    - fields:
      - name: space[16]
        type: char
      item_type: struct
      name: Storage
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/nccl/src/include/nccl_device/coop.h
    - fields:
      - name: (*thread_rank)(void const*)
        type: int
      - name: (*size)(void const*)
        type: int
      - name: (*sync)(void*)
        type: void
      item_type: struct
      name: VTable
      pos:
        line_end: 25
        line_start: 21
        source_file: /src/nccl/src/include/nccl_device/coop.h
    - fields: []
      item_type: struct
      name: ncclCoopTile
      pos:
        line_end: 89
        line_start: 74
        source_file: /src/nccl/src/include/nccl_device/coop.h
    - fields:
      - name: lmask
        type: uint32_t
      item_type: struct
      name: ncclCoopLanes
      pos:
        line_end: 115
        line_start: 98
        source_file: /src/nccl/src/include/nccl_device/coop.h
    - fields:
      - name: warp0
        type: uint32_t
      - name: ncclCoopWarpSpan(int warp0, int nWarps, int id)
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclCoopWarpSpan
      pos:
        line_end: 143
        line_start: 122
        source_file: /src/nccl/src/include/nccl_device/coop.h
    - fields: []
      item_type: struct
      name: ncclCoopCta
      pos:
        line_end: 152
        line_start: 147
        source_file: /src/nccl/src/include/nccl_device/coop.h
    typedefs:
    - item_type: typedef
      name: ncclCoopThread
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/nccl/src/include/nccl_device/coop.h
      type: ncclCoopTile
    - item_type: typedef
      name: ncclCoopWarp
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/nccl/src/include/nccl_device/coop.h
      type: ncclCoopTile
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/gin.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: ncclGin_None
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/nccl/src/include/nccl_device/gin.h
    - fields:
      - name: signalWindow
        type: ncclWindow_t
      - name: signalOffset
        type: size_t
      item_type: struct
      name: ncclGin_VASignalInc
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/nccl/src/include/nccl_device/gin.h
    - fields:
      - name: signalWindow
        type: ncclWindow_t
      - name: signalOffset
        type: size_t
      - name: value
        type: uint64_t
      item_type: struct
      name: ncclGin_VASignalAdd
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/nccl/src/include/nccl_device/gin.h
    - fields:
      - name: signal
        type: ncclGinSignal_t
      - name: value
        type: uint64_t
      item_type: struct
      name: ncclGin_SignalAdd
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/nccl/src/include/nccl_device/gin.h
    - fields:
      - name: signal
        type: ncclGinSignal_t
      item_type: struct
      name: ncclGin_SignalInc
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/nccl/src/include/nccl_device/gin.h
    - fields:
      - name: counter
        type: ncclGinCounter_t
      item_type: struct
      name: ncclGin_CounterInc
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/nccl/src/include/nccl_device/gin.h
    - fields:
      - name: '* descriptor'
        type: ncclGinDescriptorSmem
      item_type: struct
      name: ncclGin_DescriptorSmem
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nccl/src/include/nccl_device/gin.h
    - fields: []
      item_type: struct
      name: ncclGin_SegmentDevice
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/nccl/src/include/nccl_device/gin.h
    - fields: []
      item_type: struct
      name: ncclGin_SegmentMixed
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/nccl/src/include/nccl_device/gin.h
    - fields: []
      item_type: struct
      name: ncclGin_SegmentHostNuma
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/nccl/src/include/nccl_device/gin.h
    - fields:
      - name: '& comm'
        type: ncclDevComm
      - name: nConnections
        type: uint32_t
      - name: contextId
        type: uint32_t
      - name: resourceSharingMode
        type: ncclGinResourceSharingMode
      - name: '* _ginHandle'
        type: void
      - name: '* _signalShadows'
        type: uint64_t
      - name: backendMask
        type: unsigned
      - name: "ncclGin_C(ncclDevComm const& comm_, unsigned backendMask_, int contextIndex,\n
          \                              ncclGinResourceSharingMode resourceSharingMode_
          = NCCL_GIN_RESOURCE_SHARING_GPU)"
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGin_C
      pos:
        line_end: 66
        line_start: 52
        source_file: /src/nccl/src/include/nccl_device/gin.h
    - fields:
      - name: '& comm'
        type: ncclDevComm
      - name: nConnections
        type: uint32_t
      - name: contextId
        type: uint32_t
      - name: resourceSharingMode
        type: ncclGinResourceSharingMode
      - name: "ncclGin_BackendMask(\n    ncclDevComm const&, int contextIndex,\n    ncclGinResourceSharingMode
          resourceSharingMode_ = NCCL_GIN_RESOURCE_SHARING_GPU)"
        type: NCCL_DEVICE_INLINE
      - name: readCounter(ncclGinCounter_t counter, int bits=56, cuda::memory_order
          ord = cuda::memory_order_acquire) const
        type: NCCL_DEVICE_INLINE
      - name: '* getSignalShadowPtr(ncclGinSignal_t signal) const'
        type: NCCL_DEVICE_INLINE
      - name: increaseSignalShadow(ncclGinSignal_t signal, uint64_t delta) const
        type: NCCL_DEVICE_INLINE
      - name: readSignal(ncclGinSignal_t signal, int bits=64, cuda::memory_order ord
          = cuda::memory_order_acquire) const
        type: NCCL_DEVICE_INLINE
      - name: readSignal(ncclWindow_t signalWindow, size_t signalOffset, int bits=64,
          cuda::memory_order ord = cuda::memory_order_acquire) const
        type: NCCL_DEVICE_INLINE
      - name: resetCounter(ncclGinCounter_t counter) const
        type: NCCL_DEVICE_INLINE
      - name: resetSignal(ncclGinSignal_t signal) const
        type: NCCL_DEVICE_INLINE
      - name: resetSignal(ncclWindow_t signalWindow, size_t signalOffset) const
        type: NCCL_DEVICE_INLINE
      - name: '* _ginHandle'
        type: void
      - name: '* _signalShadows'
        type: uint64_t
      - name: ncclGinCtx_M<backendMask>
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGin_BackendMask
      pos:
        line_end: 390
        line_start: 184
        source_file: /src/nccl/src/include/nccl_device/gin.h
    typedefs: []
    union: []
- function_names:
  - ncclLsaBarrierSession
  source_file: /src/nccl/src/include/nccl_device/lsa_barrier.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ncclLsaBarrierSession(Coop, ncclDevComm const&, ncclTeam, ncclLsaBarrierHandle,
          uint32_t index, bool multimem=false, ncclMultimemHandle mmHandle={})
        type: NCCL_DEVICE_INLINE
      - name: ncclLsaBarrierSession(Coop, ncclDevComm const&, ncclTeamTagLsa, uint32_t
          index, bool multimem=false)
        type: NCCL_DEVICE_INLINE
      - name: ncclLsaBarrierSession()
        type: NCCL_DEVICE_INLINE
      - name: arrive(Coop, cuda::memory_order)
        type: NCCL_DEVICE_INLINE
      - name: wait(Coop, cuda::memory_order)
        type: NCCL_DEVICE_INLINE
      - name: sync(Coop, cuda::memory_order)
        type: NCCL_DEVICE_INLINE
      - name: ncclResult_t
        type: NCCL_DEVICE_INLINE
      - name: ncclResult_t
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclLsaBarrierSession
      pos:
        line_end: 34
        line_start: 20
        source_file: /src/nccl/src/include/nccl_device/lsa_barrier.h
    typedefs: []
    union: []
- function_names:
  - nccl::utility::testAbort
  - nccl::utility::testAbort
  - nccl::utility::declval
  - nccl::utility::opaqueZero
  - nccl::utility::divUp
  - nccl::utility::roundUp
  - nccl::utility::roundDown
  - nccl::utility::alignUp
  - nccl::utility::alignUp
  - nccl::utility::alignUp
  - nccl::utility::alignDown
  - nccl::utility::alignDown
  - nccl::utility::alignDown
  - nccl::utility::add4G
  - nccl::utility::isPow2
  - nccl::utility::rollingLessEq
  - nccl::utility::rollingLessThan
  - nccl::utility::idivRcp32
  - nccl::utility::idivRcp64
  - nccl::utility::mul32hi
  - nccl::utility::mul64hi
  - nccl::utility::imulRcp32
  - nccl::utility::imulRcp64
  - nccl::utility::idivmodFast32
  - nccl::utility::idivmodFast64
  - nccl::utility::idivFast32
  - nccl::utility::idivFast64
  - nccl::utility::imodFast32
  - nccl::utility::imodFast64
  - nccl::utility::idivRcp64_upto64
  - nccl::utility::idivRcp32_upto64
  - cuda::memory_order acquireOrderOf(cuda::memory_order ord)
  - cuda::memory_order releaseOrderOf(cuda::memory_order ord)
  - nccl::utility::atomicLoad
  - nccl::utility::atomicStore
  - nccl::utility::lane
  - nccl::utility::lanemask_lt
  - nccl::utility::loadConst
  - nccl::utility::get
  - nccl::utility::get
  - nccl::utility::present
  - nccl::utility::Present<H&&, T&&...>::present
  - nccl::utility::Optional
  - nccl::utility::Optional
  - nccl::utility::Optional
  - nccl::utility::Optional
  - nccl::utility::testAbort
  - nccl::utility::testAbort
  - nccl::utility::declval
  - nccl::utility::opaqueZero
  - nccl::utility::divUp
  - nccl::utility::roundUp
  - nccl::utility::roundDown
  - nccl::utility::alignUp
  - nccl::utility::alignUp
  - nccl::utility::alignUp
  - nccl::utility::alignDown
  - nccl::utility::alignDown
  - nccl::utility::alignDown
  - nccl::utility::add4G
  - nccl::utility::isPow2
  - nccl::utility::rollingLessEq
  - nccl::utility::rollingLessThan
  - nccl::utility::idivRcp32
  - nccl::utility::idivRcp64
  - nccl::utility::mul32hi
  - nccl::utility::mul64hi
  - nccl::utility::imulRcp32
  - nccl::utility::imulRcp64
  - nccl::utility::idivmodFast32
  - nccl::utility::idivmodFast64
  - nccl::utility::idivFast32
  - nccl::utility::idivFast64
  - nccl::utility::imodFast32
  - nccl::utility::imodFast64
  - nccl::utility::idivRcp64_upto64
  - nccl::utility::idivRcp32_upto64
  - cuda::memory_order acquireOrderOf(cuda::memory_order ord)
  - cuda::memory_order releaseOrderOf(cuda::memory_order ord)
  - nccl::utility::atomicLoad
  - nccl::utility::atomicStore
  - nccl::utility::lane
  - nccl::utility::lanemask_lt
  - nccl::utility::loadConst
  - nccl::utility::get
  - nccl::utility::get
  - nccl::utility::present
  - nccl::utility::Present<H&&, T&&...>::present
  - nccl::utility::Optional
  - nccl::utility::Optional
  - nccl::utility::Optional
  - nccl::utility::Optional
  - nccl::utility::testAbort
  - nccl::utility::testAbort
  - nccl::utility::declval
  - nccl::utility::opaqueZero
  - nccl::utility::divUp
  - nccl::utility::roundUp
  - nccl::utility::roundDown
  - nccl::utility::alignUp
  - nccl::utility::alignUp
  - nccl::utility::alignUp
  - nccl::utility::alignDown
  - nccl::utility::alignDown
  - nccl::utility::alignDown
  - nccl::utility::add4G
  - nccl::utility::isPow2
  - nccl::utility::rollingLessEq
  - nccl::utility::rollingLessThan
  - nccl::utility::idivRcp32
  - nccl::utility::idivRcp64
  - nccl::utility::mul32hi
  - nccl::utility::mul64hi
  - nccl::utility::imulRcp32
  - nccl::utility::imulRcp64
  - nccl::utility::idivmodFast32
  - nccl::utility::idivmodFast64
  - nccl::utility::idivFast32
  - nccl::utility::idivFast64
  - nccl::utility::imodFast32
  - nccl::utility::imodFast64
  - nccl::utility::idivRcp64_upto64
  - nccl::utility::idivRcp32_upto64
  - cuda::memory_order acquireOrderOf(cuda::memory_order ord)
  - cuda::memory_order releaseOrderOf(cuda::memory_order ord)
  - nccl::utility::atomicLoad
  - nccl::utility::atomicStore
  - nccl::utility::lane
  - nccl::utility::lanemask_lt
  - nccl::utility::loadConst
  - nccl::utility::get
  - nccl::utility::get
  - nccl::utility::present
  - nccl::utility::Present<H&&, T&&...>::present
  - nccl::utility::Optional
  - nccl::utility::Optional
  - nccl::utility::Optional
  - nccl::utility::Optional
  - nccl::utility::testAbort
  - nccl::utility::testAbort
  - nccl::utility::declval
  - nccl::utility::opaqueZero
  - nccl::utility::divUp
  - nccl::utility::roundUp
  - nccl::utility::roundDown
  - nccl::utility::alignUp
  - nccl::utility::alignUp
  - nccl::utility::alignUp
  - nccl::utility::alignDown
  - nccl::utility::alignDown
  - nccl::utility::alignDown
  - nccl::utility::add4G
  - nccl::utility::isPow2
  - nccl::utility::rollingLessEq
  - nccl::utility::rollingLessThan
  - nccl::utility::idivRcp32
  - nccl::utility::idivRcp64
  - nccl::utility::mul32hi
  - nccl::utility::mul64hi
  - nccl::utility::imulRcp32
  - nccl::utility::imulRcp64
  - nccl::utility::idivmodFast32
  - nccl::utility::idivmodFast64
  - nccl::utility::idivFast32
  - nccl::utility::idivFast64
  - nccl::utility::imodFast32
  - nccl::utility::imodFast64
  - nccl::utility::idivRcp64_upto64
  - nccl::utility::idivRcp32_upto64
  - cuda::memory_order acquireOrderOf(cuda::memory_order ord)
  - cuda::memory_order releaseOrderOf(cuda::memory_order ord)
  - nccl::utility::atomicLoad
  - nccl::utility::atomicStore
  - nccl::utility::lane
  - nccl::utility::lanemask_lt
  - nccl::utility::loadConst
  - nccl::utility::get
  - nccl::utility::get
  - nccl::utility::present
  - nccl::utility::Present<H&&, T&&...>::present
  - nccl::utility::Optional
  - nccl::utility::Optional
  - nccl::utility::Optional
  - nccl::utility::Optional
  source_file: /src/nccl/src/include/nccl_device/utility.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_CHECK_CUDACC
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_CHECK_CUDACC
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_CHECK_CUDACC
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_CHECK_CUDACC
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_DEVICE_INLINE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: __device__ __attribute__((always_inline))
    - item_type: preproc_def
      name: NCCL_HOST_DEVICE_INLINE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: __host__ __device__ __attribute__((always_inline))
    - item_type: preproc_def
      name: NCCL_DEVICE_INLINE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: __device__ __forceinline__
    - item_type: preproc_def
      name: NCCL_HOST_DEVICE_INLINE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: __host__ __device__ __forceinline__
    - item_type: preproc_def
      name: NCCL_HOST_DEVICE_INLINE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: __forceinline
    - item_type: preproc_def
      name: NCCL_HOST_DEVICE_INLINE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: inline __attribute__((always_inline))
    - item_type: preproc_def
      name: NCCL_IF_CONSTEXPR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: constexpr
    - item_type: preproc_def
      name: NCCL_EXTERN_C
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: extern "C"
    - item_type: preproc_def
      name: NCCL_IR_EXTERN_C
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/nccl/src/include/nccl_device/utility.h
      type_or_value: extern "C"
    structs:
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: always_false
      pos:
        line_end: 117
        line_start: 115
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: value
        type: T
      item_type: struct
      name: ValueAsType
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeq
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeqUpTo
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeqUpTo<n, n, i...>
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: Present<>
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: h
        type: H
      - name: t
        type: Present<T...>
      - name: Present(H h, Present<T...> t)
        type: NCCL_HOST_DEVICE_INLINE
      - name: Present(Present const& that)
        type: NCCL_HOST_DEVICE_INLINE
      item_type: struct
      name: Present<H, T...>
      pos:
        line_end: 444
        line_start: 430
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: Absent
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: present
        type: bool
      item_type: struct
      name: Optional
      pos:
        line_end: 480
        line_start: 457
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: always_false
      pos:
        line_end: 117
        line_start: 115
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: value
        type: T
      item_type: struct
      name: ValueAsType
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeq
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeqUpTo
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeqUpTo<n, n, i...>
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: Present<>
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: h
        type: H
      - name: t
        type: Present<T...>
      - name: Present(H h, Present<T...> t)
        type: NCCL_HOST_DEVICE_INLINE
      - name: Present(Present const& that)
        type: NCCL_HOST_DEVICE_INLINE
      item_type: struct
      name: Present<H, T...>
      pos:
        line_end: 444
        line_start: 430
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: Absent
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: present
        type: bool
      item_type: struct
      name: Optional
      pos:
        line_end: 480
        line_start: 457
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: always_false
      pos:
        line_end: 117
        line_start: 115
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: value
        type: T
      item_type: struct
      name: ValueAsType
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeq
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeqUpTo
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeqUpTo<n, n, i...>
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: Present<>
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: h
        type: H
      - name: t
        type: Present<T...>
      - name: Present(H h, Present<T...> t)
        type: NCCL_HOST_DEVICE_INLINE
      - name: Present(Present const& that)
        type: NCCL_HOST_DEVICE_INLINE
      item_type: struct
      name: Present<H, T...>
      pos:
        line_end: 444
        line_start: 430
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: Absent
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: present
        type: bool
      item_type: struct
      name: Optional
      pos:
        line_end: 480
        line_start: 457
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: always_false
      pos:
        line_end: 117
        line_start: 115
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: value
        type: T
      item_type: struct
      name: ValueAsType
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeq
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeqUpTo
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: IntSeqUpTo<n, n, i...>
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: Present<>
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: h
        type: H
      - name: t
        type: Present<T...>
      - name: Present(H h, Present<T...> t)
        type: NCCL_HOST_DEVICE_INLINE
      - name: Present(Present const& that)
        type: NCCL_HOST_DEVICE_INLINE
      item_type: struct
      name: Present<H, T...>
      pos:
        line_end: 444
        line_start: 430
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields: []
      item_type: struct
      name: Absent
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/nccl/src/include/nccl_device/utility.h
    - fields:
      - name: present
        type: bool
      item_type: struct
      name: Optional
      pos:
        line_end: 480
        line_start: 457
        source_file: /src/nccl/src/include/nccl_device/utility.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/reduce_copy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/ptr.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: window
        type: ncclWindow_t
      - name: offset
        type: size_t
      - name: ncclSymPtr(ncclWindow_t window=nullptr, size_t offset=0)
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator+=(int d)'
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator+=(unsigned int d)'
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator+=(long d)'
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator+=(unsigned long d)'
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator+=(long long d)'
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator+=(unsigned long long d)'
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator-=(int d)'
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator-=(unsigned int d)'
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator-=(long d)'
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator-=(unsigned long d)'
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator-=(long long d)'
        type: NCCL_HOST_DEVICE_INLINE
      - name: '& operator-=(unsigned long long d)'
        type: NCCL_HOST_DEVICE_INLINE
      item_type: struct
      name: ncclSymPtr
      pos:
        line_end: 46
        line_start: 14
        source_file: /src/nccl/src/include/nccl_device/ptr.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/gin_win_stub.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GIN_BACKEND_MASK_ALL
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/nccl_device/gin_win_stub.h
      type_or_value: 0u
    structs:
    - fields:
      - name: bufHandle
        type: ncclDevResourceHandle
      - name: counter0
        type: ncclGinCounter_t
      - name: size_log2
        type: uint32_t
      item_type: struct
      name: ncclGinOutboxHandle
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/nccl/src/include/nccl_device/gin_win_stub.h
    - fields:
      - name: bufHandle
        type: ncclDevResourceHandle
      - name: signals
        type: ncclGinSignal_t
      - name: size_log2
        type: uint32_t
      - name: nPeers_rcp32
        type: uint32_t
      item_type: struct
      name: ncclGinInboxA2AHandle
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/nccl/src/include/nccl_device/gin_win_stub.h
    - fields:
      - name: railSignals
        type: ncclGinSignal_t
      item_type: struct
      name: ncclGinSyncHandle
      pos:
        line_end: 52
        line_start: 50
        source_file: /src/nccl/src/include/nccl_device/gin_win_stub.h
    typedefs: []
    union: []
- function_names:
  - ncclLLA2ASession
  source_file: /src/nccl/src/include/nccl_device/ll_a2a.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ncclLLA2ASession(Coop, ncclDevComm const&, ncclTeam, ncclLLA2AHandle,
          uint32_t block, int maxElts, bool multimem=false, ncclMultimemHandle mmHandle={})
        type: NCCL_DEVICE_INLINE
      - name: ncclLLA2ASession()
        type: NCCL_DEVICE_INLINE
      - name: endEpoch(Coop)
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclLLA2ASession
      pos:
        line_end: 50
        line_start: 22
        source_file: /src/nccl/src/include/nccl_device/ll_a2a.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/comm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& ncclBarrierSession<Coop>::lsaBarrier()'
  - '& ncclBarrierSession<Coop>::ginBarrier()'
  - ncclBarrierSession<Coop>::sync
  - "ncclResult_t ncclBarrierSession<Coop>::sync(\n    Coop, cuda::memory_order ord,
    ncclGinFenceLevel fence, uint64_t timeoutCycles)"
  source_file: /src/nccl/src/include/nccl_device/impl/barrier__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator()(const T& a, const T& b) const
  - operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
  - operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
  - operator()(const T& a, const T& b) const
  - operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
  - operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
  - operator()(const T& a, const T& b) const
  - operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
  - operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
  - operator()(const T& a, const T& b) const
  - operator()(const __nv_fp8_e4m3& a, const __nv_fp8_e4m3& b) const
  - operator()(const __nv_fp8_e5m2& a, const __nv_fp8_e5m2& b) const
  source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: OpSum
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields: []
      item_type: struct
      name: AccRedOp
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields: []
      item_type: struct
      name: AccRedOp<Red<T>, AccEltType>
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopWarp>
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopCta>
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopThread>
      pos:
        line_end: 67
        line_start: 65
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: __nv_fp8_e4m3
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: OpSum<__nv_fp8_e4m3>
      pos:
        line_end: 84
        line_start: 73
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: __nv_fp8_e5m2
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: OpSum<__nv_fp8_e5m2>
      pos:
        line_end: 98
        line_start: 87
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields: []
      item_type: struct
      name: OpSum
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields: []
      item_type: struct
      name: AccRedOp
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields: []
      item_type: struct
      name: AccRedOp<Red<T>, AccEltType>
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopWarp>
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopCta>
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopThread>
      pos:
        line_end: 67
        line_start: 65
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: __nv_fp8_e4m3
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: OpSum<__nv_fp8_e4m3>
      pos:
        line_end: 84
        line_start: 73
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: __nv_fp8_e5m2
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: OpSum<__nv_fp8_e5m2>
      pos:
        line_end: 98
        line_start: 87
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields: []
      item_type: struct
      name: OpSum
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields: []
      item_type: struct
      name: AccRedOp
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields: []
      item_type: struct
      name: AccRedOp<Red<T>, AccEltType>
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopWarp>
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopCta>
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopThread>
      pos:
        line_end: 67
        line_start: 65
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: __nv_fp8_e4m3
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: OpSum<__nv_fp8_e4m3>
      pos:
        line_end: 84
        line_start: 73
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: __nv_fp8_e5m2
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: OpSum<__nv_fp8_e5m2>
      pos:
        line_end: 98
        line_start: 87
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields: []
      item_type: struct
      name: OpSum
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields: []
      item_type: struct
      name: AccRedOp
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields: []
      item_type: struct
      name: AccRedOp<Red<T>, AccEltType>
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopWarp>
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopCta>
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: CoopStride<ncclCoopThread>
      pos:
        line_end: 67
        line_start: 65
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: __nv_fp8_e4m3
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: OpSum<__nv_fp8_e4m3>
      pos:
        line_end: 84
        line_start: 73
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    - fields:
      - name: __nv_fp8_e5m2
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: OpSum<__nv_fp8_e5m2>
      pos:
        line_end: 98
        line_start: 87
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__types.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/impl/core__types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GIN_MAX_CONNECTIONS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/src/include/nccl_device/impl/core__types.h
      type_or_value: '4'
    structs:
    - fields:
      - name: ginWins[NCCL_GIN_MAX_CONNECTIONS]
        type: ncclGinWindow_t
      - name: segmentSize
        type: size_t
      - name: memType
        type: CUmemLocationType
      item_type: struct
      name: ncclSegmentWindow
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/nccl/src/include/nccl_device/impl/core__types.h
    - fields:
      - name: '* winHost'
        type: void
      - name: '* lsaFlatBase'
        type: char
      - name: lsaRank
        type: int
      - name: worldRank
        type: int
      - name: stride4G
        type: uint32_t
      - name: mcOffset4K
        type: uint32_t
      - name: ginOffset4K
        type: uint32_t
      - name: ginWins[NCCL_GIN_MAX_CONNECTIONS]
        type: ncclGinWindow_t
      - name: '* ginMultiSegmentWins'
        type: struct ncclSegmentWindow
      - name: numSegments
        type: int
      item_type: struct
      name: ncclWindow_vidmem
      pos:
        line_end: 37
        line_start: 26
        source_file: /src/nccl/src/include/nccl_device/impl/core__types.h
    - fields:
      - name: reserved1[8]
        type: char
      - name: '* lsaFlatBase'
        type: char
      - name: reserved2[8]
        type: char
      - name: stride4G
        type: uint32_t
      - name: mcOffset4K
        type: uint32_t
      - name: reserved3[40]
        type: char
      item_type: struct
      name: ncclResourceWindow_vidmem
      pos:
        line_end: 49
        line_start: 42
        source_file: /src/nccl/src/include/nccl_device/impl/core__types.h
    - fields:
      - name: '* mcBasePtr'
        type: void
      item_type: struct
      name: ncclMultimemHandle
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/nccl/src/include/nccl_device/impl/core__types.h
    typedefs:
    - item_type: typedef
      name: '*ncclGinWindow_t'
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/nccl/src/include/nccl_device/impl/core__types.h
      type: void
    union: []
- function_names:
  - calcSlotOffset
  source_file: /src/nccl/src/include/nccl_device/impl/ll_a2a__types.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bufHandle
        type: ncclDevResourceHandle_t
      - name: nSlots
        type: uint32_t
      item_type: struct
      name: ncclLLA2AHandle
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/nccl/src/include/nccl_device/impl/ll_a2a__types.h
    - fields:
      - name: coop
        type: Coop
      - name: '& comm'
        type: ncclDevComm
      - name: team
        type: ncclTeam
      - name: handle
        type: ncclLLA2AHandle
      - name: block
        type: int
      - name: pitch
        type: int
      - name: multimem
        type: bool
      - name: mmHandle
        type: ncclMultimemHandle
      - name: epoch
        type: uint32_t
      - name: slotsOffset
        type: uint32_t
      item_type: struct
      name: ncclLLA2ASession_internal
      pos:
        line_end: 34
        line_start: 19
        source_file: /src/nccl/src/include/nccl_device/impl/ll_a2a__types.h
    typedefs: []
    union: []
- function_names:
  - ncclLLA2ASession<Coop>::~ncclLLA2ASession()
  - ncclLLA2ASession<Coop>::send
  - ncclLLA2ASession<Coop>::bcast
  - ncclLLA2ASession<Coop>::recv
  - ncclLLA2ASession<Coop>::recvUnrolled
  - ncclLLA2ASession<Coop>::recvReduce
  - ncclLLA2ASession<Coop>::endEpoch
  source_file: /src/nccl/src/include/nccl_device/impl/ll_a2a__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mcInbox
  - ucInbox
  source_file: /src/nccl/src/include/nccl_device/impl/lsa_barrier__types.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bufHandle
        type: ncclDevResourceHandle_t
      - name: nBarriers
        type: int
      item_type: struct
      name: ncclLsaBarrierHandle
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/nccl/src/include/nccl_device/impl/lsa_barrier__types.h
    - fields:
      - name: coop
        type: Coop
      - name: '& comm'
        type: ncclDevComm
      - name: team
        type: ncclTeam
      - name: handle
        type: ncclLsaBarrierHandle
      - name: index
        type: int
      - name: multimem
        type: bool
      - name: mmHandle
        type: ncclMultimemHandle
      - name: epoch
        type: uint32_t
      item_type: struct
      name: ncclLsaBarrierSession_internal
      pos:
        line_end: 46
        line_start: 19
        source_file: /src/nccl/src/include/nccl_device/impl/lsa_barrier__types.h
    typedefs: []
    union: []
- function_names:
  - ncclGinBarrierSession<Coop>::~ncclGinBarrierSession()
  - "ncclResult_t ncclGinBarrierSession_internal<Coop>::syncInternal(Coop, cuda::memory_order
    ord,\n                                                                      ncclGinFenceLevel
    fence, uint64_t timeoutCycles)"
  - NCCL_IF_CONSTEXPR
  - NCCL_IF_CONSTEXPR
  - ncclGinBarrierSession<Coop>::sync
  - "ncclResult_t ncclGinBarrierSession<Coop>::sync(\n    Coop coop, cuda::memory_order
    ord, ncclGinFenceLevel fence, uint64_t timeoutCycles)"
  source_file: /src/nccl/src/include/nccl_device/impl/gin_barrier__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/impl/comm__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/impl/ptr__types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclLsaBarrierSession_internal
  - ncclLsaBarrierSession<Coop>::~ncclLsaBarrierSession()
  - ncclLsaBarrierSession<Coop>::arrive
  - "ncclResult_t ncclLsaBarrierSession_internal<Coop>::waitInternal(Coop, cuda::memory_order
    order,\n                                                                                   uint64_t
    timeoutCycles)"
  - ncclLsaBarrierSession<Coop>::wait
  - "ncclResult_t ncclLsaBarrierSession<Coop>::wait(\n    Coop coop, cuda::memory_order
    order, uint64_t timeoutCycles)"
  - ncclLsaBarrierSession<Coop>::sync
  - "ncclResult_t ncclLsaBarrierSession<Coop>::sync(\n    Coop coop, cuda::memory_order
    order, uint64_t timeoutCycles)"
  source_file: /src/nccl/src/include/nccl_device/impl/lsa_barrier__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/impl/gin_barrier__types.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: signal0
        type: ncclGinSignal_t
      - name: unused
        type: ncclDevResourceHandle_t
      item_type: struct
      name: ncclGinBarrierHandle
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/nccl/src/include/nccl_device/impl/gin_barrier__types.h
    - fields:
      - name: coop
        type: Coop
      - name: net
        type: ncclGin
      - name: team
        type: ncclTeam
      - name: handle
        type: ncclGinBarrierHandle
      - name: index
        type: int
      - name: signal
        type: ncclGinSignal_t
      item_type: struct
      name: ncclGinBarrierSession_internal
      pos:
        line_end: 31
        line_start: 20
        source_file: /src/nccl/src/include/nccl_device/impl/gin_barrier__types.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/impl/gin__types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclLsaReduceLsaCopy
  - ncclLsaReduceMultimemCopy
  - ncclLsaReduceSumLsaCopy
  - ncclLsaReduceSumMultimemCopy
  - ncclMultimemReduceSumLsaCopy
  - ncclMultimemReduceSumMultimemCopy
  - ncclLsaReduceSum
  - ncclLsaReduceSum
  - ncclLsaReduceSum
  - ncclLsaReduceSum
  - ncclLsaReduceSum
  - ncclMultimemReduceSum
  - ncclMultimemReduceSum
  - ncclMultimemReduceSum
  - ncclLocalReduceSum
  - ncclLocalReduceSum
  - ncclLsaCopy
  - ncclLsaCopy
  - ncclLsaCopy
  - ncclLsaCopy
  - ncclLsaCopy
  - ncclMultimemCopy
  - ncclMultimemCopy
  - ncclMultimemCopy
  - ncclLocalCopy
  - ncclLocalCopy
  - ncclLsaReduceSumCopy
  - ncclLsaReduceSumCopy
  - ncclLsaReduceSumCopy
  - ncclLsaReduceSumCopy
  - ncclLsaReduceSumCopy
  - ncclMultimemReduceSumCopy
  - ncclMultimemReduceSumCopy
  - ncclMultimemReduceSumCopy
  - ncclLsaReduceSumMultimemCopy
  - ncclLsaReduceSumMultimemCopy
  - ncclMultimemReduceSumLsaCopy
  - ncclMultimemReduceSumLsaCopy
  - ncclLocalReduceSumCopy
  - ncclLsaReduceLsaCopy
  - ncclLsaReduceMultimemCopy
  - ncclLsaReduceSumLsaCopy
  - ncclLsaReduceSumMultimemCopy
  - ncclMultimemReduceSumLsaCopy
  - ncclMultimemReduceSumMultimemCopy
  - ncclLsaReduceSum
  - ncclLsaReduceSum
  - ncclLsaReduceSum
  - ncclLsaReduceSum
  - ncclLsaReduceSum
  - ncclMultimemReduceSum
  - ncclMultimemReduceSum
  - ncclMultimemReduceSum
  - ncclLocalReduceSum
  - ncclLocalReduceSum
  - ncclLsaCopy
  - ncclLsaCopy
  - ncclLsaCopy
  - ncclLsaCopy
  - ncclLsaCopy
  - ncclMultimemCopy
  - ncclMultimemCopy
  - ncclMultimemCopy
  - ncclLocalCopy
  - ncclLocalCopy
  - ncclLsaReduceSumCopy
  - ncclLsaReduceSumCopy
  - ncclLsaReduceSumCopy
  - ncclLsaReduceSumCopy
  - ncclLsaReduceSumCopy
  - ncclMultimemReduceSumCopy
  - ncclMultimemReduceSumCopy
  - ncclMultimemReduceSumCopy
  - ncclLsaReduceSumMultimemCopy
  - ncclLsaReduceSumMultimemCopy
  - ncclMultimemReduceSumLsaCopy
  - ncclMultimemReduceSumLsaCopy
  - ncclLocalReduceSumCopy
  source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nccl::utility::run
  - nccl::utility::run
  - nccl::utility::load
  - EltPack<double, 1> load<EltPack<double, 1>, true, OpSum<double>>(const EltPack<double,
    1>* addr)
  - EltPack<double, 2> load<EltPack<double, 2>, true, OpSum<double>>(const EltPack<double,
    2>* addr)
  - EltPack<float, 1> load<EltPack<float, 1>, true, OpSum<float>>(const EltPack<float,
    1>* addr)
  - EltPack<float, 2> load<EltPack<float, 2>, true, OpSum<float>>(const EltPack<float,
    2>* addr)
  - EltPack<float, 4> load<EltPack<float, 4>, true, OpSum<float>>(const EltPack<float,
    4>* addr)
  - EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const EltPack<half,
    2>* addr)
  - EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const EltPack<half,
    1>* addr)
  - EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const EltPack<half,
    8>* addr)
  - EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16, 2>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 2>* addr)
  - EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16, 1>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 1>* addr)
  - EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16, 8>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 8>* addr)
  - EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3, 4>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 4>* addr)
  - EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3, 2>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 2>* addr)
  - EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3, 1>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 1>* addr)
  - EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3, 16>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 16>* addr)
  - EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2, 4>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 4>* addr)
  - EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2, 2>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 2>* addr)
  - EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2, 1>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 1>* addr)
  - EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2, 16>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 16>* addr)
  - EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true, OpSum<int32_t>>(const EltPack<int32_t,
    1>* addr)
  - EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true, OpSum<int32_t>>(const EltPack<int32_t,
    4>* addr)
  - EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>, true, OpSum<uint32_t>>(const EltPack<uint32_t,
    1>* addr)
  - EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>, true, OpSum<uint32_t>>(const EltPack<uint32_t,
    4>* addr)
  - EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true, OpSum<int64_t>>(const EltPack<int64_t,
    1>* addr)
  - EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true, OpSum<int64_t>>(const EltPack<int64_t,
    2>* addr)
  - EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>, true, OpSum<uint64_t>>(const EltPack<uint64_t,
    1>* addr)
  - EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>, true, OpSum<uint64_t>>(const EltPack<uint64_t,
    2>* addr)
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimemStore
  - nccl::utility::store
  - nccl::utility::run
  - nccl::utility::run
  - nccl::utility::load
  - EltPack<double, 1> load<EltPack<double, 1>, true, OpSum<double>>(const EltPack<double,
    1>* addr)
  - EltPack<double, 2> load<EltPack<double, 2>, true, OpSum<double>>(const EltPack<double,
    2>* addr)
  - EltPack<float, 1> load<EltPack<float, 1>, true, OpSum<float>>(const EltPack<float,
    1>* addr)
  - EltPack<float, 2> load<EltPack<float, 2>, true, OpSum<float>>(const EltPack<float,
    2>* addr)
  - EltPack<float, 4> load<EltPack<float, 4>, true, OpSum<float>>(const EltPack<float,
    4>* addr)
  - EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const EltPack<half,
    2>* addr)
  - EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const EltPack<half,
    1>* addr)
  - EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const EltPack<half,
    8>* addr)
  - EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16, 2>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 2>* addr)
  - EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16, 1>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 1>* addr)
  - EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16, 8>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 8>* addr)
  - EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3, 4>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 4>* addr)
  - EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3, 2>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 2>* addr)
  - EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3, 1>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 1>* addr)
  - EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3, 16>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 16>* addr)
  - EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2, 4>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 4>* addr)
  - EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2, 2>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 2>* addr)
  - EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2, 1>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 1>* addr)
  - EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2, 16>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 16>* addr)
  - EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true, OpSum<int32_t>>(const EltPack<int32_t,
    1>* addr)
  - EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true, OpSum<int32_t>>(const EltPack<int32_t,
    4>* addr)
  - EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>, true, OpSum<uint32_t>>(const EltPack<uint32_t,
    1>* addr)
  - EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>, true, OpSum<uint32_t>>(const EltPack<uint32_t,
    4>* addr)
  - EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true, OpSum<int64_t>>(const EltPack<int64_t,
    1>* addr)
  - EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true, OpSum<int64_t>>(const EltPack<int64_t,
    2>* addr)
  - EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>, true, OpSum<uint64_t>>(const EltPack<uint64_t,
    1>* addr)
  - EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>, true, OpSum<uint64_t>>(const EltPack<uint64_t,
    2>* addr)
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimemStore
  - nccl::utility::store
  - nccl::utility::run
  - nccl::utility::run
  - nccl::utility::load
  - EltPack<double, 1> load<EltPack<double, 1>, true, OpSum<double>>(const EltPack<double,
    1>* addr)
  - EltPack<double, 2> load<EltPack<double, 2>, true, OpSum<double>>(const EltPack<double,
    2>* addr)
  - EltPack<float, 1> load<EltPack<float, 1>, true, OpSum<float>>(const EltPack<float,
    1>* addr)
  - EltPack<float, 2> load<EltPack<float, 2>, true, OpSum<float>>(const EltPack<float,
    2>* addr)
  - EltPack<float, 4> load<EltPack<float, 4>, true, OpSum<float>>(const EltPack<float,
    4>* addr)
  - EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const EltPack<half,
    2>* addr)
  - EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const EltPack<half,
    1>* addr)
  - EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const EltPack<half,
    8>* addr)
  - EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16, 2>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 2>* addr)
  - EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16, 1>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 1>* addr)
  - EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16, 8>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 8>* addr)
  - EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3, 4>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 4>* addr)
  - EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3, 2>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 2>* addr)
  - EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3, 1>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 1>* addr)
  - EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3, 16>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 16>* addr)
  - EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2, 4>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 4>* addr)
  - EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2, 2>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 2>* addr)
  - EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2, 1>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 1>* addr)
  - EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2, 16>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 16>* addr)
  - EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true, OpSum<int32_t>>(const EltPack<int32_t,
    1>* addr)
  - EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true, OpSum<int32_t>>(const EltPack<int32_t,
    4>* addr)
  - EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>, true, OpSum<uint32_t>>(const EltPack<uint32_t,
    1>* addr)
  - EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>, true, OpSum<uint32_t>>(const EltPack<uint32_t,
    4>* addr)
  - EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true, OpSum<int64_t>>(const EltPack<int64_t,
    1>* addr)
  - EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true, OpSum<int64_t>>(const EltPack<int64_t,
    2>* addr)
  - EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>, true, OpSum<uint64_t>>(const EltPack<uint64_t,
    1>* addr)
  - EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>, true, OpSum<uint64_t>>(const EltPack<uint64_t,
    2>* addr)
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimemStore
  - nccl::utility::store
  - nccl::utility::run
  - nccl::utility::run
  - nccl::utility::load
  - EltPack<double, 1> load<EltPack<double, 1>, true, OpSum<double>>(const EltPack<double,
    1>* addr)
  - EltPack<double, 2> load<EltPack<double, 2>, true, OpSum<double>>(const EltPack<double,
    2>* addr)
  - EltPack<float, 1> load<EltPack<float, 1>, true, OpSum<float>>(const EltPack<float,
    1>* addr)
  - EltPack<float, 2> load<EltPack<float, 2>, true, OpSum<float>>(const EltPack<float,
    2>* addr)
  - EltPack<float, 4> load<EltPack<float, 4>, true, OpSum<float>>(const EltPack<float,
    4>* addr)
  - EltPack<half, 2> load<EltPack<half, 2>, true, OpSum<half>>(const EltPack<half,
    2>* addr)
  - EltPack<half, 1> load<EltPack<half, 1>, true, OpSum<half>>(const EltPack<half,
    1>* addr)
  - EltPack<half, 8> load<EltPack<half, 8>, true, OpSum<half>>(const EltPack<half,
    8>* addr)
  - EltPack<__nv_bfloat16, 2> load<EltPack<__nv_bfloat16, 2>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 2>* addr)
  - EltPack<__nv_bfloat16, 1> load<EltPack<__nv_bfloat16, 1>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 1>* addr)
  - EltPack<__nv_bfloat16, 8> load<EltPack<__nv_bfloat16, 8>, true, OpSum<__nv_bfloat16>>(const
    EltPack<__nv_bfloat16, 8>* addr)
  - EltPack<__nv_fp8_e4m3, 4> load<EltPack<__nv_fp8_e4m3, 4>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 4>* addr)
  - EltPack<__nv_fp8_e4m3, 2> load<EltPack<__nv_fp8_e4m3, 2>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 2>* addr)
  - EltPack<__nv_fp8_e4m3, 1> load<EltPack<__nv_fp8_e4m3, 1>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 1>* addr)
  - EltPack<__nv_fp8_e4m3, 16> load<EltPack<__nv_fp8_e4m3, 16>, true, OpSum<__nv_fp8_e4m3>>(const
    EltPack<__nv_fp8_e4m3, 16>* addr)
  - EltPack<__nv_fp8_e5m2, 4> load<EltPack<__nv_fp8_e5m2, 4>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 4>* addr)
  - EltPack<__nv_fp8_e5m2, 2> load<EltPack<__nv_fp8_e5m2, 2>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 2>* addr)
  - EltPack<__nv_fp8_e5m2, 1> load<EltPack<__nv_fp8_e5m2, 1>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 1>* addr)
  - EltPack<__nv_fp8_e5m2, 16> load<EltPack<__nv_fp8_e5m2, 16>, true, OpSum<__nv_fp8_e5m2>>(const
    EltPack<__nv_fp8_e5m2, 16>* addr)
  - EltPack<int32_t, 1> load<EltPack<int32_t, 1>, true, OpSum<int32_t>>(const EltPack<int32_t,
    1>* addr)
  - EltPack<int32_t, 4> load<EltPack<int32_t, 4>, true, OpSum<int32_t>>(const EltPack<int32_t,
    4>* addr)
  - EltPack<uint32_t, 1> load<EltPack<uint32_t, 1>, true, OpSum<uint32_t>>(const EltPack<uint32_t,
    1>* addr)
  - EltPack<uint32_t, 4> load<EltPack<uint32_t, 4>, true, OpSum<uint32_t>>(const EltPack<uint32_t,
    4>* addr)
  - EltPack<int64_t, 1> load<EltPack<int64_t, 1>, true, OpSum<int64_t>>(const EltPack<int64_t,
    1>* addr)
  - EltPack<int64_t, 2> load<EltPack<int64_t, 2>, true, OpSum<int64_t>>(const EltPack<int64_t,
    2>* addr)
  - EltPack<uint64_t, 1> load<EltPack<uint64_t, 1>, true, OpSum<uint64_t>>(const EltPack<uint64_t,
    1>* addr)
  - EltPack<uint64_t, 2> load<EltPack<uint64_t, 2>, true, OpSum<uint64_t>>(const EltPack<uint64_t,
    2>* addr)
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimem_st_global
  - nccl::utility::multimemStore
  - nccl::utility::store
  source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: LoadImpl
      pos:
        line_end: 43
        line_start: 23
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields: []
      item_type: struct
      name: LoadImpl<Pack, UseMultimem, RedOp, 0>
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields: []
      item_type: struct
      name: LoadImpl
      pos:
        line_end: 43
        line_start: 23
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields: []
      item_type: struct
      name: LoadImpl<Pack, UseMultimem, RedOp, 0>
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields: []
      item_type: struct
      name: LoadImpl
      pos:
        line_end: 43
        line_start: 23
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields: []
      item_type: struct
      name: LoadImpl<Pack, UseMultimem, RedOp, 0>
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields: []
      item_type: struct
      name: LoadImpl
      pos:
        line_end: 43
        line_start: 23
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields: []
      item_type: struct
      name: LoadImpl<Pack, UseMultimem, RedOp, 0>
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    typedefs: []
    union:
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[2]
        type: half
      item_type: union
      name: packed{raw}
      pos:
        line_end: 147
        line_start: 144
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[8]
        type: half
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 191
        line_start: 188
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[2]
        type: __nv_bfloat16
      item_type: union
      name: packed{raw}
      pos:
        line_end: 213
        line_start: 210
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[8]
        type: __nv_bfloat16
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 258
        line_start: 255
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[4]
        type: __nv_fp8_e4m3
      item_type: union
      name: packed{raw}
      pos:
        line_end: 294
        line_start: 291
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[16]
        type: __nv_fp8_e4m3
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 382
        line_start: 379
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[4]
        type: __nv_fp8_e5m2
      item_type: union
      name: packed{raw}
      pos:
        line_end: 415
        line_start: 412
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[16]
        type: __nv_fp8_e5m2
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 502
        line_start: 499
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: bytes[Bytes]
        type: char
      - name: u16[(Bytes + 1) / 2]
        type: uint16_t
      - name: u32[(Bytes + 3) / 4]
        type: uint32_t
      - name: u64[(Bytes + 7) / 8]
        type: uint64_t
      - name: f32[(Bytes + 3) / 4]
        type: float
      - name: f64[(Bytes + 7) / 8]
        type: double
      item_type: union
      name: BytePack
      pos:
        line_end: 659
        line_start: 652
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: eltPack
        type: Pack
      - name: bytePack
        type: BytePack<Pack::Bytes>
      item_type: union
      name: converter
      pos:
        line_end: 731
        line_start: 728
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[2]
        type: half
      item_type: union
      name: packed{raw}
      pos:
        line_end: 147
        line_start: 144
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[8]
        type: half
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 191
        line_start: 188
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[2]
        type: __nv_bfloat16
      item_type: union
      name: packed{raw}
      pos:
        line_end: 213
        line_start: 210
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[8]
        type: __nv_bfloat16
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 258
        line_start: 255
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[4]
        type: __nv_fp8_e4m3
      item_type: union
      name: packed{raw}
      pos:
        line_end: 294
        line_start: 291
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[16]
        type: __nv_fp8_e4m3
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 382
        line_start: 379
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[4]
        type: __nv_fp8_e5m2
      item_type: union
      name: packed{raw}
      pos:
        line_end: 415
        line_start: 412
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[16]
        type: __nv_fp8_e5m2
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 502
        line_start: 499
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: bytes[Bytes]
        type: char
      - name: u16[(Bytes + 1) / 2]
        type: uint16_t
      - name: u32[(Bytes + 3) / 4]
        type: uint32_t
      - name: u64[(Bytes + 7) / 8]
        type: uint64_t
      - name: f32[(Bytes + 3) / 4]
        type: float
      - name: f64[(Bytes + 7) / 8]
        type: double
      item_type: union
      name: BytePack
      pos:
        line_end: 659
        line_start: 652
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: eltPack
        type: Pack
      - name: bytePack
        type: BytePack<Pack::Bytes>
      item_type: union
      name: converter
      pos:
        line_end: 731
        line_start: 728
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[2]
        type: half
      item_type: union
      name: packed{raw}
      pos:
        line_end: 147
        line_start: 144
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[8]
        type: half
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 191
        line_start: 188
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[2]
        type: __nv_bfloat16
      item_type: union
      name: packed{raw}
      pos:
        line_end: 213
        line_start: 210
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[8]
        type: __nv_bfloat16
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 258
        line_start: 255
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[4]
        type: __nv_fp8_e4m3
      item_type: union
      name: packed{raw}
      pos:
        line_end: 294
        line_start: 291
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[16]
        type: __nv_fp8_e4m3
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 382
        line_start: 379
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[4]
        type: __nv_fp8_e5m2
      item_type: union
      name: packed{raw}
      pos:
        line_end: 415
        line_start: 412
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[16]
        type: __nv_fp8_e5m2
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 502
        line_start: 499
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: bytes[Bytes]
        type: char
      - name: u16[(Bytes + 1) / 2]
        type: uint16_t
      - name: u32[(Bytes + 3) / 4]
        type: uint32_t
      - name: u64[(Bytes + 7) / 8]
        type: uint64_t
      - name: f32[(Bytes + 3) / 4]
        type: float
      - name: f64[(Bytes + 7) / 8]
        type: double
      item_type: union
      name: BytePack
      pos:
        line_end: 659
        line_start: 652
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: eltPack
        type: Pack
      - name: bytePack
        type: BytePack<Pack::Bytes>
      item_type: union
      name: converter
      pos:
        line_end: 731
        line_start: 728
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[2]
        type: half
      item_type: union
      name: packed{raw}
      pos:
        line_end: 147
        line_start: 144
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[8]
        type: half
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 191
        line_start: 188
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[2]
        type: __nv_bfloat16
      item_type: union
      name: packed{raw}
      pos:
        line_end: 213
        line_start: 210
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[8]
        type: __nv_bfloat16
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 258
        line_start: 255
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[4]
        type: __nv_fp8_e4m3
      item_type: union
      name: packed{raw}
      pos:
        line_end: 294
        line_start: 291
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[16]
        type: __nv_fp8_e4m3
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 382
        line_start: 379
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw
        type: uint32_t
      - name: elts[4]
        type: __nv_fp8_e5m2
      item_type: union
      name: packed{raw}
      pos:
        line_end: 415
        line_start: 412
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: raw[4]
        type: uint32_t
      - name: elts[16]
        type: __nv_fp8_e5m2
      item_type: union
      name: packed{{raw[0], raw[1], raw[2], raw[3]}}
      pos:
        line_end: 502
        line_start: 499
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: bytes[Bytes]
        type: char
      - name: u16[(Bytes + 1) / 2]
        type: uint16_t
      - name: u32[(Bytes + 3) / 4]
        type: uint32_t
      - name: u64[(Bytes + 7) / 8]
        type: uint64_t
      - name: f32[(Bytes + 3) / 4]
        type: float
      - name: f64[(Bytes + 7) / 8]
        type: double
      item_type: union
      name: BytePack
      pos:
        line_end: 659
        line_start: 652
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
    - fields:
      - name: eltPack
        type: Pack
      - name: bytePack
        type: BytePack<Pack::Bytes>
      item_type: union
      name: converter
      pos:
        line_end: 731
        line_start: 728
        source_file: /src/nccl/src/include/nccl_device/impl/multimem__funcs.h
- function_names:
  - nccl::utility::getAlignment
  - nccl::utility::safeDiv
  - nccl::utility::computeCommonAlignment
  - nccl::utility::computeAlignmentForPackSize
  - nccl::utility::tryLambdaAlignmentForPackSize
  - nccl::utility::AlignmentResult<IntCount>::computeLambdaAlignmentOffsetWithFallback
  - nccl::utility::tryPointerPairAlignmentForPackSize
  - nccl::utility::computePointerPairAlignmentWithFallback
  - nccl::utility::tryStridedAlignmentForPackSize
  - nccl::utility::tryComplexStridedAlignmentForPackSize
  - nccl::utility::computeStridedAlignmentWithFallback
  - nccl::utility::EltPack<Y, n>::castPack
  - nccl::utility::EltPack<Y, 0>::castPack
  - nccl::utility::EltPack<float, 1>::castPack
  - nccl::utility::EltPack<float, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<float, 1>::castPack
  - nccl::utility::EltPack<float, 2>::castPack
  - nccl::utility::EltPack<__nv_bfloat16, 1>::castPack
  - nccl::utility::EltPack<__nv_bfloat16, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<__nv_fp8_e4m3, 1>::castPack
  - nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
  - nccl::utility::EltPack<__nv_fp8_e5m2, 1>::castPack
  - nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
  - nccl::utility::EltPack<T, n>::reducePack
  - nccl::utility::EltPack<T, 0>::reducePack
  - nccl::utility::EltPack<int8_t, 4>::reducePack
  - nccl::utility::EltPack<uint8_t, n>::reducePack
  - nccl::utility::EltPack<half, 2>::reducePack
  - nccl::utility::EltPack<__nv_bfloat16, 2>::reducePack
  - nccl::utility::getAlignment
  - nccl::utility::safeDiv
  - nccl::utility::computeCommonAlignment
  - nccl::utility::computeAlignmentForPackSize
  - nccl::utility::tryLambdaAlignmentForPackSize
  - nccl::utility::AlignmentResult<IntCount>::computeLambdaAlignmentOffsetWithFallback
  - nccl::utility::tryPointerPairAlignmentForPackSize
  - nccl::utility::computePointerPairAlignmentWithFallback
  - nccl::utility::tryStridedAlignmentForPackSize
  - nccl::utility::tryComplexStridedAlignmentForPackSize
  - nccl::utility::computeStridedAlignmentWithFallback
  - nccl::utility::EltPack<Y, n>::castPack
  - nccl::utility::EltPack<Y, 0>::castPack
  - nccl::utility::EltPack<float, 1>::castPack
  - nccl::utility::EltPack<float, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<float, 1>::castPack
  - nccl::utility::EltPack<float, 2>::castPack
  - nccl::utility::EltPack<__nv_bfloat16, 1>::castPack
  - nccl::utility::EltPack<__nv_bfloat16, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<__nv_fp8_e4m3, 1>::castPack
  - nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
  - nccl::utility::EltPack<__nv_fp8_e5m2, 1>::castPack
  - nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
  - nccl::utility::EltPack<T, n>::reducePack
  - nccl::utility::EltPack<T, 0>::reducePack
  - nccl::utility::EltPack<int8_t, 4>::reducePack
  - nccl::utility::EltPack<uint8_t, n>::reducePack
  - nccl::utility::EltPack<half, 2>::reducePack
  - nccl::utility::EltPack<__nv_bfloat16, 2>::reducePack
  - nccl::utility::getAlignment
  - nccl::utility::safeDiv
  - nccl::utility::computeCommonAlignment
  - nccl::utility::computeAlignmentForPackSize
  - nccl::utility::tryLambdaAlignmentForPackSize
  - nccl::utility::AlignmentResult<IntCount>::computeLambdaAlignmentOffsetWithFallback
  - nccl::utility::tryPointerPairAlignmentForPackSize
  - nccl::utility::computePointerPairAlignmentWithFallback
  - nccl::utility::tryStridedAlignmentForPackSize
  - nccl::utility::tryComplexStridedAlignmentForPackSize
  - nccl::utility::computeStridedAlignmentWithFallback
  - nccl::utility::EltPack<Y, n>::castPack
  - nccl::utility::EltPack<Y, 0>::castPack
  - nccl::utility::EltPack<float, 1>::castPack
  - nccl::utility::EltPack<float, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<float, 1>::castPack
  - nccl::utility::EltPack<float, 2>::castPack
  - nccl::utility::EltPack<__nv_bfloat16, 1>::castPack
  - nccl::utility::EltPack<__nv_bfloat16, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<__nv_fp8_e4m3, 1>::castPack
  - nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
  - nccl::utility::EltPack<__nv_fp8_e5m2, 1>::castPack
  - nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
  - nccl::utility::EltPack<T, n>::reducePack
  - nccl::utility::EltPack<T, 0>::reducePack
  - nccl::utility::EltPack<int8_t, 4>::reducePack
  - nccl::utility::EltPack<uint8_t, n>::reducePack
  - nccl::utility::EltPack<half, 2>::reducePack
  - nccl::utility::EltPack<__nv_bfloat16, 2>::reducePack
  - nccl::utility::getAlignment
  - nccl::utility::safeDiv
  - nccl::utility::computeCommonAlignment
  - nccl::utility::computeAlignmentForPackSize
  - nccl::utility::tryLambdaAlignmentForPackSize
  - nccl::utility::AlignmentResult<IntCount>::computeLambdaAlignmentOffsetWithFallback
  - nccl::utility::tryPointerPairAlignmentForPackSize
  - nccl::utility::computePointerPairAlignmentWithFallback
  - nccl::utility::tryStridedAlignmentForPackSize
  - nccl::utility::tryComplexStridedAlignmentForPackSize
  - nccl::utility::computeStridedAlignmentWithFallback
  - nccl::utility::EltPack<Y, n>::castPack
  - nccl::utility::EltPack<Y, 0>::castPack
  - nccl::utility::EltPack<float, 1>::castPack
  - nccl::utility::EltPack<float, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<float, 1>::castPack
  - nccl::utility::EltPack<float, 2>::castPack
  - nccl::utility::EltPack<__nv_bfloat16, 1>::castPack
  - nccl::utility::EltPack<__nv_bfloat16, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<half, 1>::castPack
  - nccl::utility::EltPack<half, 2>::castPack
  - nccl::utility::EltPack<__nv_fp8_e4m3, 1>::castPack
  - nccl::utility::EltPack<__nv_fp8_e4m3, 2>::castPack
  - nccl::utility::EltPack<__nv_fp8_e5m2, 1>::castPack
  - nccl::utility::EltPack<__nv_fp8_e5m2, 2>::castPack
  - nccl::utility::EltPack<T, n>::reducePack
  - nccl::utility::EltPack<T, 0>::reducePack
  - nccl::utility::EltPack<int8_t, 4>::reducePack
  - nccl::utility::EltPack<uint8_t, n>::reducePack
  - nccl::utility::EltPack<half, 2>::reducePack
  - nccl::utility::EltPack<__nv_bfloat16, 2>::reducePack
  source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: alignOffset
        type: IntCount
      - name: maxPackBytes
        type: int
      item_type: struct
      name: AlignmentResult
      pos:
        line_end: 166
        line_start: 163
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess
      pos:
        line_end: 382
        line_start: 377
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess<T, 1>
      pos:
        line_end: 391
        line_start: 385
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess<T, 0>
      pos:
        line_end: 400
        line_start: 394
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: alignOffset
        type: IntCount
      - name: maxPackBytes
        type: int
      item_type: struct
      name: AlignmentResult
      pos:
        line_end: 166
        line_start: 163
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess
      pos:
        line_end: 382
        line_start: 377
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess<T, 1>
      pos:
        line_end: 391
        line_start: 385
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess<T, 0>
      pos:
        line_end: 400
        line_start: 394
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: alignOffset
        type: IntCount
      - name: maxPackBytes
        type: int
      item_type: struct
      name: AlignmentResult
      pos:
        line_end: 166
        line_start: 163
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess
      pos:
        line_end: 382
        line_start: 377
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess<T, 1>
      pos:
        line_end: 391
        line_start: 385
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess<T, 0>
      pos:
        line_end: 400
        line_start: 394
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: alignOffset
        type: IntCount
      - name: maxPackBytes
        type: int
      item_type: struct
      name: AlignmentResult
      pos:
        line_end: 166
        line_start: 163
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess
      pos:
        line_end: 382
        line_start: 377
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess<T, 1>
      pos:
        line_end: 391
        line_start: 385
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields: []
      item_type: struct
      name: PackAccess<T, 0>
      pos:
        line_end: 400
        line_start: 394
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    typedefs: []
    union:
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 444
        line_start: 441
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 448
        line_start: 445
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 469
        line_start: 466
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf162PackAccess
      pos:
        line_end: 490
        line_start: 487
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 494
        line_start: 491
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf162PackAccess
      pos:
        line_end: 515
        line_start: 512
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 519
        line_start: 516
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 537
        line_start: 534
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E4m3Access1
      pos:
        line_end: 541
        line_start: 538
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 557
        line_start: 554
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 561
        line_start: 558
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E4m3Access2
      pos:
        line_end: 565
        line_start: 562
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 590
        line_start: 587
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E5m2Access1
      pos:
        line_end: 594
        line_start: 591
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 610
        line_start: 607
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 614
        line_start: 611
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E5m2Access2
      pos:
        line_end: 618
        line_start: 615
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 643
        line_start: 640
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E4m3Access1
      pos:
        line_end: 647
        line_start: 644
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 661
        line_start: 658
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 665
        line_start: 662
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E4m3Access2
      pos:
        line_end: 670
        line_start: 667
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 694
        line_start: 691
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E5m2Access1
      pos:
        line_end: 698
        line_start: 695
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 712
        line_start: 709
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 716
        line_start: 713
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E5m2Access2
      pos:
        line_end: 721
        line_start: 718
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<int8_t, 4>
      - name: word
        type: unsigned int
      item_type: union
      name: Int8PackAccess4
      pos:
        line_end: 780
        line_start: 777
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: u
        type: EltPack<uint8_t, n>
      - name: s
        type: EltPack<int8_t, n>
      item_type: union
      name: PackU8
      pos:
        line_end: 797
        line_start: 794
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 816
        line_start: 813
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf16PackAccess2
      pos:
        line_end: 842
        line_start: 839
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 444
        line_start: 441
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 448
        line_start: 445
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 469
        line_start: 466
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf162PackAccess
      pos:
        line_end: 490
        line_start: 487
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 494
        line_start: 491
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf162PackAccess
      pos:
        line_end: 515
        line_start: 512
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 519
        line_start: 516
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 537
        line_start: 534
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E4m3Access1
      pos:
        line_end: 541
        line_start: 538
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 557
        line_start: 554
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 561
        line_start: 558
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E4m3Access2
      pos:
        line_end: 565
        line_start: 562
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 590
        line_start: 587
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E5m2Access1
      pos:
        line_end: 594
        line_start: 591
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 610
        line_start: 607
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 614
        line_start: 611
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E5m2Access2
      pos:
        line_end: 618
        line_start: 615
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 643
        line_start: 640
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E4m3Access1
      pos:
        line_end: 647
        line_start: 644
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 661
        line_start: 658
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 665
        line_start: 662
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E4m3Access2
      pos:
        line_end: 670
        line_start: 667
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 694
        line_start: 691
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E5m2Access1
      pos:
        line_end: 698
        line_start: 695
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 712
        line_start: 709
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 716
        line_start: 713
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E5m2Access2
      pos:
        line_end: 721
        line_start: 718
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<int8_t, 4>
      - name: word
        type: unsigned int
      item_type: union
      name: Int8PackAccess4
      pos:
        line_end: 780
        line_start: 777
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: u
        type: EltPack<uint8_t, n>
      - name: s
        type: EltPack<int8_t, n>
      item_type: union
      name: PackU8
      pos:
        line_end: 797
        line_start: 794
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 816
        line_start: 813
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf16PackAccess2
      pos:
        line_end: 842
        line_start: 839
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 444
        line_start: 441
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 448
        line_start: 445
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 469
        line_start: 466
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf162PackAccess
      pos:
        line_end: 490
        line_start: 487
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 494
        line_start: 491
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf162PackAccess
      pos:
        line_end: 515
        line_start: 512
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 519
        line_start: 516
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 537
        line_start: 534
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E4m3Access1
      pos:
        line_end: 541
        line_start: 538
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 557
        line_start: 554
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 561
        line_start: 558
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E4m3Access2
      pos:
        line_end: 565
        line_start: 562
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 590
        line_start: 587
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E5m2Access1
      pos:
        line_end: 594
        line_start: 591
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 610
        line_start: 607
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 614
        line_start: 611
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E5m2Access2
      pos:
        line_end: 618
        line_start: 615
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 643
        line_start: 640
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E4m3Access1
      pos:
        line_end: 647
        line_start: 644
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 661
        line_start: 658
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 665
        line_start: 662
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E4m3Access2
      pos:
        line_end: 670
        line_start: 667
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 694
        line_start: 691
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E5m2Access1
      pos:
        line_end: 698
        line_start: 695
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 712
        line_start: 709
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 716
        line_start: 713
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E5m2Access2
      pos:
        line_end: 721
        line_start: 718
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<int8_t, 4>
      - name: word
        type: unsigned int
      item_type: union
      name: Int8PackAccess4
      pos:
        line_end: 780
        line_start: 777
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: u
        type: EltPack<uint8_t, n>
      - name: s
        type: EltPack<int8_t, n>
      item_type: union
      name: PackU8
      pos:
        line_end: 797
        line_start: 794
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 816
        line_start: 813
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf16PackAccess2
      pos:
        line_end: 842
        line_start: 839
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 444
        line_start: 441
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 448
        line_start: 445
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 469
        line_start: 466
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf162PackAccess
      pos:
        line_end: 490
        line_start: 487
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 494
        line_start: 491
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf162PackAccess
      pos:
        line_end: 515
        line_start: 512
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<float, 2>
      - name: pair
        type: float2
      item_type: union
      name: Float2PackAccess
      pos:
        line_end: 519
        line_start: 516
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 537
        line_start: 534
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E4m3Access1
      pos:
        line_end: 541
        line_start: 538
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 557
        line_start: 554
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 561
        line_start: 558
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E4m3Access2
      pos:
        line_end: 565
        line_start: 562
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 590
        line_start: 587
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E5m2Access1
      pos:
        line_end: 594
        line_start: 591
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 610
        line_start: 607
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 614
        line_start: 611
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E5m2Access2
      pos:
        line_end: 618
        line_start: 615
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 643
        line_start: 640
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E4m3Access1
      pos:
        line_end: 647
        line_start: 644
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 661
        line_start: 658
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 665
        line_start: 662
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e4m3, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E4m3Access2
      pos:
        line_end: 670
        line_start: 667
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half_raw
      - name: val
        type: half
      item_type: union
      name: HalfRawAccess
      pos:
        line_end: 694
        line_start: 691
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 1>
      - name: storage
        type: __nv_fp8_storage_t
      item_type: union
      name: Fp8E5m2Access1
      pos:
        line_end: 698
        line_start: 695
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: raw
        type: __half2_raw
      - name: val
        type: half2
      item_type: union
      name: Half2RawAccess
      pos:
        line_end: 712
        line_start: 709
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 716
        line_start: 713
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_fp8_e5m2, 2>
      - name: storage2
        type: __nv_fp8x2_storage_t
      item_type: union
      name: Fp8E5m2Access2
      pos:
        line_end: 721
        line_start: 718
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<int8_t, 4>
      - name: word
        type: unsigned int
      item_type: union
      name: Int8PackAccess4
      pos:
        line_end: 780
        line_start: 777
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: u
        type: EltPack<uint8_t, n>
      - name: s
        type: EltPack<int8_t, n>
      item_type: union
      name: PackU8
      pos:
        line_end: 797
        line_start: 794
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<half, 2>
      - name: pair
        type: half2
      item_type: union
      name: Half2PackAccess
      pos:
        line_end: 816
        line_start: 813
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
    - fields:
      - name: pack
        type: EltPack<__nv_bfloat16, 2>
      - name: pair
        type: __nv_bfloat162
      item_type: union
      name: Bf16PackAccess2
      pos:
        line_end: 842
        line_start: 839
        source_file: /src/nccl/src/include/nccl_device/impl/vector__funcs.h
- function_names:
  - ncclSymPtr<T>::operator ncclSymPtr<U>() const
  - '& ncclSymPtr<T>::operator+=(int d)'
  - '& ncclSymPtr<T>::operator+=(unsigned int d)'
  - '& ncclSymPtr<T>::operator+=(long d)'
  - '& ncclSymPtr<T>::operator+=(unsigned long d)'
  - '& ncclSymPtr<T>::operator+=(long long d)'
  - '& ncclSymPtr<T>::operator+=(unsigned long long d)'
  - '& ncclSymPtr<T>::operator-=(int d)'
  - '& ncclSymPtr<T>::operator-=(unsigned int d)'
  - '& ncclSymPtr<T>::operator-=(long d)'
  - '& ncclSymPtr<T>::operator-=(unsigned long d)'
  - '& ncclSymPtr<T>::operator-=(long long d)'
  - '& ncclSymPtr<T>::operator-=(unsigned long long d)'
  - ncclSymPtr<T>::localPtr
  - ncclSymPtr<T>::lsaPtr
  - ncclSymPtr<T>::peerPtr
  - ncclSymPtr<T>::peerPtr
  - ncclSymPtr<T>::multimemPtr
  - ncclSymPtr<T>::lsaMultimemPtr
  - ncclSymPtr<T> operator+(ncclSymPtr<T> p, Int d)
  - ncclSymPtr<T> operator-(ncclSymPtr<T> p, Int d)
  - operator-(ncclSymPtr<T> a, ncclSymPtr<T> b)
  - operator==(ncclSymPtr<T> a, ncclSymPtr<T> b)
  - operator!=(ncclSymPtr<T> a, ncclSymPtr<T> b)
  source_file: /src/nccl/src/include/nccl_device/impl/ptr__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclTeamWorld
  - ncclTeamLsa
  - ncclTeamRail
  - ncclTeamRankIsMember
  - ncclTeamRankToTeam
  - ncclTeamRankToWorld
  - ncclTeamRankToLsa
  - ncclTeamInnerFactor
  - ncclTeamOuterFactor
  - ncclTeamRankInDifference
  - ncclGetLocalPointer
  - ncclGetLsaPointer
  - ncclGetPeerPointer
  - ncclGetPeerPointer
  - ncclGetMultimemPointer
  - ncclGetLsaMultimemPointer
  - ncclWindow_t::ncclFindWindow
  - ncclGetResourceBufferOffset
  - ncclGetResourceBufferLocalPointer
  - ncclGetResourceBufferLsaPointer
  - ncclGetResourceBufferPeerPointer
  - ncclGetResourceBufferMultimemPointer
  - ncclGetResourceBufferLsaMultimemPointer
  - ncclSymPtr<char>::ncclGetResourceBuffer
  source_file: /src/nccl/src/include/nccl_device/impl/core__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/impl/barrier__types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nccl::gin::internal::windowOffsetToGinOffset
  - nccl::gin::internal::ncclGinWindow_t::getGinWindow
  - nccl::gin::internal::teamRankToGinRank
  - nccl::gin::internal::findSegmentFromWindow
  - nccl::gin::internal::getSegmentChunkSize
  - nccl::gin::internal::advanceSegmentCursor
  - nccl::gin::internal::windowOffsetToGinOffset
  - nccl::gin::internal::ncclGinWindow_t::getGinWindow
  - nccl::gin::internal::teamRankToGinRank
  - nccl::gin::internal::findSegmentFromWindow
  - nccl::gin::internal::getSegmentChunkSize
  - nccl::gin::internal::advanceSegmentCursor
  - nccl::gin::internal::windowOffsetToGinOffset
  - nccl::gin::internal::ncclGinWindow_t::getGinWindow
  - nccl::gin::internal::teamRankToGinRank
  - nccl::gin::internal::findSegmentFromWindow
  - nccl::gin::internal::getSegmentChunkSize
  - nccl::gin::internal::advanceSegmentCursor
  - nccl::gin::internal::windowOffsetToGinOffset
  - nccl::gin::internal::ncclGinWindow_t::getGinWindow
  - nccl::gin::internal::teamRankToGinRank
  - nccl::gin::internal::findSegmentFromWindow
  - nccl::gin::internal::getSegmentChunkSize
  - nccl::gin::internal::advanceSegmentCursor
  - nccl::gin::internal::windowOffsetToGinOffset
  - nccl::gin::internal::ncclGinWindow_t::getGinWindow
  - nccl::gin::internal::teamRankToGinRank
  - nccl::gin::internal::findSegmentFromWindow
  - nccl::gin::internal::getSegmentChunkSize
  - nccl::gin::internal::advanceSegmentCursor
  - nccl::gin::internal::windowOffsetToGinOffset
  - nccl::gin::internal::ncclGinWindow_t::getGinWindow
  - nccl::gin::internal::teamRankToGinRank
  - nccl::gin::internal::findSegmentFromWindow
  - nccl::gin::internal::getSegmentChunkSize
  - nccl::gin::internal::advanceSegmentCursor
  - nccl::gin::internal::windowOffsetToGinOffset
  - nccl::gin::internal::ncclGinWindow_t::getGinWindow
  - nccl::gin::internal::teamRankToGinRank
  - nccl::gin::internal::findSegmentFromWindow
  - nccl::gin::internal::getSegmentChunkSize
  - nccl::gin::internal::advanceSegmentCursor
  - nccl::gin::internal::windowOffsetToGinOffset
  - nccl::gin::internal::ncclGinWindow_t::getGinWindow
  - nccl::gin::internal::teamRankToGinRank
  - nccl::gin::internal::findSegmentFromWindow
  - nccl::gin::internal::getSegmentChunkSize
  - nccl::gin::internal::advanceSegmentCursor
  - ncclGinInitCommon
  - ncclGin_C_init
  - ncclGin_C_initWithResourceSharingMode
  - ncclGinCtx_M<beMask> ncclGin_BackendMask<beMask>::_makeCtx() const
  - ncclGin_C_makeCtx
  - ncclGin_isDescriptor
  - ncclGinDescriptorSmem* ncclGin_getDescriptor(Descriptor)
  - ncclGin_isDescriptor
  - ncclGinDescriptorSmem* ncclGin_getDescriptor(ncclGin_DescriptorSmem arg)
  - ncclGinSignalOp_t::ncclGin_getSignalOp
  - ncclGin_getSignalOpArg
  - ncclGinSignalDescriptor::ncclGin_getSignalDescriptor
  - ncclGinSignalDescriptor::ncclGin_getSignalDescriptor
  - ncclGinSignalOp_t::ncclGin_getSignalOp
  - ncclGin_getSignalOpArg
  - ncclGinSignalDescriptor::ncclGin_getSignalDescriptor
  - ncclGinSignalOp_t::ncclGin_getSignalOp
  - ncclGin_getSignalOpArg
  - ncclGinSignalDescriptor::ncclGin_getSignalDescriptor
  - ncclGinSignalOp_t::ncclGin_getSignalOp
  - ncclGin_getSignalOpArg
  - ncclGinSignalDescriptor::ncclGin_getSignalDescriptor
  - ncclGinSignalOp_t::ncclGin_getSignalOp
  - ncclGin_getSignalOpArg
  - ncclGin_isCounter
  - ncclGinCounter_t::ncclGin_getCounterId
  - ncclGin_isCounter
  - ncclGinCounter_t::ncclGin_getCounterId
  - ncclGin_isDeviceOnly
  - ncclGin_isDeviceOnly
  - ncclGin_isDeviceOnly
  - ncclGinPut_v2
  - ncclGinPut
  - ncclGin_BackendMask<beMask>::put
  - ncclGin_BackendMask<beMask>::put
  - ncclGin_BackendMask<beMask>::putValue
  - ncclGinPutValue_v2
  - ncclGinPutValue
  - ncclGin_BackendMask<beMask>::putValue
  - ncclGin_BackendMask<beMask>::signal
  - ncclGinSignal_v2
  - ncclGinSignal
  - ncclGin_BackendMask<beMask>::flush
  - ncclGinFlush
  - ncclGin_BackendMask<beMask>::waitCounter
  - ncclGinWaitCounter
  - ncclGin_BackendMask<beMask>::readCounter
  - ncclGinReadCounter
  - ncclGin_BackendMask<beMask>::getSignalShadowPtr
  - ncclGinGetSignalShadowPtr
  - ncclGin_BackendMask<beMask>::increaseSignalShadow
  - ncclGin_BackendMask<beMask>::readSignal
  - ncclGin_BackendMask<beMask>::readSignal
  - ncclGinReadSignal
  - ncclGin_BackendMask<beMask>::wait
  - ncclGin_BackendMask<beMask>::flushAsync
  - ncclGin_BackendMask<beMask>::get
  - ncclGinGet
  - ncclGin_BackendMask<beMask>::waitSignal
  - ncclGin_BackendMask<beMask>::waitSignal
  - ncclGinWaitSignal
  - ncclGin_BackendMask<beMask>::waitSignalMeetShadow
  - ncclGin_BackendMask<beMask>::waitSignalFollowShadow
  - ncclGin_BackendMask<beMask>::resetCounter
  - ncclGinResetCounter
  - ncclGin_BackendMask<beMask>::resetSignal
  - ncclGin_BackendMask<beMask>::resetSignal
  - ncclGinResetSignal
  source_file: /src/nccl/src/include/nccl_device/impl/gin__funcs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nccl::utility::reduceCopyLoopCoreImpl
  - nccl::utility::NCCL_IF_CONSTEXPR
  - nccl::utility::NCCL_IF_CONSTEXPR
  - nccl::utility::reduceCopyLoopCoreImpl
  - nccl::utility::NCCL_IF_CONSTEXPR
  - nccl::utility::NCCL_IF_CONSTEXPR
  - nccl::NCCL_IF_CONSTEXPR
  - nccl::NCCL_IF_CONSTEXPR
  - nccl::NCCL_IF_CONSTEXPR
  - nccl::NCCL_IF_CONSTEXPR
  - nccl::NCCL_IF_CONSTEXPR
  - nccl::utility::reduceCopyLoopCoreImpl
  - nccl::utility::NCCL_IF_CONSTEXPR
  - nccl::utility::NCCL_IF_CONSTEXPR
  - nccl::utility::reduceCopyLoopCoreImpl
  - nccl::utility::NCCL_IF_CONSTEXPR
  - nccl::utility::NCCL_IF_CONSTEXPR
  - nccl::NCCL_IF_CONSTEXPR
  - nccl::NCCL_IF_CONSTEXPR
  - nccl::NCCL_IF_CONSTEXPR
  - nccl::NCCL_IF_CONSTEXPR
  - nccl::NCCL_IF_CONSTEXPR
  - NCCL_IF_CONSTEXPR
  - reduceCopyLoopCore
  - ReduceCopyLoopParams
  - reduceCopyLoop
  - reduceCopyScalarLoop
  - reduceCopy
  source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: totalPacks
        type: IntCount
      - name: packsPerIteration
        type: IntCount
      - name: effectiveUnrollPacks
        type: int
      - name: numFullChunks
        type: IntCount
      - name: remainingPacks
        type: IntCount
      - name: processedElts
        type: IntCount
      item_type: struct
      name: ReduceCopyLoopParams
      pos:
        line_end: 354
        line_start: 307
        source_file: /src/nccl/src/include/nccl_device/impl/reduce_copy__impl.h
    typedefs: []
    union: []
- function_names:
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  - nccl::utility::elts
  source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Count
        type: int
      - name: Bytes
        type: int
      - name: Alignment
        type: int
      - name: bytes[Bytes]
        type: char
      item_type: struct
      name: EltPack
      pos:
        line_end: 43
        line_start: 32
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields:
      - name: Count
        type: int
      - name: Bytes
        type: int
      - name: Alignment
        type: int
      - name: '* bytes'
        type: char
      item_type: struct
      name: EltPack<T, 0>
      pos:
        line_end: 56
        line_start: 47
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType
      pos:
        line_end: 77
        line_start: 75
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<Red<T>>
      pos:
        line_end: 84
        line_start: 82
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<half>>
      pos:
        line_end: 90
        line_start: 88
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_bfloat16>>
      pos:
        line_end: 96
        line_start: 94
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_fp8_e4m3>>
      pos:
        line_end: 103
        line_start: 101
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_fp8_e5m2>>
      pos:
        line_end: 107
        line_start: 105
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<half>
      pos:
        line_end: 123
        line_start: 121
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_bfloat16>
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_fp8_e4m3>
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_fp8_e5m2>
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields:
      - name: Count
        type: int
      - name: Bytes
        type: int
      - name: Alignment
        type: int
      - name: bytes[Bytes]
        type: char
      item_type: struct
      name: EltPack
      pos:
        line_end: 43
        line_start: 32
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields:
      - name: Count
        type: int
      - name: Bytes
        type: int
      - name: Alignment
        type: int
      - name: '* bytes'
        type: char
      item_type: struct
      name: EltPack<T, 0>
      pos:
        line_end: 56
        line_start: 47
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType
      pos:
        line_end: 77
        line_start: 75
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<Red<T>>
      pos:
        line_end: 84
        line_start: 82
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<half>>
      pos:
        line_end: 90
        line_start: 88
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_bfloat16>>
      pos:
        line_end: 96
        line_start: 94
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_fp8_e4m3>>
      pos:
        line_end: 103
        line_start: 101
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_fp8_e5m2>>
      pos:
        line_end: 107
        line_start: 105
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<half>
      pos:
        line_end: 123
        line_start: 121
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_bfloat16>
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_fp8_e4m3>
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_fp8_e5m2>
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields:
      - name: Count
        type: int
      - name: Bytes
        type: int
      - name: Alignment
        type: int
      - name: bytes[Bytes]
        type: char
      item_type: struct
      name: EltPack
      pos:
        line_end: 43
        line_start: 32
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields:
      - name: Count
        type: int
      - name: Bytes
        type: int
      - name: Alignment
        type: int
      - name: '* bytes'
        type: char
      item_type: struct
      name: EltPack<T, 0>
      pos:
        line_end: 56
        line_start: 47
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType
      pos:
        line_end: 77
        line_start: 75
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<Red<T>>
      pos:
        line_end: 84
        line_start: 82
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<half>>
      pos:
        line_end: 90
        line_start: 88
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_bfloat16>>
      pos:
        line_end: 96
        line_start: 94
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_fp8_e4m3>>
      pos:
        line_end: 103
        line_start: 101
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_fp8_e5m2>>
      pos:
        line_end: 107
        line_start: 105
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<half>
      pos:
        line_end: 123
        line_start: 121
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_bfloat16>
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_fp8_e4m3>
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_fp8_e5m2>
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields:
      - name: Count
        type: int
      - name: Bytes
        type: int
      - name: Alignment
        type: int
      - name: bytes[Bytes]
        type: char
      item_type: struct
      name: EltPack
      pos:
        line_end: 43
        line_start: 32
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields:
      - name: Count
        type: int
      - name: Bytes
        type: int
      - name: Alignment
        type: int
      - name: '* bytes'
        type: char
      item_type: struct
      name: EltPack<T, 0>
      pos:
        line_end: 56
        line_start: 47
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType
      pos:
        line_end: 77
        line_start: 75
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<Red<T>>
      pos:
        line_end: 84
        line_start: 82
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<half>>
      pos:
        line_end: 90
        line_start: 88
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_bfloat16>>
      pos:
        line_end: 96
        line_start: 94
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_fp8_e4m3>>
      pos:
        line_end: 103
        line_start: 101
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: AccumulateType<OpSum<__nv_fp8_e5m2>>
      pos:
        line_end: 107
        line_start: 105
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<half>
      pos:
        line_end: 123
        line_start: 121
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_bfloat16>
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_fp8_e4m3>
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    - fields: []
      item_type: struct
      name: MinMultimemType<__nv_fp8_e5m2>
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/nccl/src/include/nccl_device/impl/vector__types.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/impl/comm__types.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: entries[32]
        type: "struct Entry {\n    uintptr_t base, size;\n    ncclWindow_t window;\n
          \ }"
      - name: '* next'
        type: struct ncclDevCommWindowTable
      item_type: struct
      name: ncclDevCommWindowTable
      pos:
        line_end: 22
        line_start: 16
        source_file: /src/nccl/src/include/nccl_device/impl/comm__types.h
    - fields:
      - name: base
        type: uintptr_t
      - name: window
        type: ncclWindow_t
      item_type: struct
      name: Entry
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/nccl/src/include/nccl_device/impl/comm__types.h
    - fields:
      - name: magic
        type: unsigned int
      - name: version
        type: unsigned int
      - name: rank
        type: int
      - name: nRanks_rcp32
        type: uint32_t
      - name: lsaRank
        type: int
      - name: lsaSize_rcp32
        type: uint32_t
      - name: windowTable
        type: ncclDevCommWindowTable_t
      - name: resourceWindow
        type: ncclWindow_t
      - name: resourceWindow_inlined
        type: struct ncclResourceWindow_vidmem
      - name: lsaMultimem
        type: ncclMultimemHandle_t
      - name: lsaBarrier
        type: ncclLsaBarrierHandle_t
      - name: railGinBarrier
        type: ncclGinBarrierHandle_t
      - name: ginConnectionCount
        type: uint8_t
      - name: ginNetDeviceTypes[NCCL_GIN_MAX_CONNECTIONS]
        type: uint8_t
      - name: '* ginHandles[NCCL_GIN_MAX_CONNECTIONS]'
        type: void
      - name: ginSignalCount
        type: int
      - name: ginCounterCount
        type: int
      - name: '* ginSignalShadows'
        type: uint64_t
      - name: ginContextCount
        type: uint32_t
      - name: ginIsRailed
        type: bool
      - name: '* abortFlag'
        type: uint32_t
      - name: hybridLsaBarrier
        type: ncclLsaBarrierHandle_t
      - name: hybridRailGinBarrier
        type: ncclGinBarrierHandle_t
      - name: worldGinBarrier
        type: ncclGinBarrierHandle_t
      item_type: struct
      name: ncclDevComm
      pos:
        line_end: 61
        line_start: 26
        source_file: /src/nccl/src/include/nccl_device/impl/comm__types.h
    typedefs:
    - item_type: typedef
      name: '* ncclDevCommWindowTable_t'
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/nccl/src/include/nccl_device/impl/comm__types.h
      type: ncclDevCommWindowTable
    union: []
- function_names:
  - decltype(auto)::ncclGinCallImpl
  - decltype(auto)::ncclGinCall
  - decltype(auto)::ncclGinCall
  source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
  types:
    enum:
    - enumerators:
      - name: ncclGinOptFlagsDefault
        value: '0'
      - name: ncclGinOptFlagsMaySkipCreditCheck
        value: (1 << 0)
      - name: ncclGinOptFlagsAggregateRequests
        value: (1 << 1)
      item_type: enum
      name: ncclGinOptFlags
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - enumerators:
      - name: NCCL_GIN_RESOURCE_SHARING_GPU
        value: '0'
      - name: NCCL_GIN_RESOURCE_SHARING_CTA
        value: '1'
      item_type: enum
      name: ncclGinResourceSharingMode
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - enumerators:
      - name: NCCL_GIN_SIGNAL_TYPE_NONE
      - name: NCCL_GIN_SIGNAL_TYPE_VA
      - name: NCCL_GIN_SIGNAL_TYPE_INDEXED
      item_type: enum
      name: ncclGinSignalType
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GIN_HAS_FENCE_ACQUIRE_RELEASE_PTX
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_GIN_PROXY_ENABLE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_GIN_GDAKI_ENABLE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_GIN_GDAKI_ENABLE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_GIN_BACKEND_MASK_ALL
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
      type_or_value: "(((NCCL_GIN_PROXY_ENABLE) ? 1u : 0u) << (unsigned)NCCL_NET_DEVICE_GIN_PROXY
        | \\\n   ((NCCL_GIN_GDAKI_ENABLE) ? 1u : 0u) << (unsigned)NCCL_NET_DEVICE_GIN_GDAKI)"
    structs:
    - fields:
      - name: backendMask
        type: unsigned
      - name: backend
        type: ncclNetDeviceType
      - name: rank
        type: int
      - name: nRanks
        type: int
      - name: '* handle'
        type: void
      - name: contextId
        type: int
      - name: resourceSharingMode
        type: uint8_t
      item_type: struct
      name: ncclGinCtx
      pos:
        line_end: 59
        line_start: 51
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields: []
      item_type: struct
      name: ncclGinCtx_M
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields:
      - name: space[64]
        type: char
      item_type: struct
      name: ncclGinDescriptorSmem
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields:
      - name: type
        type: ncclGinSignalType
      item_type: struct
      name: ncclGinSignalDescriptor
      pos:
        line_end: 86
        line_start: 74
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields:
      - name: "call(ncclGinCtx, ncclGinRequest_t& outRequest, bool hasDescriptor,\n
          \                                     ncclGinDescriptorSmem* descriptor,
          cuda::memory_order ord, uint32_t* abortFlag)"
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGinApi_Wait
      pos:
        line_end: 94
        line_start: 91
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields:
      - name: call(ncclGinCtx, uint32_t peer, ncclGinRequest_t* outRequest, uint32_t
          optFlags)
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGinApi_FlushAsync
      pos:
        line_end: 99
        line_start: 97
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields: []
      item_type: struct
      name: ncclGinApi_Get
      pos:
        line_end: 108
        line_start: 102
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields: []
      item_type: struct
      name: ncclGinApi_Put
      pos:
        line_end: 122
        line_start: 111
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields: []
      item_type: struct
      name: ncclGinApi_PutValue
      pos:
        line_end: 134
        line_start: 125
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields:
      - name: '* call(ncclGinCtx, int peer, ncclGinSignal_t signalId)'
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGinApi_GetSignalPtr
      pos:
        line_end: 139
        line_start: 137
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields:
      - name: '* call(ncclGinCtx, int peer, ncclGinCounter_t counterId)'
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGinApi_GetCounterPtr
      pos:
        line_end: 144
        line_start: 142
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields:
      - name: call(ncclGinCtx, ncclGinSignalDescriptor signal)
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGinApi_ResetSignal
      pos:
        line_end: 149
        line_start: 147
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields:
      - name: call(ncclGinCtx, ncclGinCounter_t counterId)
        type: NCCL_DEVICE_INLINE
      item_type: struct
      name: ncclGinApi_ResetCounter
      pos:
        line_end: 154
        line_start: 152
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    - fields: []
      item_type: struct
      name: ncclGinApi_Flush
      pos:
        line_end: 160
        line_start: 157
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_common.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/gin/gin_device_api.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/gin/gin_device_host_common.h
  types:
    enum:
    - enumerators:
      - name: ncclGinSignalInc
        value: '0'
      - name: ncclGinSignalAdd
      item_type: enum
      name: ncclGinSignalOp_t
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_host_common.h
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GIN_MAX_CONNECTIONS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_host_common.h
      type_or_value: '4'
    structs: []
    typedefs:
    - item_type: typedef
      name: '*ncclGinGpuCtx_t'
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_host_common.h
      type: ncclGinGpuCtx
    - item_type: typedef
      name: '*ncclGinWindow_t'
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/nccl_device/gin/gin_device_host_common.h
      type: void
    union: []
- function_names:
  - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
  - nccl::gin::gdaki::putImplMode
  - nccl::gin::gdaki::putImpl
  - nccl::gin::gdaki::putValueImplMode
  - nccl::gin::gdaki::putValueImpl
  - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
  - nccl::gin::gdaki::putImplMode
  - nccl::gin::gdaki::putImpl
  - nccl::gin::gdaki::putValueImplMode
  - nccl::gin::gdaki::putValueImpl
  - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
  - nccl::gin::gdaki::putImplMode
  - nccl::gin::gdaki::putImpl
  - nccl::gin::gdaki::putValueImplMode
  - nccl::gin::gdaki::putValueImpl
  - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
  - nccl::gin::gdaki::putImplMode
  - nccl::gin::gdaki::putImpl
  - nccl::gin::gdaki::putValueImplMode
  - nccl::gin::gdaki::putValueImpl
  - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
  - nccl::gin::gdaki::putImplMode
  - nccl::gin::gdaki::putImpl
  - nccl::gin::gdaki::putValueImplMode
  - nccl::gin::gdaki::putValueImpl
  - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
  - nccl::gin::gdaki::putImplMode
  - nccl::gin::gdaki::putImpl
  - nccl::gin::gdaki::putValueImplMode
  - nccl::gin::gdaki::putValueImpl
  - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
  - nccl::gin::gdaki::putImplMode
  - nccl::gin::gdaki::putImpl
  - nccl::gin::gdaki::putValueImplMode
  - nccl::gin::gdaki::putValueImpl
  - nccl::gin::gdaki::docaOptFlagsFromGinOptFlags
  - nccl::gin::gdaki::putImplMode
  - nccl::gin::gdaki::putImpl
  - nccl::gin::gdaki::putValueImplMode
  - nccl::gin::gdaki::putValueImpl
  - call
  - call
  - call
  - call
  - call
  - call
  - call
  - call
  - call
  - call
  source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOCA_GPUNETIO_VERBS_ENABLE_DEBUG
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
      type_or_value: '1'
    structs:
    - fields:
      - name: peer
        type: int
      - name: docaTicket
        type: doca_gpu_dev_verbs_ticket_t
      item_type: struct
      name: ncclGinGdakiRequest
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    - fields: []
      item_type: struct
      name: ncclGinApi_Get<NCCL_NET_DEVICE_GIN_GDAKI>
      pos:
        line_end: 264
        line_start: 238
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    - fields: []
      item_type: struct
      name: ncclGinApi_FlushAsync<NCCL_NET_DEVICE_GIN_GDAKI>
      pos:
        line_end: 282
        line_start: 267
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    - fields: []
      item_type: struct
      name: ncclGinApi_Wait<NCCL_NET_DEVICE_GIN_GDAKI>
      pos:
        line_end: 304
        line_start: 285
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    - fields: []
      item_type: struct
      name: ncclGinApi_Put<NCCL_NET_DEVICE_GIN_GDAKI>
      pos:
        line_end: 338
        line_start: 307
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    - fields: []
      item_type: struct
      name: ncclGinApi_PutValue<NCCL_NET_DEVICE_GIN_GDAKI>
      pos:
        line_end: 369
        line_start: 341
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    - fields: []
      item_type: struct
      name: ncclGinApi_ResetCounter<NCCL_NET_DEVICE_GIN_GDAKI>
      pos:
        line_end: 378
        line_start: 372
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    - fields: []
      item_type: struct
      name: ncclGinApi_ResetSignal<NCCL_NET_DEVICE_GIN_GDAKI>
      pos:
        line_end: 392
        line_start: 381
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    - fields: []
      item_type: struct
      name: ncclGinApi_GetCounterPtr<NCCL_NET_DEVICE_GIN_GDAKI>
      pos:
        line_end: 401
        line_start: 395
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    - fields: []
      item_type: struct
      name: ncclGinApi_GetSignalPtr<NCCL_NET_DEVICE_GIN_GDAKI>
      pos:
        line_end: 410
        line_start: 404
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    - fields: []
      item_type: struct
      name: ncclGinApi_Flush<NCCL_NET_DEVICE_GIN_GDAKI>
      pos:
        line_end: 443
        line_start: 413
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki_device_host_common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GIN_GDAKI_VERSION
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki_device_host_common.h
      type_or_value: '200'
    structs:
    - fields:
      - name: '*buffer'
        type: T
      - name: '*rkeys'
        type: __be32
      - name: lkey
        type: __be32
      - name: offset
        type: unsigned int
      item_type: struct
      name: ncclGinGdakiGlobalGPUBufferTable
      pos:
        line_end: 21
        line_start: 16
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki_device_host_common.h
    - fields:
      - name: '*gdqp'
        type: struct doca_gpu_dev_verbs_qp
      - name: '*companion_gdqp'
        type: struct doca_gpu_dev_verbs_qp
      - name: counters_table
        type: struct ncclGinGdakiGlobalGPUBufferTable<uint64_t>
      - name: signals_table
        type: struct ncclGinGdakiGlobalGPUBufferTable<uint64_t>
      - name: sink_buffer_lkey
        type: __be32
      item_type: struct
      name: ncclGinGdakiGPUContext
      pos:
        line_end: 31
        line_start: 23
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki_device_host_common.h
    - fields:
      - name: '*rkeys'
        type: __be32
      - name: lkey
        type: __be32
      item_type: struct
      name: ncclGinGdakiMemHandle
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/nccl/src/include/nccl_device/gin/gdaki/gin_gdaki_device_host_common.h
    typedefs: []
    union: []
- function_names:
  - nccl::gin::proxy::waitForGfdComplete
  - nccl::gin::proxy::flush
  - nccl::gin::proxy::postGfd
  - nccl::gin::proxy::buildGfd
  - nccl::gin::proxy::constructProxyOp
  - nccl::gin::proxy::get
  - nccl::gin::proxy::put
  - nccl::gin::proxy::waitForGfdComplete
  - nccl::gin::proxy::flush
  - nccl::gin::proxy::postGfd
  - nccl::gin::proxy::buildGfd
  - nccl::gin::proxy::constructProxyOp
  - nccl::gin::proxy::get
  - nccl::gin::proxy::put
  - nccl::gin::proxy::waitForGfdComplete
  - nccl::gin::proxy::flush
  - nccl::gin::proxy::postGfd
  - nccl::gin::proxy::buildGfd
  - nccl::gin::proxy::constructProxyOp
  - nccl::gin::proxy::get
  - nccl::gin::proxy::put
  - nccl::gin::proxy::waitForGfdComplete
  - nccl::gin::proxy::flush
  - nccl::gin::proxy::postGfd
  - nccl::gin::proxy::buildGfd
  - nccl::gin::proxy::constructProxyOp
  - nccl::gin::proxy::get
  - nccl::gin::proxy::put
  - nccl::gin::proxy::waitForGfdComplete
  - nccl::gin::proxy::flush
  - nccl::gin::proxy::postGfd
  - nccl::gin::proxy::buildGfd
  - nccl::gin::proxy::constructProxyOp
  - nccl::gin::proxy::get
  - nccl::gin::proxy::put
  - nccl::gin::proxy::waitForGfdComplete
  - nccl::gin::proxy::flush
  - nccl::gin::proxy::postGfd
  - nccl::gin::proxy::buildGfd
  - nccl::gin::proxy::constructProxyOp
  - nccl::gin::proxy::get
  - nccl::gin::proxy::put
  - nccl::gin::proxy::waitForGfdComplete
  - nccl::gin::proxy::flush
  - nccl::gin::proxy::postGfd
  - nccl::gin::proxy::buildGfd
  - nccl::gin::proxy::constructProxyOp
  - nccl::gin::proxy::get
  - nccl::gin::proxy::put
  - nccl::gin::proxy::waitForGfdComplete
  - nccl::gin::proxy::flush
  - nccl::gin::proxy::postGfd
  - nccl::gin::proxy::buildGfd
  - nccl::gin::proxy::constructProxyOp
  - nccl::gin::proxy::get
  - nccl::gin::proxy::put
  - call
  - call
  - call
  - call
  - call
  - call
  - call
  - call
  - call
  - call
  source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: peer
        type: int
      - name: nextGfdIdx
        type: uint32_t
      item_type: struct
      name: ncclGinCpuProxyRequest
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    - fields: []
      item_type: struct
      name: ncclGinApi_Get<NCCL_NET_DEVICE_GIN_PROXY>
      pos:
        line_end: 265
        line_start: 254
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    - fields: []
      item_type: struct
      name: ncclGinApi_FlushAsync<NCCL_NET_DEVICE_GIN_PROXY>
      pos:
        line_end: 277
        line_start: 268
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    - fields: []
      item_type: struct
      name: ncclGinApi_Wait<NCCL_NET_DEVICE_GIN_PROXY>
      pos:
        line_end: 297
        line_start: 279
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    - fields: []
      item_type: struct
      name: ncclGinApi_GetCounterPtr<NCCL_NET_DEVICE_GIN_PROXY>
      pos:
        line_end: 306
        line_start: 300
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    - fields: []
      item_type: struct
      name: ncclGinApi_ResetCounter<NCCL_NET_DEVICE_GIN_PROXY>
      pos:
        line_end: 315
        line_start: 309
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    - fields: []
      item_type: struct
      name: ncclGinApi_GetSignalPtr<NCCL_NET_DEVICE_GIN_PROXY>
      pos:
        line_end: 324
        line_start: 318
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    - fields: []
      item_type: struct
      name: ncclGinApi_ResetSignal<NCCL_NET_DEVICE_GIN_PROXY>
      pos:
        line_end: 337
        line_start: 327
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    - fields: []
      item_type: struct
      name: ncclGinApi_Flush<NCCL_NET_DEVICE_GIN_PROXY>
      pos:
        line_end: 350
        line_start: 340
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    - fields: []
      item_type: struct
      name: ncclGinApi_Put<NCCL_NET_DEVICE_GIN_PROXY>
      pos:
        line_end: 371
        line_start: 353
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    - fields: []
      item_type: struct
      name: ncclGinApi_PutValue<NCCL_NET_DEVICE_GIN_PROXY>
      pos:
        line_end: 390
        line_start: 374
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy_device_host_common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GIN_PROXY_VERSION
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy_device_host_common.h
      type_or_value: '100'
    - item_type: preproc_def
      name: NCCL_GIN_PROXY_GFD_VERSION
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy_device_host_common.h
      type_or_value: '1'
    structs:
    - fields:
      - name: qword[ncclGinProxyGfdQwords]
        type: ncclGinProxyQword_t
      item_type: struct
      name: ncclGinProxyGfd_t
      pos:
        line_end: 135
        line_start: 133
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy_device_host_common.h
    - fields:
      - name: nranks
        type: int
      - name: queueSize
        type: uint32_t
      - name: '*queues'
        type: ncclGinProxyGfd_t
      - name: '*pis'
        type: uint32_t
      - name: '*cis'
        type: uint32_t
      - name: '*counters'
        type: uint64_t
      - name: '*signals'
        type: uint64_t
      item_type: struct
      name: ncclGinProxyGpuCtx_t
      pos:
        line_end: 149
        line_start: 139
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy_device_host_common.h
    typedefs: []
    union:
    - fields:
      - name: raw
        type: uint64_t
      - name: flag
        type: "struct {\n    uint64_t v : 1;\n    uint64_t resv : 63;\n  } __attribute__((packed))"
      - name: header
        type: "struct {\n    uint64_t flag : 1;\n    uint64_t version : 4;\n    uint64_t
          resv : 2;\n    uint64_t size : 57;\n  } __attribute__((packed))"
      - name: srcOff
        type: "struct {\n    // the last bit is the flag, so we support 63 bit VAs\n
          \   uint64_t flag : 1;\n    uint64_t srcOff : 63;\n  } __attribute__((packed))"
      - name: srcHandle
        type: "struct {\n    // the last bit is the flag, so we support 63 bit VAs\n
          \   uint64_t flag : 1;\n    uint64_t srcHandle : 63;\n  } __attribute__((packed))"
      - name: vaSignalOff
        type: "struct {\n    // the last bit is the flag, so we support 63 bit VAs\n
          \   uint64_t flag : 1;\n    uint64_t vaSignalOff : 63;\n  } __attribute__((packed))"
      - name: vaSignalHandle
        type: "struct {\n    // the last bit is the flag, so we support 63 bit VAs\n
          \   uint64_t flag : 1;\n    uint64_t vaSignalHandle : 63;\n  } __attribute__((packed))"
      - name: inlineLow
        type: "struct {\n    uint8_t flag : 1;\n    uint8_t resv : 7;\n    uint32_t
          inlineValLow;\n    uint16_t inlineValLow2;\n  } __attribute__((packed))"
      - name: inlineHigh
        type: "struct {\n    uint8_t flag : 1;\n    uint8_t resv : 7;\n    uint16_t
          inlineValHigh;\n    uint8_t resv1;\n    uint32_t resv2;\n  } __attribute__((packed))"
      - name: dstOff
        type: "struct {\n    // the last bit is the flag, so we support 63 bit VAs\n
          \   uint64_t flag : 1;\n    uint64_t dstOff : 63;\n  } __attribute__((packed))"
      - name: dstHandle
        type: "struct {\n    // the last bit is the flag, so we support 63 bit VAs\n
          \   uint64_t flag : 1;\n    uint64_t dstHandle : 63;\n  } __attribute__((packed))"
      - name: completion
        type: "struct {\n    uint8_t flag : 1;\n    // We need to keep the size of
          counterId and signalId in sync with the\n    // NCCL_GIN_COUNTER_POOL_SIZE
          / NCCL_GIN_SIGNAL_POOL_SIZE upper limits\n    // in gin_host.cc.\n    //
          must be non-zero if WITH_COUNTER is set\n    uint32_t counterId : 23;\n
          \   // must be non-zero if WITH_SIGNAL_INC, WITH_SIGNAL_ADD, or WITH_SIGNAL_SET
          is set\n    uint32_t signalId : 24;\n    uint16_t signalValLow;\n  } __attribute__((packed))"
      - name: signalVal
        type: "struct {\n    uint8_t flag : 1;\n    uint8_t resv : 7;\n    uint16_t
          signalValLow2;\n    uint32_t signalValHigh;\n  } __attribute__((packed))"
      - name: headerExt
        type: "struct {\n    uint8_t flag : 1;\n    uint8_t resv : 7;\n    uint16_t
          op;\n    uint8_t resv2;\n    uint32_t resv3;\n  } __attribute__((packed))"
      item_type: union
      name: ncclGinProxyQword_t
      pos:
        line_end: 111
        line_start: 31
        source_file: /src/nccl/src/include/nccl_device/gin/proxy/gin_proxy_device_host_common.h
- function_names: []
  source_file: /src/nccl/src/include/os/linux.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_INVALID_SOCKET
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/include/os/linux.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_POLLIN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/nccl/src/include/os/linux.h
      type_or_value: POLLIN
    - item_type: preproc_def
      name: NCCL_POLLERR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/include/os/linux.h
      type_or_value: POLLHUP
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclSocketDescriptor
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/nccl/src/include/os/linux.h
      type: int
    - item_type: typedef
      name: ncclAffinity
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/nccl/src/include/os/linux.h
      type: cpu_set_t
    - item_type: typedef
      name: ncclPid_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/nccl/src/include/os/linux.h
      type: pid_t
    union: []
- function_names: []
  source_file: /src/nccl/src/include/os/windows.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/nccl/src/include/os/windows.h
      type_or_value: '0x0600'
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/include/os/windows.h
      type_or_value: _stricmp
    - item_type: preproc_def
      name: strncasecmp
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/os/windows.h
      type_or_value: _strnicmp
    - item_type: preproc_def
      name: SHUT_WR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/include/os/windows.h
      type_or_value: SD_SEND
    - item_type: preproc_def
      name: NCCL_INVALID_SOCKET
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/include/os/windows.h
      type_or_value: INVALID_SOCKET
    - item_type: preproc_def
      name: NCCL_POLLIN
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/src/include/os/windows.h
      type_or_value: POLLRDNORM
    - item_type: preproc_def
      name: NCCL_POLLERR
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/nccl/src/include/os/windows.h
      type_or_value: (POLLHUP | POLLERR | POLLNVAL)
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclSocketDescriptor
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/nccl/src/include/os/windows.h
      type: SOCKET
    - item_type: typedef
      name: ncclAffinity
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/nccl/src/include/os/windows.h
      type: DWORD_PTR
    - item_type: typedef
      name: ncclPid_t
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/nccl/src/include/os/windows.h
      type: unsigned long
    union: []
- function_names: []
  source_file: /src/nccl/src/include/rma/rma.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ctx
        type: int
      - name: func
        type: ncclFunc_t
      - name: nRmaTasks
        type: int
      - name: nRmaTasksProxy
        type: int
      - name: nRmaTasksCe
        type: int
      item_type: struct
      name: ncclRmaArgs
      pos:
        line_end: 27
        line_start: 21
        source_file: /src/nccl/src/include/rma/rma.h
    - fields:
      - name: rmaProxyState
        type: struct ncclRmaProxyState
      - name: rmaCeState
        type: struct ncclRmaCeState
      item_type: struct
      name: ncclRmaState
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/nccl/src/include/rma/rma.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/rma/rma_ce.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct ncclRmaCeInitTask
      - name: '* comm'
        type: struct ncclComm
      item_type: struct
      name: ncclRmaCeInitTask
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/nccl/src/include/rma/rma_ce.h
    - fields:
      - name: '*comm'
        type: struct ncclComm
      - name: '* signalOpSeqs'
        type: uint64_t
      - name: '*signalOpSeqsDev'
        type: uint64_t
      - name: '* signalsHost'
        type: uint64_t
      - name: '* signalsWin'
        type: struct ncclDevrWindow
      - name: '*signalsDev'
        type: uint64_t
      - name: '*graphSignalsDev'
        type: uint64_t
      - name: '*graphAckDev'
        type: uint64_t
      - name: signalOffset
        type: size_t
      - name: graphSignalOffset
        type: size_t
      - name: graphAckOffset
        type: size_t
      - name: '*signalConstDev'
        type: uint64_t
      - name: '*signalConstOneDev'
        type: uint64_t
      - name: '*signalConstZeroDev'
        type: uint64_t
      item_type: struct
      name: ncclRmaCeCtx
      pos:
        line_end: 51
        line_start: 22
        source_file: /src/nccl/src/include/rma/rma_ce.h
    - fields:
      - name: initialized
        type: bool
      - name: rmaCeCtxCount
        type: int
      - name: '** rmaCeCtxs'
        type: void
      - name: ceStream
        type: cudaStream_t
      - name: ceEvent
        type: cudaEvent_t
      item_type: struct
      name: ncclRmaCeState
      pos:
        line_end: 60
        line_start: 54
        source_file: /src/nccl/src/include/rma/rma_ce.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/rma/rma_proxy.h
  types:
    enum:
    - enumerators:
      - name: ncclRmaDescStateInit
        value: '0'
      - name: ncclRmaDescStateReady
        value: '1'
      - name: ncclRmaDescStateInProgress
        value: '2'
      item_type: enum
      name: ncclRmaDescState_t
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/nccl/src/include/rma/rma_proxy.h
    - enumerators:
      - name: ncclRmaDescTypePutSignal
        value: '0'
      - name: ncclRmaDescTypeWaitSignal
      item_type: enum
      name: ncclRmaDescType_t
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/nccl/src/include/rma/rma_proxy.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*signalMhandle'
        type: void
      - name: offset
        type: uint64_t
      - name: val
        type: uint64_t
      - name: op
        type: uint32_t
      item_type: struct
      name: ncclRmaSignal_t
      pos:
        line_end: 31
        line_start: 26
        source_file: /src/nccl/src/include/rma/rma_proxy.h
    - fields:
      - name: srcOff
        type: uint64_t
      - name: '*srcHandle'
        type: void
      - name: dstOff
        type: uint64_t
      - name: '*dstHandle'
        type: void
      - name: size
        type: size_t
      - name: targetRank
        type: int
      - name: signal
        type: ncclRmaSignal_t
      - name: '* request'
        type: void
      item_type: struct
      name: ncclRmaPutSignalDesc
      pos:
        line_end: 56
        line_start: 44
        source_file: /src/nccl/src/include/rma/rma_proxy.h
    - fields:
      - name: npeers
        type: int
      - name: '* waitPeers'
        type: int
      - name: '* waitSignals'
        type: int
      - name: needFlush
        type: int
      item_type: struct
      name: ncclRmaWaitSignalDesc
      pos:
        line_end: 64
        line_start: 58
        source_file: /src/nccl/src/include/rma/rma_proxy.h
    - fields:
      - name: '*next'
        type: struct ncclRmaProxyDesc
      - name: rmaDescType
        type: ncclRmaDescType_t
      - name: rmaDescState
        type: ncclRmaDescState_t
      - name: opSeq
        type: uint64_t
      - name: '* readySeq'
        type: uint64_t
      - name: '* readySeqDev'
        type: uint64_t
      - name: '* readySeqGdrHandle'
        type: void
      - name: '* doneSeq'
        type: uint64_t
      - name: '* doneSeqDev'
        type: uint64_t
      - name: '* doneSeqGdrHandle'
        type: void
      - name: '* persistPlan'
        type: struct ncclKernelPlan
      - name: persistDescValid
        type: bool
      item_type: struct
      name: ncclRmaProxyDesc
      pos:
        line_end: 90
        line_start: 66
        source_file: /src/nccl/src/include/rma/rma_proxy.h
    - fields:
      - name: '*comm'
        type: struct ncclComm
      - name: '*ginCollComm'
        type: void
      - name: '*ginCtx'
        type: void
      - name: '*devHandle'
        type: ncclNetDeviceHandle_t
      - name: props
        type: ncclNetProperties_t
      - name: queueSize
        type: size_t
      - name: '** circularBuffers'
        type: struct ncclRmaProxyDesc
      - name: '* pis'
        type: uint32_t
      - name: '* cis'
        type: uint32_t
      - name: '* inProgressQueues'
        type: struct ncclIntruQueue<struct ncclRmaProxyDesc, &ncclRmaProxyDesc::next>
      - name: '* opSeqs'
        type: uint64_t
      - name: '* opSeqsDev'
        type: uint64_t
      - name: '* opSeqsGdrHandle'
        type: void
      - name: '* readySeqs'
        type: uint64_t
      - name: '* readySeqsDev'
        type: uint64_t
      - name: '* readySeqsGdrHandle'
        type: void
      - name: '* doneSeqs'
        type: uint64_t
      - name: '* doneSeqsDev'
        type: uint64_t
      - name: '* doneSeqsGdrHandle'
        type: void
      - name: signalsCumemhandle
        type: CUmemGenericAllocationHandle
      - name: '*signalsMhandle'
        type: void
      - name: '*signalsGinHandle'
        type: void
      - name: '*signalsDev'
        type: uint64_t
      - name: '* signalsHost'
        type: uint64_t
      - name: '* persistentQueues'
        type: struct ncclIntruQueue<struct ncclRmaProxyDesc, &ncclRmaProxyDesc::next>
      - name: '*cpuAccessSignalsGdrHandle'
        type: void
      - name: '*cpuAccessSignalsMhandle'
        type: void
      - name: '*cpuAccessSignalsGinHandle'
        type: void
      - name: '*cpuAccessSignals'
        type: uint64_t
      - name: '*cpuAccessSignalsDev'
        type: uint64_t
      - name: '* cpuAccessSignalsHost'
        type: uint64_t
      - name: flushBufCumemhandle
        type: CUmemGenericAllocationHandle
      - name: '*flushBufMhandle'
        type: void
      - name: '*flushBufGinHandle'
        type: void
      - name: '*flushBufDev'
        type: uint64_t
      item_type: struct
      name: ncclRmaProxyCtx
      pos:
        line_end: 152
        line_start: 92
        source_file: /src/nccl/src/include/rma/rma_proxy.h
    - fields:
      - name: '*comm'
        type: struct ncclComm
      - name: '* ncclGin'
        type: ncclGin_t
      - name: '* ginInstance'
        type: void
      - name: connected
        type: bool
      - name: ginType
        type: int
      - name: ginCommCount
        type: int
      - name: '* ginComms[NCCL_GIN_MAX_CONNECTIONS]'
        type: void
      - name: props[NCCL_GIN_MAX_CONNECTIONS]
        type: ncclNetProperties_t
      - name: rmaProxyCtxCount
        type: int
      - name: '** rmaProxyCtxs'
        type: void
      - name: '** rmaProxyDevHandles'
        type: ncclNetDeviceHandle_t
      - name: needsProxyProgress
        type: int
      - name: ginProgress
        type: int
      - name: thread
        type: std::thread
      - name: mutex
        type: std::mutex
      - name: cond
        type: std::condition_variable
      - name: asyncResult
        type: ncclResult_t
      item_type: struct
      name: ncclRmaProxyState
      pos:
        line_end: 177
        line_start: 154
        source_file: /src/nccl/src/include/rma/rma_proxy.h
    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:
  - ncclRegLocalIsValid
  - ncclRegister
  - regCleanup
  - ncclRegCleanup
  - ncclCommRegister
  - ncclCommGraphRegister
  - commDeregister
  - ncclCommDeregister
  - ncclCommGraphDeregister
  source_file: /src/nccl/src/register/register.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - socketProgress
  - socketWait
  - ncclSocketToPort
  - ncclSocketShutdown
  - ncclSocketGetFd
  - ncclSocketSetFd
  - ncclSocketListen
  - ncclSocketToString
  - ncclEnvSocketFamily
  - ncclFindInterfaces
  - ncclSocketGetAddrFromString
  - ncclSocketGetAddr
  - socketFinalizeAccept
  - ncclSocketPollConnect
  - socketFinalizeConnect
  - socketProgressState
  - ncclSocketReady
  - ncclSocketConnect
  - ncclSocketAccept
  - ncclSocketInit
  - ncclSocketProgress
  - ncclSocketWait
  - ncclSocketSend
  - ncclSocketRecv
  - ncclSocketSendRecv
  - ncclSocketMultiOp
  - ncclSocketTryRecv
  source_file: /src/nccl/src/misc/socket.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclShmOpen
  - ncclShmClose
  - ncclShmUnlink
  - ncclShmemAllgather
  source_file: /src/nccl/src/misc/shmutils.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - userHomeDir
  - setEnvFile
  - initEnvFunc
  - initEnv
  - ncclGetCachePolicy
  - 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: 77
        line_start: 76
        source_file: /src/nccl/src/misc/ibvsymbols.cc
      type_or_value: '"IBVERBS_1.1"'
    - item_type: preproc_def
      name: NCCL_IBVERBS_LIBS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/nccl/src/misc/ibvsymbols.cc
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclIsCuMemSupported
  - ncclCuMemEnable
  - ncclCuMemHostEnable
  - DECLARE_CUDA_PFN
  - LOAD_SYM
  - LOAD_SYM
  - LOAD_SYM
  - cudaPfnFuncLoader
  - initOnceFunc
  - ncclCudaLibraryInit
  - ncclCuStreamBatchMemOp
  source_file: /src/nccl/src/misc/cudawrap.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CUDA_DRIVER_MIN_VERSION
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/nccl/src/misc/cudawrap.cc
      type_or_value: '11030'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclGetGitVersion
  source_file: /src/nccl/src/misc/git_version.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GIT_VERSION_STRING
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/src/misc/git_version.cc
      type_or_value: '"NCCL git version " NCCL_GIT_BRANCH " " NCCL_GIT_COMMIT_HASH'
    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: 34
        line_start: 33
        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: 16
        line_start: 15
        source_file: /src/nccl/src/misc/strongstream.cc
      type_or_value: cudaStreamGetCaptureInfo
    - item_type: preproc_def
      name: cudaGraphAddDependencies_v2
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/misc/strongstream.cc
      type_or_value: cudaGraphAddDependencies
    - item_type: preproc_def
      name: cudaStreamUpdateCaptureDependencies_v2
      pos:
        line_end: 18
        line_start: 17
        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: 27
        line_start: 21
        source_file: /src/nccl/src/misc/strongstream.cc
    typedefs: []
    union: []
- function_names:
  - ncclCudaCompCap
  - int64ToBusId
  - busIdToInt64
  - pciPathToInt64
  - getBusId
  - getHostName
  - getWindowsMachineGuid
  - getHostHashOnce
  - getHostHash
  - hashCombine
  - getPidHash
  - parseStringList
  - matchIf
  - matchPort
  - matchIfList
  - ncclMemoryStack::allocateSpilled
  - ncclMemoryStackDestruct
  - ncclBitsToString
  - ncclHashPointer
  - readKey
  - readNextPtr
  - writeNextPtr
  - ncclIntruAddressMapInsert_untyped
  - ncclIntruAddressMapFind_untyped
  - ncclIntruAddressMapRemove_untyped
  source_file: /src/nccl/src/misc/utils.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOSTID_FILE
      pos:
        line_end: 96
        line_start: 95
        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
  - wrap_mlx5dv_query_device
  - wrap_mlx5dv_create_qp
  source_file: /src/nccl/src/misc/mlx5dvwrap.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getGdrMutex
  - LOAD_SYM
  - LOAD_SYM_OPTIONAL
  - initOnceFunc
  - wrap_gdr_symbols
  - wrap_gdr_open
  - wrap_gdr_close
  - wrap_gdr_pin_buffer
  - ncclGdrPinV2Available
  - wrap_gdr_pin_buffer_v2
  - 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: 37
        line_start: 36
        source_file: /src/nccl/src/misc/gdrwrap.cc
      type_or_value: '"gdrapi.dll"'
    - item_type: preproc_def
      name: GDRAPI_LIBNAME
      pos:
        line_end: 39
        line_start: 38
        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
  - ncclNvmlDeviceGetPlatformInfo
  - ncclNvmlGetCCStatus
  source_file: /src/nccl/src/misc/nvmlwrap.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: nvmlReturn_t
      pos:
        line_end: 201
        line_start: 191
        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: 80
        line_start: 80
        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: 57
        line_start: 54
        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: 57
        line_start: 54
        source_file: /src/nccl/src/misc/nvmlwrap.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
  - ibvWcStatusStr
  - ibvWcOpcodeStr
  - ibvWrOpcodeStr
  source_file: /src/nccl/src/misc/ibvwrap.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PtrCheck
  - CommCheck
  - registrationCheck
  - ncclArgsGlobalCheck
  - ArgsCheck
  source_file: /src/nccl/src/misc/argcheck.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: isSymRegistered
        type: bool
      - name: bigOffset
        type: uintptr_t
      - name: userOffset
        type: uintptr_t
      item_type: struct
      name: symBufInfo
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/nccl/src/misc/argcheck.cc
    typedefs: []
    union: []
- function_names:
  - ncclParamIsCacheDisabled
  - ncclParamEnvPluginGet
  source_file: /src/nccl/src/param/param.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclParamRegistryInstance
  - ncclParamRegistry::add
  - ncclParamRegistry::find
  - ncclParamRegistry::remove
  source_file: /src/nccl/src/param/param_registry.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - unwrap
  - ncclParamCheckFlag
  - ncclParamBind
  - NCCL_PARAM_DEFINE_TYPED_GETTER
  - ncclParamGetStr
  - ncclParamGet
  - ncclParamGetAllParameterKeys
  - ncclParamGetParameter
  - ncclParamDumpAll
  source_file: /src/nccl/src/param/c_api.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/nccl/src/param/ncclparam.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rasLocalHandleAddRanks
  - rasRanksConvertToPeers
  - rasPeersUpdate
  - rasPeerFind
  - rasNetUpdatePeers
  - rasLinkPropagateUpdate
  - rasConnPropagateUpdate
  - rasConnSendPeersUpdate
  - rasMsgHandlePeersUpdate
  - rasLinkReinitConns
  - rasLinkCalculatePeer
  - rasPeerDeclareDead
  - rasPeerInfoToString
  - rasNewPeerNotify
  - rasDeadPeersUpdate
  - getNewDeadEntry
  - rasPeerIsDead
  - rasAddrRankInitCompare
  - rasAddrPeerInfoCompare
  - rasRanksCompare
  - ncclSocketsCompare
  - ncclSocketsSameNode
  - rasPeersDump
  - rasDeadPeersDump
  - rasPeerDump
  - rasPeerToString
  - 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: 35
        line_start: 27
        source_file: /src/nccl/src/ras/ras.cc
    typedefs: []
    union: []
- function_names:
  - STR2
  - STR
  - printUsage
  - parseArgs
  - socketWrite
  - rasRead
  - setOutputFormat
  - getNCCLStatus
  - monitorNCCLEvents
  - main
  source_file: /src/nccl/src/ras/client.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TIMEOUT_INCREMENT
      pos:
        line_end: 24
        line_start: 23
        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
  - jsonWriteHeader
  - jsonStartCommunicator
  - jsonWriteRankData
  - jsonStartMissingRanks
  - jsonWriteMissingRank
  - jsonEndCommunicator
  - jsonWriteFooter
  - rasGpuDevsToString
  - rasGpuToString
  - rasCommRankGpuToString
  - ncclErrorToString
  - ncclSocketToHost
  - rasDumpCommsToJSON
  - rasCountIsOutlier
  - rasClientsNotifyEvent
  - 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: 22
        line_start: 21
        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: 24
        line_start: 23
        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: 26
        line_start: 25
        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: 99
        line_start: 98
        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: 37
        line_start: 33
        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: 72
        line_start: 62
        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: 80
        line_start: 77
        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: 88
        line_start: 85
        source_file: /src/nccl/src/ras/client_support.cc
    typedefs: []
    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: 11
        line_start: 10
        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: 12
        line_start: 11
        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: 14
        line_start: 13
        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: 15
        line_start: 14
        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: 190
        line_start: 189
        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: 193
        line_start: 192
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: (1000000000LL)
    - item_type: preproc_def
      name: RAS_KEEPALIVE_INTERVAL
      pos:
        line_end: 196
        line_start: 195
        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: 200
        line_start: 199
        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: 204
        line_start: 203
        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: 207
        line_start: 206
        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: 210
        line_start: 209
        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: 214
        line_start: 213
        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: 217
        line_start: 216
        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: 220
        line_start: 219
        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: 223
        line_start: 222
        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: 227
        line_start: 226
        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: 230
        line_start: 229
        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: 51
        line_start: 48
        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: 77
        line_start: 54
        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
      item_type: struct
      name: rasCollResponse
      pos:
        line_end: 94
        line_start: 80
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: addr
        type: union ncclSocketAddress
      - name: pid
        type: ncclPid_t
      - name: cudaDevs
        type: uint64_t
      - name: nvmlDevs
        type: uint64_t
      - name: hostHash
        type: uint64_t
      item_type: struct
      name: rasPeerInfo
      pos:
        line_end: 105
        line_start: 98
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: type
        type: rasMsgType
      item_type: struct
      name: rasMsg
      pos:
        line_end: 150
        line_start: 109
        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: 238
        line_start: 232
        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: 269
        line_start: 242
        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
      item_type: struct
      name: rasCollConns
      pos:
        line_end: 289
        line_start: 272
        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: 283
        line_start: 279
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: nComms
        type: int
      item_type: struct
      name: rasCollComms
      pos:
        line_end: 326
        line_start: 292
        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
      item_type: struct
      name: comm
      pos:
        line_end: 320
        line_start: 294
        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: 312
        line_start: 299
        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: 337
        line_start: 331
        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: 350
        line_start: 341
        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: 368
        line_start: 356
        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: 416
        line_start: 372
        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: 450
        line_start: 428
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: '* eventType'
        type: char
      - name: '* details'
        type: char
      - name: '* peerInfo'
        type: struct rasPeerInfo
      - name: '* peerAddr'
        type: union ncclSocketAddress
      item_type: struct
      name: rasEventNotification
      pos:
        line_end: 482
        line_start: 477
        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: outputFormat
        type: rasOutputFormat
      - name: monitorMask
        type: uint8_t
      - name: '* coll'
        type: struct rasCollective
      item_type: struct
      name: rasClient
      pos:
        line_end: 508
        line_start: 484
        source_file: /src/nccl/src/ras/ras_internal.h
    typedefs: []
    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
  - xmlGetChar
  - xmlGetValue
  - xmlGetToken
  - xmlSkipComment
  - xmlGetNode
  - xmlLoadSub
  - ncclTopoConvertXml
  - ncclTopoDumpXmlRec
  - ncclTopoDumpXmlToFile
  - ncclTopoFuseXml
  - ncclTopoXmlLoadNvlink
  - ncclTopoXmlLoadPciLink
  - ncclTopoXmlLoadC2c
  - ncclTopoXmlLoadGpu
  - ncclTopoXmlLoadNet
  - ncclTopoXmlLoadNic
  - ncclTopoXmlLoadPci
  - ncclTopoXmlLoadCpu
  - ncclTopoXmlLoadSystem
  - ncclTopoGetXmlFromFile
  - 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: 23
        line_start: 22
        source_file: /src/nccl/src/graph/xml.cc
      type_or_value: '1024'
    - item_type: preproc_def
      name: BUSID_SIZE
      pos:
        line_end: 412
        line_start: 411
        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: 413
        line_start: 412
        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: 33
        line_start: 30
        source_file: /src/nccl/src/graph/xml.cc
    typedefs:
    - item_type: typedef
      name: (*xmlHandlerFunc_t)(FILE*, struct ncclXml*, struct ncclXmlNode*)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/nccl/src/graph/xml.cc
      type: ncclResult_t
    union:
    - fields:
      - name: vendor[12]
        type: char
      item_type: union
      name: cpuid0
      pos:
        line_end: 517
        line_start: 509
        source_file: /src/nccl/src/graph/xml.cc
    - fields:
      - name: val
        type: uint32_t
      item_type: union
      name: cpuid1
      pos:
        line_end: 541
        line_start: 529
        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
  - NCCL_TOPO_GPU_LOCAL_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: 17
        line_start: 16
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '5000.0'
    - item_type: preproc_def
      name: SM60_NVLINK_BW
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '18.0'
    - item_type: preproc_def
      name: SM70_NVLINK_BW
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '20.0'
    - item_type: preproc_def
      name: SM80_NVLINK_BW
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '20.0'
    - item_type: preproc_def
      name: SM90_NVLINK_BW
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '20.6'
    - item_type: preproc_def
      name: SM86_NVLINK_BW
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '12.0'
    - item_type: preproc_def
      name: SM100_NVLINK_BW
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '40.1'
    - item_type: preproc_def
      name: PCI_BW
      pos:
        line_end: 24
        line_start: 23
        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: 25
        line_start: 24
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '16.0'
    - item_type: preproc_def
      name: BDW_QPI_BW
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '6.0'
    - item_type: preproc_def
      name: SKL_QPI_BW
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '10.0'
    - item_type: preproc_def
      name: SRP_QPI_BW
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '22.0'
    - item_type: preproc_def
      name: ERP_QPI_BW
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '40.0'
    - item_type: preproc_def
      name: ZPI_BW
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '6.0'
    - item_type: preproc_def
      name: YONGFENG_ZPI_BW
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '9.0'
    - item_type: preproc_def
      name: P9_BW
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '32.0'
    - item_type: preproc_def
      name: ARM_BW
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '6.0'
    - item_type: preproc_def
      name: NET_BW
      pos:
        line_end: 34
        line_start: 33
        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: 40
        line_start: 39
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '8'
    - item_type: preproc_def
      name: GPU
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PCI
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CPU
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: 3 // Actually NUMA domains
    - item_type: preproc_def
      name: NIC
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NET
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '5'
    - item_type: preproc_def
      name: GIN
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '6'
    - item_type: preproc_def
      name: DEV
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '7'
    - item_type: preproc_def
      name: LINK_LOC
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LINK_NVL
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LINK_C2C
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '3'
    - item_type: preproc_def
      name: LINK_PCI
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '4'
    - item_type: preproc_def
      name: LINK_SYS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '9'
    - item_type: preproc_def
      name: LINK_NET
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '10'
    - item_type: preproc_def
      name: NCCL_TOPO_MAX_LINKS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '576'
    - item_type: preproc_def
      name: NCCL_TOPO_MAX_HOPS
      pos:
        line_end: 75
        line_start: 74
        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: 84
        line_start: 83
        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: 86
        line_start: 85
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '0x00ffffffffffffff'
    - item_type: preproc_def
      name: NCCL_TOPO_GPU_LOCAL_RANK_SHIFT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '40'
    - item_type: preproc_def
      name: NCCL_TOPO_XML_MAX_NODES
      pos:
        line_end: 192
        line_start: 191
        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: 193
        line_start: 192
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '65536'
    structs:
    - fields:
      - name: type
        type: int
      - name: bw
        type: float
      - name: '* remNode'
        type: struct ncclTopoNode
      item_type: struct
      name: ncclTopoLink
      pos:
        line_end: 71
        line_start: 67
        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: 81
        line_start: 76
        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: 139
        line_start: 93
        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: 144
        line_start: 141
        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
      - name: inter
        type: int
      item_type: struct
      name: ncclTopoSystem
      pos:
        line_end: 154
        line_start: 146
        source_file: /src/nccl/src/graph/topo.h
    - fields:
      - name: coll
        type: bool
      - name: gin
        type: bool
      - name: net
        type: bool
      - name: netPluginIndex
        type: int
      - name: maxDevsPerNic
        type: int
      - name: dmaBufSupport
        type: bool
      - name: mergeLevel
        type: int
      - name: '* forceMerge'
        type: char
      - name: (*getDevCount)(int, int*, int*)
        type: ncclResult_t
      - name: (*setVirtDevCount)(int, int)
        type: ncclResult_t
      - name: '* name'
        type: char
      - name: (*getProperties)(int, ncclNetProperties_t*)
        type: ncclResult_t
      - name: (*makeVDevice)(int*, ncclNetVDeviceProps_t*)
        type: ncclResult_t
      - name: (*devices)(int*)
        type: ncclResult_t
      item_type: struct
      name: ncclTopoNetInfo
      pos:
        line_end: 186
        line_start: 167
        source_file: /src/nccl/src/graph/topo.h
    typedefs: []
    union: []
- function_names:
  - getNthreads
  - parseList
  - ncclPatEnable
  - getNetOverhead
  - ncclTopoInitTunerConstants
  - ncclTopoTuneModel
  - ncclTopoGetAlgoTime
  source_file: /src/nccl/src/graph/tuning.cc
  types:
    enum: []
    preproc_defs: []
    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
  - ncclTopoComputeP2pChannelsPerPeer
  - ncclTopoComputeP2pChannels
  - ncclTopoGetNvbGpus
  - ncclTopoGetGpuMinPath
  - ncclTopoGetGpuMaxPath
  - ncclTopoPathAllNVLink
  - ncclTopoPathAllDirectNVLink
  - 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: 21
        line_start: 18
        source_file: /src/nccl/src/graph/paths.cc
    typedefs: []
    union: []
- function_names:
  - findLocalCpu
  - ncclTopoGetInterCpuBw
  - ncclTopoGetNode
  - ncclTopoCreateNode
  - ncclTopoRemoveNode
  - ncclTopoConnectNodes
  - getBcmGen
  - ncclTopoFlattenBcmSwitches
  - ncclTopoConnectCpus
  - ncclTopoPrintRec
  - ncclTopoPrint
  - ncclTopoSort
  - ncclTopoSortSystem
  - ncclTopoGetMinNetBw
  - ncclTopoAddNet
  - ncclTopoAddGin
  - ncclTopoAddNic
  - ncclTopoAddGpu
  - ncclTopoGetIntDevice
  - ncclTopoAddPci
  - ncclGetSystemId
  - ncclTopoAddCpu
  - ncclTopoXmlIsPrimaryGpuForDev
  - ncclTopoAddNvLinks
  - ncclTopoAddPciLinks
  - ncclTopoAddC2c
  - ncclTopoGetSystemFromXml
  - xmlInitAttrInt
  - xmlInitAttrUint64
  - xmlInitAttrFloat
  - ncclTopoRefreshBcmP2pLinks
  - ncclTopoCheckPix
  - top
  - pop
  - push
  - empty
  - ncclFindFirstPciParent
  - ncclTopoGetPath
  - ncclTopoMakeUniqueBusId
  - ncclTopoMakePciParent
  - ncclTopoMakeVnic
  - ncclTopoForceMerge
  - ncclTopoAutoMerge
  - ncclTopoFindLinkWidthRec
  - ncclTopoFindLinkWidth
  - ncclTopoWidenLinks
  - ncclTopoGetVNicParent
  - ncclTopoMakeVNics
  - ncclTopoPopulateNics
  - ncclTopoProcessNet
  - ncclTopoGetFusionEnv
  - ncclTopoGetSystem
  - ncclTopoGetLocal
  - getLocalNetCountByBw
  - getNetDevsPolicyOnce
  - ncclTopoGetNetDevsPolicy
  - ncclTopoGetLocalNetType
  - ncclTopoGetLocalNet
  - ncclTopoGetLocalGinDev
  - ncclTopoGetLocalGinDevs
  - ncclTopoGetLocalGpu
  - ncclTopoCpuType
  - ncclTopoGetCpuAffinity
  - ncclTopoGetGpuCount
  - ncclTopoGetNetCount
  - ncclTopoGetNvsCount
  - ncclTopoGetCompCap
  - ncclCheckMultiRank
  source_file: /src/nccl/src/graph/topo.cc
  types:
    enum:
    - enumerators:
      - name: ncclNvLinkDeviceUnknown
      - name: ncclNvLinkDeviceBridge
      - name: ncclNvLinkDeviceGpu
      - name: ncclNvLinkDeviceSwitch
      item_type: enum
      name: ncclNvLinkDeviceType
      pos:
        line_end: 91
        line_start: 86
        source_file: /src/nccl/src/graph/topo.cc
    preproc_defs:
    - item_type: preproc_def
      name: BUSID_SIZE
      pos:
        line_end: 28
        line_start: 27
        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: 29
        line_start: 28
        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: 491
        line_start: 490
        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: 894
        line_start: 893
        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: 924
        line_start: 894
        source_file: /src/nccl/src/graph/topo.cc
    typedefs: []
    union: []
- function_names:
  - xmlMemSize
  - xmlAlloc
  - xmlGetAttrIndex
  - xmlGetAttr
  - xmlGetAttrStr
  - xmlGetAttrInt
  - xmlGetAttrIntDefault
  - xmlGetAttrUint64
  - xmlGetAttrUint64Default
  - 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: 19
        line_start: 18
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '255'
    - item_type: preproc_def
      name: MAX_ATTR_COUNT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_SUBS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '640'
    - item_type: preproc_def
      name: NODE_TYPE_NONE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NODE_TYPE_OPEN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NODE_TYPE_CLOSE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NODE_TYPE_SINGLE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_TOPO_XML_VERSION
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_GRAPH_XML_VERSION
      pos:
        line_end: 50
        line_start: 49
        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: 38
        line_start: 27
        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: 43
        line_start: 40
        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: 406
        line_start: 403
        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
  - ncclTopoSearchCheckNet
  - ncclTopoSearchRecGpu
  - ncclTopoSearchRecNet
  - ncclTopoSearchParams
  - ncclTopoSearchRec
  - ncclTopoGetChannelFromXml
  - ncclTopoGetGraphFromXmlSub
  - ncclTopoGetGraphFromXml
  - ncclTopoGetXmlFromChannel
  - ncclTopoGetXmlFromGraph
  - ncclTopoGetXmlFromGraphs
  - ncclTopoDupChannels
  - ncclTopoCheckCrossNicSupport
  - ncclTopoCheckNicFused
  - 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: 317
        line_start: 316
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (1ULL<<19)
    - item_type: preproc_def
      name: NCCL_SEARCH_TIMEOUT
      pos:
        line_end: 318
        line_start: 317
        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: 319
        line_start: 318
        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: 320
        line_start: 319
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (1<<8)
    - item_type: preproc_def
      name: FORCED_ORDER_PCI
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: FORCED_ORDER_REPLAY
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: NSPEEDSINTRA
      pos:
        line_end: 987
        line_start: 986
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (sizeof(speedArrayIntra)/sizeof(float))
    - item_type: preproc_def
      name: NSPEEDSINTER
      pos:
        line_end: 988
        line_start: 987
        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: 992
        line_start: 991
        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: 993
        line_start: 992
        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: 997
        line_start: 996
        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: 998
        line_start: 997
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (sizeof(sm100SpeedArrayInter)/sizeof(float))
    - item_type: preproc_def
      name: CHARS_PER_GPU_ENTRY
      pos:
        line_end: 1255
        line_start: 1254
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: '48'
    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: 190
        line_start: 182
        source_file: /src/nccl/src/graph/search.cc
    typedefs: []
    union: []
- function_names:
  - ncclGinBarrierCreateRequirement
  source_file: /src/nccl/src/nccl_device/gin_barrier.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclLsaBarrierCreateRequirement
  source_file: /src/nccl/src/nccl_device/lsa_barrier.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclTeamWorld
  - ncclTeamLsa
  - ncclTeamRail
  - ncclTeamRankToWorld
  - ncclTeamRankToLsa
  source_file: /src/nccl/src/nccl_device/core.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclGinOutboxCreateRequirement
  - ncclGinInboxA2ACreateRequirement
  source_file: /src/nccl/src/nccl_device/gin_scratch.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclLLA2ACalcSlots
  - ncclLLA2ACreateRequirement
  source_file: /src/nccl/src/nccl_device/ll_a2a.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - saveDlError
  - ncclOsDlopen
  - ncclOsDlsym
  - ncclOsDlerror
  - ncclOsDlopen
  - ncclOsDlclose
  - ncclOsGetPid
  - ncclOsLocaltime
  - ncclOsGetTid
  - ncclOsGetPageSize
  - ncclOsAlignedAlloc
  - ncclOsAlignedFree
  - ncclOsSetEnv
  - ncclOsInitialize
  - ncclOsSetFilesLimit
  - ncclOsSocketDescriptorIsValid
  - ncclOsSocketIsValid
  - ncclOsPollSocket
  - getWSAErrorMessage
  - ncclOsSocketTryAccept
  - ncclOsSocketSetFlags
  - ncclOsSocketResetAccept
  - ncclOsSocketResetFd
  - socketConnectCheck
  - ncclOsSocketStartConnect
  - ncclOsSocketPollConnect
  - ncclOsSocketProgressOpt
  - ncclOsFindInterfaces
  - matchSubnet
  - ncclFindInterfaceMatchSubnet
  - ncclSocketClose
  - ncclOsSetMutexCondShared
  - ncclOsCpuZero
  - ncclOsCpuCount
  - ncclOsCpuSet
  - ncclOsCpuIsSet
  - ncclOsCpuAnd
  - ncclOsGetAffinity
  - ncclOsSetAffinity
  - ncclOsGetCpu
  - ncclOsNvmlOpen
  - ncclOsRealpath
  - ncclOsShmHandleInit
  - ncclOsShmOpen
  - ncclOsShmClose
  - ncclOsShmUnlink
  - gettimeofday
  source_file: /src/nccl/src/os/windows.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/nccl/src/os/windows.cc
      type_or_value: '0x0600'
    - item_type: preproc_def
      name: WSAEAGAIN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/os/windows.cc
      type_or_value: WSAEWOULDBLOCK
    - item_type: preproc_def
      name: IFNAMSIZ
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/os/windows.cc
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclIpcSocketInit
  - ncclIpcSocketGetFd
  - ncclIpcSocketClose
  - ncclIpcSocketRecvMsg
  - ncclIpcSocketRecvFd
  - ncclIpcSocketSendMsg
  - ncclIpcSocketSendFd
  source_file: /src/nccl/src/os/linux_ipcsocket.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_IPC_SOCKNAME_STR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/os/linux_ipcsocket.cc
      type_or_value: '"/tmp/nccl-socket-%d-%" PRIx64'
    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: 119
        line_start: 116
        source_file: /src/nccl/src/os/linux_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: 177
        line_start: 174
        source_file: /src/nccl/src/os/linux_ipcsocket.cc
- function_names:
  - saveDlError
  - ncclOsDlopen
  - ncclOsDlsym
  - ncclOsDlerror
  - ncclOsDlopen
  - ncclOsDlclose
  - ncclOsGetPid
  - ncclOsLocaltime
  - ncclOsGetTid
  - ncclOsGetPageSize
  - ncclOsAlignedAlloc
  - ncclOsAlignedFree
  - ncclOsSetEnv
  - ncclOsRealpath
  - setCpuStackSize
  - ncclOsInitialize
  - ncclOsSetFilesLimit
  - ncclOsSocketDescriptorIsValid
  - ncclOsSocketIsValid
  - ncclOsPollSocket
  - ncclOsSocketTryAccept
  - ncclOsSocketSetFlags
  - ncclOsSocketResetAccept
  - ncclOsSocketResetFd
  - socketConnectCheck
  - ncclOsSocketStartConnect
  - ncclOsSocketPollConnect
  - ncclOsSocketProgressOpt
  - ncclOsFindInterfaces
  - matchSubnet
  - ncclFindInterfaceMatchSubnet
  - ncclSocketClose
  - ncclOsSetMutexCondShared
  - ncclOsCpuZero
  - ncclOsCpuCount
  - ncclOsCpuSet
  - ncclOsCpuIsSet
  - ncclOsCpuAnd
  - ncclOsGetAffinity
  - ncclOsSetAffinity
  - ncclOsGetCpu
  - ncclOsNvmlOpen
  - ncclOsShmHandleInit
  - ncclOsShmOpen
  - ncclOsShmClose
  - ncclOsShmUnlink
  source_file: /src/nccl/src/os/linux.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SAFE_STACK_SIZE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/nccl/src/os/linux.cc
      type_or_value: (8192*1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclIpcSocketInit
  - ncclIpcSocketGetFd
  - ncclIpcSocketClose
  - ncclIpcSocketRecvMsg
  - ncclIpcSocketRecvFd
  - ncclIpcSocketSendMsg
  - ncclIpcSocketSendFd
  source_file: /src/nccl/src/os/windows_ipcsocket.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_IPC_PIPENAME_STR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/os/windows_ipcsocket.cc
      type_or_value: '"\\\\.\\pipe\\nccl-socket-%d-%llx"'
    - item_type: preproc_def
      name: PIPE_BUFFER_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/os/windows_ipcsocket.cc
      type_or_value: '4096'
    - item_type: preproc_def
      name: PIPE_TIMEOUT_MS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/os/windows_ipcsocket.cc
      type_or_value: '5000'
    structs:
    - fields:
      - name: hdrLen
        type: int
      - name: sourceProcess
        type: HANDLE
      - name: handleToDup
        type: HANDLE
      - name: hdrData[PIPE_BUFFER_SIZE - sizeof(int) - sizeof(HANDLE) * 2]
        type: char
      item_type: struct
      name: ncclIpcMsg
      pos:
        line_end: 30
        line_start: 25
        source_file: /src/nccl/src/os/windows_ipcsocket.cc
    typedefs: []
    union: []
- function_names:
  - ncclRasCommInit
  - ncclRasAddRanks
  - ncclRasCommFini
  - ncclNetInit
  - ncclNetInitFromParent
  - ncclNetFinalize
  - ncclGpuGdrSupport
  - ncclEnvPluginInitialized
  - ncclEnvPluginInit
  - ncclEnvPluginGetEnv
  - ncclNetGetDevCount
  - ncclNetSetVirtDevCount
  - ncclCollNetGetDevCount
  - ncclCollNetSetVirtDevCount
  - getGlobalGinType
  - ncclGinBarrierCreateRequirement
  - ncclGinOutboxCreateRequirement
  - ncclGinInboxA2ACreateRequirement
  - getGlobalRailedGinType
  - ncclGinConnectOnce
  - ncclGinDevCommSetup
  - ncclGinDevCommFree
  - ncclGinRegister
  - ncclGinDeregister
  - ncclGinGetDevCount
  - ncclParamPollTimeOut
  - ncclParamRetryTimeOut
  - ncclParamRetryCnt
  - ncclParamSocketMaxRecvBuff
  - ncclParamSocketMaxSendBuff
  - ncclParamIbDataDirect
  - ncclParamGinEnable
  - ncclProfilerPluginLoaded
  - ncclProfilerPluginInit
  - ncclProfilerPluginFinalize
  - ncclProfilerStartGroupApiEvent
  - ncclProfilerStopGroupApiEvent
  - ncclProfilerRecordGroupApiEventState
  - ncclProfilerStartP2pApiEvent
  - ncclProfilerStopP2pApiEvent
  - ncclProfilerStartCollApiEvent
  - ncclProfilerStopCollApiEvent
  - ncclProfilerStartKernelLaunchEvent
  - ncclProfilerStopKernelLaunchEvent
  - ncclProfilerStartGroupEvent
  - ncclProfilerStopGroupEvent
  - ncclProfilerStartTaskEvents
  - ncclProfilerStopTaskEvents
  - ncclProfilerAddPidToProxyOp
  - ncclProfilerStartProxyOpEvent
  - ncclProfilerStopProxyOpEvent
  - ncclProfilerStartSendProxyStepEvent
  - ncclProfilerStartRecvProxyStepEvent
  - ncclProfilerStopProxyStepEvent
  - ncclProfilerStartProxyCtrlEvent
  - ncclProfilerStopProxyCtrlEvent
  - ncclProfilerStartKernelChEvent
  - ncclProfilerStopKernelChEvent
  - ncclProfilerRecordProxyOpEventState
  - ncclProfilerRecordProxyStepEventState
  - ncclProfilerRecordProxyCtrlEventState
  - ncclProfilerNeedsProxy
  - ncclProfilerStartCeCollEvent
  - ncclProfilerStopCeCollEvent
  - ncclProfilerStartCeSyncEvent
  - ncclProfilerStopCeSyncEvent
  - ncclProfilerStartCeBatchEvent
  - ncclProfilerStopCeBatchEvent
  - ncclTunerPluginLoad
  - ncclTunerPluginUnload
  - ncclGinHostFinalize
  - ncclGinQueryLastError
  - ncclGinInit
  - ncclGinInitFromParent
  - ncclGinFinalize
  source_file: /src/nccl/src/os/windows_stubs.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/devcomm/devcomm_v22902.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* winHost'
        type: void
      - name: '* lsaFlatBase'
        type: char
      - name: lsaRank
        type: int
      - name: worldRank
        type: int
      - name: stride4G
        type: uint32_t
      - name: mcOffset4K
        type: uint32_t
      - name: ginOffset4K
        type: uint32_t
      - name: ginWins[NCCL_GIN_MAX_CONNECTIONS]
        type: ncclGinWindow_t
      item_type: struct
      name: ncclWindow_vidmem_v22902
      pos:
        line_end: 21
        line_start: 12
        source_file: /src/nccl/src/devcomm/devcomm_v22902.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/devcomm/devcomm_v23000.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclCommPropertiesFilter_v22907
  - ncclDevCommRequirementsFilter_v22907
  - ncclDevCommCopyNewToOld_v22907
  source_file: /src/nccl/src/devcomm/devcomm_v22907.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: rank
        type: int
      - name: nRanks_rcp32
        type: uint32_t
      - name: lsaRank
        type: int
      - name: lsaSize_rcp32
        type: uint32_t
      - name: '* windowTable'
        type: struct ncclDevCommWindowTable
      - name: resourceWindow
        type: ncclWindow_t
      - name: resourceWindow_inlined
        type: struct ncclWindow_vidmem_v22902
      - name: lsaMultimem
        type: ncclMultimemHandle_t
      - name: lsaBarrier
        type: ncclLsaBarrierHandle_t
      - name: railGinBarrier
        type: ncclGinBarrierHandle_t
      - name: ginConnectionCount
        type: uint8_t
      - name: ginNetDeviceTypes[NCCL_GIN_MAX_CONNECTIONS]
        type: uint8_t
      - name: '* ginHandles[NCCL_GIN_MAX_CONNECTIONS]'
        type: void
      - name: ginSignalBase
        type: uint32_t
      - name: ginSignalCount
        type: int
      - name: ginCounterBase
        type: uint32_t
      - name: ginCounterCount
        type: int
      - name: '* ginSignalShadows'
        type: uint64_t
      - name: ginContextCount
        type: uint32_t
      - name: ginContextBase
        type: uint32_t
      - name: ginIsRailed
        type: bool
      - name: '* abortFlag'
        type: uint32_t
      item_type: struct
      name: ncclDevComm_v22907
      pos:
        line_end: 40
        line_start: 12
        source_file: /src/nccl/src/devcomm/devcomm_v22907.cc
    typedefs: []
    union: []
- function_names:
  - ncclCommPropertiesFilter_v22902
  - ncclDevCommRequirementsFilter_v22902
  - ncclDevCommCopyNewToOld_v22902
  - ncclDevCommCopyOldToNew_v22902
  source_file: /src/nccl/src/devcomm/devcomm_v22902.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: size_t
      - name: magic
        type: unsigned int
      - name: version
        type: unsigned int
      - name: rank
        type: int
      - name: nRanks
        type: int
      - name: cudaDev
        type: int
      - name: nvmlDev
        type: int
      - name: deviceApiSupport
        type: bool
      - name: multimemSupport
        type: bool
      - name: ginType
        type: ncclGinType_t_v22902
      item_type: struct
      name: ncclCommProperties_v22902
      pos:
        line_end: 32
        line_start: 20
        source_file: /src/nccl/src/devcomm/devcomm_v22902.cc
    - fields:
      - name: rank
        type: int
      - name: nRanks_rcp32
        type: uint32_t
      - name: lsaRank
        type: int
      - name: lsaSize_rcp32
        type: uint32_t
      - name: '* windowTable'
        type: struct ncclDevCommWindowTable
      - name: resourceWindow
        type: ncclWindow_t
      - name: resourceWindow_inlined
        type: struct ncclWindow_vidmem_v22902
      - name: lsaMultimem
        type: ncclMultimemHandle_t
      - name: lsaBarrier
        type: ncclLsaBarrierHandle_t
      - name: railGinBarrier
        type: ncclGinBarrierHandle_t
      - name: ginContextCount
        type: uint8_t
      - name: ginNetDeviceTypes[4]
        type: uint8_t
      - name: '* ginHandles[4]'
        type: void
      - name: ginSignalBase
        type: uint32_t
      - name: ginSignalCount
        type: int
      - name: ginCounterBase
        type: uint32_t
      - name: ginCounterCount
        type: int
      - name: '* ginSignalShadows'
        type: uint64_t
      item_type: struct
      name: ncclDevComm_v22902
      pos:
        line_end: 62
        line_start: 38
        source_file: /src/nccl/src/devcomm/devcomm_v22902.cc
    typedefs: []
    union: []
- function_names:
  - ncclRmaProxyPollNonPersistCompletion
  - ncclRmaProxyPollNonPersistDesc
  - ncclRmaProxyFlushNicGpuPath
  - ncclRmaProxyPollPersistDesc
  - ncclRmaProxyProgress
  source_file: /src/nccl/src/rma/rma_proxy_progress.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclRmaProxyPutDescFromTask
  - ncclRmaProxyWaitDescFromTask
  - ncclRmaProxyDestroyDescNonPersistent
  - ncclRmaProxyDestroyDescPersistent
  - ncclRmaProxyCircularBufFull
  - ncclRmaProxyCircularBufEmpty
  - ncclRmaProxyEnqueueNonPersistentDesc
  - ncclRmaProxyEnqueuePersistentDesc
  - ncclRmaProxyPutLaunch
  - ncclRmaProxyWaitLaunch
  - ncclRmaProxyReclaimPersistDescs
  - ncclRmaProxyReclaimPlan
  source_file: /src/nccl/src/rma/rma_proxy_launch.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclRmaCeInit
  - ncclRmaCeFinalize
  - ncclRmaCePutLaunch
  - ncclRmaCeWaitLaunch
  source_file: /src/nccl/src/rma/rma_ce.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - isLsaAccessible
  - ncclRmaWaitSignal
  - ncclRmaPut
  - ncclLaunchRma
  - isRmaPutOrSignal
  - canBatchRmaTasks
  - scheduleRmaTasksToPlan
  source_file: /src/nccl/src/rma/rma.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getDmaBufFd
  - ncclRmaProxyRegMrSym
  - isPowerOfTwo
  - ncclRmaProxyCtxAlloc
  - ncclRmaProxyCtxAllocGraph
  - ncclRmaProxyCreateContext
  - ncclRmaProxyDestroyContext
  - ncclRmaProxyRegister
  - ncclRmaProxyDeregister
  - ncclRmaProxyProgressThread
  - ncclRmaProxyConnectOnce
  - ncclRmaProxyFinalize
  - dumpRmaProxyState
  - ncclDumpRmaProxyState
  source_file: /src/nccl/src/rma/rma_proxy.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GIN_PROXY_VERSION
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/rma/rma_proxy.cc
      type_or_value: '100  '
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCLCHECK
  - CUDACHECK
  - main
  source_file: /src/nccl/docs/examples/03_collectives/01_allreduce/main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCLCHECK
  - CUDACHECK
  - main
  source_file: /src/nccl/docs/examples/01_communicators/01_multiple_devices_single_process/main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCLCHECK
  - CUDACHECK
  - getLocalRank
  - main
  source_file: /src/nccl/docs/examples/01_communicators/03_one_device_per_process_mpi/main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCLCHECK
  - CUDACHECK
  - thread_worker
  - main
  source_file: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: thread_id
        type: int
      - name: num_gpus
        type: int
      - name: commId
        type: ncclUniqueId
      - name: '*comms'
        type: ncclComm_t
      item_type: struct
      name: threadData_t
      pos:
        line_end: 60
        line_start: 55
        source_file: /src/nccl/docs/examples/01_communicators/02_one_device_per_pthread/main.cc
    typedefs: []
    union: []
- function_names:
  - allReduce
  - main
  source_file: /src/nccl/docs/examples/05_symmetric_memory/01_allreduce/main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - allReduce
  - main
  source_file: /src/nccl/docs/examples/04_user_buffer_registration/01_allreduce/main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - util_broadcast
  - initialize
  - thread_wrapper
  - run_parallel
  - run_example
  - cleanup
  source_file: /src/nccl/docs/examples/common/src/utils.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: total_ranks
        type: int
      - name: devices_per_rank
        type: int
      - name: local_device
        type: int
      - name: my_rank
        type: int
      - name: '*func'
        type: void
      item_type: struct
      name: context_t
      pos:
        line_end: 34
        line_start: 22
        source_file: /src/nccl/docs/examples/common/src/utils.cc
    typedefs: []
    union: []
- function_names:
  - MPICHECK
  source_file: /src/nccl/docs/examples/common/include/mpi_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/docs/examples/common/include/utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCLCHECK
  - CUDACHECK
  source_file: /src/nccl/docs/examples/common/include/nccl_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCLCHECK
  - CUDACHECK
  - main
  source_file: /src/nccl/docs/examples/02_point_to_point/01_ring_pattern/main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclGetPeerPointerTeam
  - ncclCoopAnyInitThread
  - ncclCoopAnyInitWarp
  - ncclCoopAnyInitLanes
  - ncclCoopAnyInitWarpSpan
  - ncclCoopAnyInitCta
  - ncclCoopThreadRank
  - ncclCoopSize
  - ncclCoopNumThreads
  - ncclCoopSync
  - ncclLsaBarrierSessionInit
  - ncclLsaBarrierSessionArrive
  - ncclLsaBarrierSessionWait
  - ncclLsaBarrierSessionSync
  - ncclGinBarrierSessionInit
  - ncclGinBarrierSessionSync
  - ncclBarrierSessionInit
  - ncclBarrierSessionSync
  source_file: /src/nccl/bindings/ir/nccl_device_wrapper__impl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/bindings/ir/nccl_device_wrapper.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bar
        type: ncclLsaBarrierSession<ncclCoopAny>
      item_type: struct
      name: ncclLsaBarrierSession_C
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/nccl/bindings/ir/nccl_device_wrapper.h
    - fields:
      - name: bar
        type: ncclGinBarrierSession<ncclCoopAny>
      item_type: struct
      name: ncclGinBarrierSession_C
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/nccl/bindings/ir/nccl_device_wrapper.h
    - fields:
      - name: bar
        type: ncclBarrierSession<ncclCoopAny>
      item_type: struct
      name: ncclBarrierSession_C
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/nccl/bindings/ir/nccl_device_wrapper.h
    typedefs: []
    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::pluginFinalize
  - ncclResult_t::pluginGetProperties_v11
  - ncclResult_t::pluginInit_v11
  - ncclResult_t::pluginMakeVDevice_v11
  - ncclResult_t::pluginInit_v10
  - ncclResult_t::pluginGetProperties_v10
  - ncclResult_t::pluginListen_v10
  - ncclResult_t::pluginConnect_v10
  - ncclResult_t::pluginMakeVDevice_v10
  - 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/plugins/net/example/plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/plugins/net/example/plugin.c
      type_or_value: __attribute__ ((visibility("hidden")))
    - item_type: preproc_def
      name: NCCL_PLUGIN_MAX_RECVS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/plugins/net/example/plugin.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PLUGIN_NAME
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/nccl/plugins/net/example/plugin.c
      type_or_value: '"Plugin"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/net_device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_DEVICE_INVALID_VERSION
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/plugins/net/example/nccl/net_device.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NCCL_NET_MTU_SIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/nccl/plugins/net/example/nccl/net_device.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: NCCL_NET_DEVICE_UNPACK_VERSION
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/plugins/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: 30
        line_start: 24
        source_file: /src/nccl/plugins/net/example/nccl/net_device.h
    typedefs:
    - item_type: typedef
      name: ncclNetDeviceHandle_v8_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/nccl/plugins/net/example/nccl/net_device.h
      type: ncclNetDeviceHandle_v7_t
    - item_type: typedef
      name: ncclNetDeviceHandle_v9_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/nccl/plugins/net/example/nccl/net_device.h
      type: ncclNetDeviceHandle_v8_t
    - item_type: typedef
      name: ncclNetDeviceHandle_v10_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nccl/plugins/net/example/nccl/net_device.h
      type: ncclNetDeviceHandle_v9_t
    - item_type: typedef
      name: ncclNetDeviceHandle_v11_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/nccl/plugins/net/example/nccl/net_device.h
      type: ncclNetDeviceHandle_v10_t
    - item_type: typedef
      name: ncclNetDeviceHandle_v12_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/nccl/plugins/net/example/nccl/net_device.h
      type: ncclNetDeviceHandle_v11_t
    - item_type: typedef
      name: ncclNetDeviceHandle_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/nccl/plugins/net/example/nccl/net_device.h
      type: ncclNetDeviceHandle_v12_t
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/net_v11.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAX_DEVS_PER_NIC_V11
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/plugins/net/example/nccl/net_v11.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_NET_TRAFFIC_CLASS_UNDEF
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/plugins/net/example/nccl/net_v11.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: ndevs
        type: int
      - name: devs[NCCL_NET_MAX_DEVS_PER_NIC_V11]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v11_t
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/nccl/plugins/net/example/nccl/net_v11.h
    - fields:
      - name: trafficClass
        type: int
      item_type: struct
      name: ncclNetCommConfig_v11_t
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/nccl/plugins/net/example/nccl/net_v11.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_v11_t
      - name: maxP2pBytes
        type: size_t
      - name: maxCollBytes
        type: size_t
      - name: maxMultiRequestSize
        type: int
      item_type: struct
      name: ncclNetProperties_v11_t
      pos:
        line_end: 44
        line_start: 25
        source_file: /src/nccl/plugins/net/example/nccl/net_v11.h
    - fields:
      - name: maxConcurrentPeers
        type: int32_t
      - name: minConcurrentPeers
        type: int32_t
      - name: maxFlowsPerPeer
        type: int32_t
      - name: minFlowsPerPeer
        type: int32_t
      item_type: struct
      name: ncclNetCommAttr_v11_t
      pos:
        line_end: 51
        line_start: 46
        source_file: /src/nccl/plugins/net/example/nccl/net_v11.h
    - fields:
      - name: sendCommAttr
        type: ncclNetCommAttr_v11_t
      - name: recvCommAttr
        type: ncclNetCommAttr_v11_t
      - name: op
        type: uint32_t
      - name: algo
        type: uint32_t
      - name: proto
        type: uint32_t
      item_type: struct
      name: ncclNetAttr_v11_t
      pos:
        line_end: 59
        line_start: 53
        source_file: /src/nccl/plugins/net/example/nccl/net_v11.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** ctx, uint64_t commId, ncclNetCommConfig_v11_t* config,
          ncclDebugLogger_t logFunction, ncclProfilerCallback_t profFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v11_t* props)
        type: ncclResult_t
      - name: (*listen)(void* ctx, int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* ctx, int dev, void* handle, void** sendComm, ncclNetDeviceHandle_v11_t**
          sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v11_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_v11_t* props)
        type: ncclResult_t
      - name: (*finalize)(void* ctx)
        type: ncclResult_t
      - name: (*setNetAttr)(void* ctx, ncclNetAttr_v11_t* netAttr)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v11_t
      pos:
        line_end: 122
        line_start: 61
        source_file: /src/nccl/plugins/net/example/nccl/net_v11.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/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: 54
        line_start: 11
        source_file: /src/nccl/plugins/net/example/nccl/net_v5.h
    typedefs:
    - item_type: typedef
      name: ncclNetProperties_v5_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/nccl/plugins/net/example/nccl/net_v5.h
      type: ncclNetProperties_v6_t
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/net_v3.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAX_REQUESTS_V3
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/plugins/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: 50
        line_start: 13
        source_file: /src/nccl/plugins/net/example/nccl/net_v3.h
    typedefs:
    - item_type: typedef
      name: ncclNetProperties_v3_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/nccl/plugins/net/example/nccl/net_v3.h
      type: ncclNetProperties_v4_t
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/net_v9.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ndevs
        type: int
      - name: devs[NCCL_NET_MAX_DEVS_PER_NIC_V11]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v9_t
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/nccl/plugins/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: 33
        line_start: 15
        source_file: /src/nccl/plugins/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: 92
        line_start: 35
        source_file: /src/nccl/plugins/net/example/nccl/net_v9.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/net_v4.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_HANDLE_MAXSIZE_V4
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/plugins/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: 21
        line_start: 12
        source_file: /src/nccl/plugins/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: 61
        line_start: 24
        source_file: /src/nccl/plugins/net/example/nccl/net_v4.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/net_v12.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAX_DEVS_PER_NIC_V12
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/plugins/net/example/nccl/net_v12.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_NET_TRAFFIC_CLASS_UNDEF
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/plugins/net/example/nccl/net_v12.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_NET_ID_UNDEF
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/plugins/net/example/nccl/net_v12.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: ndevs
        type: int
      - name: devs[NCCL_NET_MAX_DEVS_PER_NIC_V12]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v12_t
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/nccl/plugins/net/example/nccl/net_v12.h
    - fields:
      - name: trafficClass
        type: int
      item_type: struct
      name: ncclNetCommConfig_v12_t
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/nccl/plugins/net/example/nccl/net_v12.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_v12_t
      - name: maxP2pBytes
        type: size_t
      - name: maxCollBytes
        type: size_t
      - name: maxMultiRequestSize
        type: int
      - name: railId
        type: int16_t
      - name: planeId
        type: int16_t
      item_type: struct
      name: ncclNetProperties_v12_t
      pos:
        line_end: 47
        line_start: 26
        source_file: /src/nccl/plugins/net/example/nccl/net_v12.h
    - fields:
      - name: maxConcurrentPeers
        type: int32_t
      - name: minConcurrentPeers
        type: int32_t
      - name: maxFlowsPerPeer
        type: int32_t
      - name: minFlowsPerPeer
        type: int32_t
      item_type: struct
      name: ncclNetCommAttr_v12_t
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/nccl/plugins/net/example/nccl/net_v12.h
    - fields:
      - name: sendCommAttr
        type: ncclNetCommAttr_v12_t
      - name: recvCommAttr
        type: ncclNetCommAttr_v12_t
      - name: op
        type: uint32_t
      - name: algo
        type: uint32_t
      - name: proto
        type: uint32_t
      item_type: struct
      name: ncclNetAttr_v12_t
      pos:
        line_end: 62
        line_start: 56
        source_file: /src/nccl/plugins/net/example/nccl/net_v12.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** ctx, uint64_t commId, ncclNetCommConfig_v12_t* config,
          ncclDebugLogger_t logFunction, ncclProfilerCallback_t profFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v12_t* props)
        type: ncclResult_t
      - name: (*listen)(void* ctx, int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* ctx, int dev, void* handle, void** sendComm, ncclNetDeviceHandle_v12_t**
          sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v12_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_v12_t* props)
        type: ncclResult_t
      - name: (*finalize)(void* ctx)
        type: ncclResult_t
      - name: (*setNetAttr)(void* ctx, ncclNetAttr_v12_t* netAttr)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v12_t
      pos:
        line_end: 125
        line_start: 64
        source_file: /src/nccl/plugins/net/example/nccl/net_v12.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*ncclDebugLogger_t)(ncclDebugLogLevel level, unsigned long flags, const
        char *file, int line, const char *fmt, ...)
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/nccl/plugins/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: 19
        line_start: 19
        source_file: /src/nccl/plugins/net/example/nccl/common.h
      type: ncclResult_t
    union: []
- function_names: []
  source_file: /src/nccl/plugins/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: 23
        line_start: 10
        source_file: /src/nccl/plugins/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: 75
        line_start: 25
        source_file: /src/nccl/plugins/net/example/nccl/net_v7.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/err.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/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: 50
        line_start: 10
        source_file: /src/nccl/plugins/net/example/nccl/net_v2.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/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: 24
        line_start: 10
        source_file: /src/nccl/plugins/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: 79
        line_start: 26
        source_file: /src/nccl/plugins/net/example/nccl/net_v8.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/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: 21
        line_start: 10
        source_file: /src/nccl/plugins/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: 68
        line_start: 23
        source_file: /src/nccl/plugins/net/example/nccl/net_v6.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/net.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_HANDLE_MAXSIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type_or_value: '128'
    - item_type: preproc_def
      name: NCCL_MAX_NET_SIZE_BYTES
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/plugins/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: 20
        line_start: 19
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NCCL_PTR_HOST
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NCCL_PTR_CUDA
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: NCCL_PTR_DMABUF
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: NCCL_NET_MAX_REQUESTS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type_or_value: '32'
    - item_type: preproc_def
      name: NCCL_NET_MAX_DEVS_PER_NIC
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type_or_value: NCCL_NET_MAX_DEVS_PER_NIC_V12
    - item_type: preproc_def
      name: NCCL_GIN_HANDLE_MAXSIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MAX_GIN_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/plugins/net/example/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: NCCL_GIN_MAX_PLUGINS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NCCL_GIN_SIGNAL_OP_INC
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NCCL_GIN_SIGNAL_OP_ADD
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type_or_value: '0x2'
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclNet_t
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type: ncclNet_v12_t
    - item_type: typedef
      name: ncclNetProperties_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type: ncclNetProperties_v12_t
    - item_type: typedef
      name: ncclNetVDeviceProps_t
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type: ncclNetVDeviceProps_v12_t
    - item_type: typedef
      name: ncclNetCommConfig_t
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type: ncclNetCommConfig_v12_t
    - item_type: typedef
      name: ncclGin_t
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/nccl/plugins/net/example/nccl/net.h
      type: ncclGin_v11_t
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/net_v10.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_TRAFFIC_CLASS_UNDEF
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/plugins/net/example/nccl/net_v10.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: ndevs
        type: int
      - name: devs[NCCL_NET_MAX_DEVS_PER_NIC_V11]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v10_t
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/nccl/plugins/net/example/nccl/net_v10.h
    - fields:
      - name: trafficClass
        type: int
      item_type: struct
      name: ncclNetCommConfig_v10_t
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/nccl/plugins/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: 41
        line_start: 23
        source_file: /src/nccl/plugins/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: 100
        line_start: 43
        source_file: /src/nccl/plugins/net/example/nccl/net_v10.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/net/example/nccl/gin_v11.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** ctx, uint64_t commId, ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v11_t* props)
        type: ncclResult_t
      - name: (*listen)(void* ctx, int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* ctx, void* handles[], int nranks, int rank, void* listenComm,
          void** collComm)
        type: ncclResult_t
      - name: (*createContext)(void* collComm, int nSignals, int nCounters, void**
          ginCtx, ncclNetDeviceHandle_v11_t** devHandle)
        type: ncclResult_t
      - name: (*regMrSym)(void* collComm, void* data, size_t size, int type, uint64_t
          mrFlags, void** mhandle, void **ginHandle)
        type: ncclResult_t
      - name: (*regMrSymDmaBuf)(void* collComm, void* data, size_t size, int type,
          uint64_t offset, int fd, uint64_t mrFlags, void** mhandle, void **ginHandle)
        type: ncclResult_t
      - name: (*deregMrSym)(void* collComm, void* mhandle)
        type: ncclResult_t
      - name: (*destroyContext)(void* ginCtx)
        type: ncclResult_t
      - name: (*closeColl)(void* collComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: "(*iput)(void* collComm, uint64_t srcOff, void* srcMhandle, size_t size,\n
          \     uint64_t dstOff, void* dstMhandle, uint32_t rank, void** request)"
        type: ncclResult_t
      - name: "(*iputSignal)(void* collComm, uint64_t srcOff, void* srcMhandle,\n
          \     size_t size, uint64_t dstOff, void* dstMhandle,\n      uint32_t rank,
          uint64_t signalOff, void *signalMhandle,\n      uint64_t signalValue, uint32_t
          signalOp, void** request)"
        type: ncclResult_t
      - name: (*test)(void* collComm, void* request, int* done)
        type: ncclResult_t
      - name: (*ginProgress)(void* collComm)
        type: ncclResult_t
      - name: (*queryLastError)(void* ginCtx, bool *hasError)
        type: ncclResult_t
      - name: (*finalize)(void* ctx)
        type: ncclResult_t
      item_type: struct
      name: ncclGin_v11_t
      pos:
        line_end: 57
        line_start: 9
        source_file: /src/nccl/plugins/net/example/nccl/gin_v11.h
    typedefs: []
    union: []
- function_names:
  - printGroupApiEventHeader
  - printGroupApiEventTrailer
  - printP2pApiEventHeader
  - printP2pApiEventTrailer
  - printCollApiEventHeader
  - printCollApiEventTrailer
  - printKernelLaunchEventHeader
  - printKernelLaunchEventTrailer
  - printGroupEventHeader
  - printGroupEventTrailer
  - printCollEventHeader
  - printCollEventTrailer
  - printP2pEventHeader
  - printP2pEventTrailer
  - printProxyOpEventHeader
  - printProxyOpEventTrailer
  - printProxyStepEventHeader
  - printProxyStepEventTrailer
  - printKernelChEventHeader
  - printKernelChEventTrailer
  - printProxyCtrlEvent
  - printNetPluginEvent
  - debugCeCollEvent
  - debugCeSyncEvent
  - debugCeBatchEvent
  - debugEvent
  - printCeCollEvent
  - printCeSyncEvent
  - printCeBatchEvent
  - printEvent
  source_file: /src/nccl/plugins/profiler/example/print_event.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/plugins/profiler/example/print_event.cc
      type_or_value: __attribute__ ((visibility("hidden")))
    structs: []
    typedefs: []
    union: []
- function_names:
  - pollCeCollEvents
  - pollCeSyncEvents
  - pollCeBatchEvents
  - cePollerThreadMain
  - ceProfilerInitGlobal
  - ceProfilerFinalizeGlobal
  - ceProfilerRegisterContext
  - ceProfilerDeregisterContext
  - ceProfilerCleanupPendingEvents
  - ceProfilerGetTimingMode
  - ceProfilerStartCeCollEvent
  - ceProfilerStopCeCollEvent
  - ceProfilerStartCeSyncEvent
  - ceProfilerStopCeSyncEvent
  - ceProfilerStartCeBatchEvent
  - ceProfilerStopCeBatchEvent
  source_file: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
      type_or_value: __attribute__ ((visibility("hidden")))
    structs:
    - fields:
      - name: pollerThread
        type: pthread_t
      - name: pollerRunning
        type: bool
      - name: mutex
        type: pthread_mutex_t
      - name: '** contextRegistry'
        type: struct context
      - name: contextCount
        type: int
      - name: contextCapacity
        type: int
      - name: timingMode
        type: CeTimingMode_t
      - name: pollerIntervalUs
        type: int
      item_type: struct
      name: "ceProfilerCtxt = {\n  .pollerThread = 0,\n  .pollerRunning = false,\n
        \ .mutex = PTHREAD_MUTEX_INITIALIZER,\n  .contextRegistry = NULL,\n  .contextCount
        = 0,\n  .contextCapacity = 0,\n  .timingMode = CE_TIMING_CPU,\n  .pollerIntervalUs
        = 500\n}"
      pos:
        line_end: 34
        line_start: 25
        source_file: /src/nccl/plugins/profiler/example/profiler_plugin_ce.cc
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/print_event.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - profilerQueueConstruct
  - profilerQueueEmpty
  - profilerQueueHead
  - profilerQueueTail
  - profilerQueueEnqueue
  - profilerQueueDequeue
  source_file: /src/nccl/plugins/profiler/example/queue.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*head'
        type: T
      item_type: struct
      name: profilerQueue
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/nccl/plugins/profiler/example/queue.h
    typedefs: []
    union: []
- function_names:
  - taskEventQueueEmpty
  - taskEventQueueEnqueue
  - taskEventQueueHead
  - taskEventQueueDequeue
  - resetTaskEvents
  source_file: /src/nccl/plugins/profiler/example/event.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CHANNELS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/plugins/profiler/example/event.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_STEPS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/plugins/profiler/example/event.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_OPS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/plugins/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: 29
        line_start: 28
        source_file: /src/nccl/plugins/profiler/example/event.h
      type_or_value: (8)
    - item_type: preproc_def
      name: PROXY_STEP_SEND_GPU_WAIT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/nccl/plugins/profiler/example/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PROXY_STEP_SEND_PEER_WAIT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/nccl/plugins/profiler/example/event.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PROXY_STEP_SEND_WAIT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/nccl/plugins/profiler/example/event.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PROXY_STEP_RECV_WAIT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/nccl/plugins/profiler/example/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PROXY_STEP_RECV_FLUSH_WAIT
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/nccl/plugins/profiler/example/event.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PROXY_STEP_RECV_GPU_WAIT
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/nccl/plugins/profiler/example/event.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PROXY_STEP_MAX_STATES
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/nccl/plugins/profiler/example/event.h
      type_or_value: '3'
    structs:
    - fields:
      - name: type
        type: uint64_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: 55
        line_start: 33
        source_file: /src/nccl/plugins/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: 65
        line_start: 57
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: type
        type: uint64_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: 86
        line_start: 75
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: type
        type: uint64_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: 104
        line_start: 88
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: type
        type: uint64_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: 116
        line_start: 109
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: type
        type: uint64_t
      - name: rank
        type: int
      - name: '* func'
        type: char
      - name: refCount
        type: int
      - name: '* parent'
        type: void
      - name: '* next'
        type: struct taskEventBase
      - name: startTs
        type: double
      - name: stopTs
        type: double
      item_type: struct
      name: taskEventBase
      pos:
        line_end: 128
        line_start: 119
        source_file: /src/nccl/plugins/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: 145
        line_start: 130
        source_file: /src/nccl/plugins/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: 157
        line_start: 147
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: type
        type: uint64_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: 169
        line_start: 159
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: type
        type: uint64_t
      - name: '* parent'
        type: struct groupApi
      - name: '* ctx'
        type: struct context
      - name: collApiId
        type: int
      - name: refCount
        type: int
      - name: stream
        type: cudaStream_t
      - name: '* func'
        type: char
      - name: count
        type: size_t
      - name: '* datatype'
        type: char
      - name: root
        type: int
      - name: graphCaptured
        type: bool
      - name: '* eventHead'
        type: struct taskEventBase
      - name: '* eventTail'
        type: struct taskEventBase
      - name: startTs
        type: double
      - name: stopTs
        type: double
      - name: '* next'
        type: struct collApi
      item_type: struct
      name: collApi
      pos:
        line_end: 188
        line_start: 171
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: type
        type: uint64_t
      - name: '* parent'
        type: struct groupApi
      - name: '* ctx'
        type: struct context
      - name: p2pApiId
        type: int
      - name: refCount
        type: int
      - name: '* func'
        type: char
      - name: stream
        type: cudaStream_t
      - name: count
        type: size_t
      - name: '* datatype'
        type: char
      - name: graphCaptured
        type: bool
      - name: '* eventHead'
        type: struct taskEventBase
      - name: '* eventTail'
        type: struct taskEventBase
      - name: startTs
        type: double
      - name: stopTs
        type: double
      - name: '* next'
        type: struct p2pApi
      item_type: struct
      name: p2pApi
      pos:
        line_end: 206
        line_start: 190
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: type
        type: uint64_t
      - name: '* parent'
        type: struct groupApi
      - name: stream
        type: cudaStream_t
      - name: kernelLaunchId
        type: int
      - name: startTs
        type: double
      - name: stopTs
        type: double
      - name: '* next'
        type: struct kernelLaunch
      item_type: struct
      name: kernelLaunch
      pos:
        line_end: 216
        line_start: 208
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: base
        type: struct taskEventBase
      - name: '* parent'
        type: struct collApi
      - name: ceCollId
        type: int
      - name: seqNumber
        type: uint64_t
      - name: count
        type: size_t
      - name: '* datatype'
        type: char
      - name: root
        type: int
      - name: '* syncStrategy'
        type: char
      - name: stream
        type: cudaStream_t
      - name: eventId
        type: uint64_t
      - name: timingMode
        type: int
      - name: cpuStartTime
        type: double
      - name: cpuStopTime
        type: double
      - name: cpuDuration
        type: double
      - name: elapsedTime
        type: uint64_t
      - name: '* eventHead'
        type: struct taskEventBase
      - name: '* eventTail'
        type: struct taskEventBase
      - name: startEvent
        type: cudaEvent_t
      - name: stopEvent
        type: cudaEvent_t
      - name: startCompleted
        type: bool
      - name: stopCompleted
        type: bool
      - name: '* pollerNext'
        type: struct ceColl
      item_type: struct
      name: ceColl
      pos:
        line_end: 250
        line_start: 219
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: base
        type: struct taskEventBase
      - name: '* parent'
        type: struct ceColl
      - name: ceSyncId
        type: int
      - name: isComplete
        type: bool
      - name: seqNumber
        type: uint32_t
      - name: nRanks
        type: int
      - name: stream
        type: cudaStream_t
      - name: eventId
        type: uint64_t
      - name: timingMode
        type: int
      - name: cpuStartTime
        type: double
      - name: cpuStopTime
        type: double
      - name: cpuDuration
        type: double
      - name: elapsedTime
        type: uint64_t
      - name: startEvent
        type: cudaEvent_t
      - name: stopEvent
        type: cudaEvent_t
      - name: startCompleted
        type: bool
      - name: stopCompleted
        type: bool
      - name: '* pollerNext'
        type: struct ceSync
      item_type: struct
      name: ceSync
      pos:
        line_end: 276
        line_start: 252
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: base
        type: struct taskEventBase
      - name: '* parent'
        type: struct ceColl
      - name: ceBatchId
        type: int
      - name: numOps
        type: int
      - name: totalBytes
        type: size_t
      - name: useIntraSync
        type: bool
      - name: stream
        type: cudaStream_t
      - name: eventId
        type: uint64_t
      - name: timingMode
        type: int
      - name: cpuStartTime
        type: double
      - name: cpuStopTime
        type: double
      - name: cpuDuration
        type: double
      - name: elapsedTime
        type: uint64_t
      - name: startEvent
        type: cudaEvent_t
      - name: stopEvent
        type: cudaEvent_t
      - name: startCompleted
        type: bool
      - name: stopCompleted
        type: bool
      - name: '* pollerNext'
        type: struct ceBatch
      item_type: struct
      name: ceBatch
      pos:
        line_end: 302
        line_start: 278
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: type
        type: uint64_t
      - name: '* ctx'
        type: struct context
      - name: groupApiId
        type: int
      - name: refCount
        type: int
      - name: graphCaptured
        type: bool
      - name: groupDepth
        type: int
      - name: p2pApiEvents
        type: struct profilerQueue<struct p2pApi, &p2pApi::next>
      - name: collApiEvents
        type: struct profilerQueue<struct collApi, &collApi::next>
      - name: kernelLaunchEvents
        type: struct profilerQueue<struct kernelLaunch, &kernelLaunch::next>
      - name: endOfncclGroupStartTs
        type: double
      - name: startOfncclGroupEndTs
        type: double
      - name: startTs
        type: double
      - name: stopTs
        type: double
      - name: '* next'
        type: struct groupApi
      item_type: struct
      name: groupApi
      pos:
        line_end: 319
        line_start: 304
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: '* ceCollHead'
        type: struct ceColl
      - name: '* ceSyncHead'
        type: struct ceSync
      - name: '* ceBatchHead'
        type: struct ceBatch
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: ceEventList
      pos:
        line_end: 327
        line_start: 322
        source_file: /src/nccl/plugins/profiler/example/event.h
    - fields:
      - name: '* commName'
        type: char
      - name: commHash
        type: uint64_t
      - name: nranks
        type: int
      - name: rank
        type: int
      - name: ceEvents
        type: struct ceEventList
      - name: groupApiPoolSize
        type: int
      - name: groupApiPoolBase
        type: int
      - name: groupApiPoolIndex
        type: int
      - name: '* groupApiPool'
        type: struct groupApi
      - name: collApiPoolSize
        type: int
      - name: collApiPoolBase
        type: int
      - name: collApiPoolIndex
        type: int
      - name: '* collApiPool'
        type: struct collApi
      - name: p2pApiPoolSize
        type: int
      - name: p2pApiPoolBase
        type: int
      - name: p2pApiPoolIndex
        type: int
      - name: '* p2pApiPool'
        type: struct p2pApi
      - name: kernelLaunchPoolSize
        type: int
      - name: kernelLaunchPoolBase
        type: int
      - name: kernelLaunchPoolIndex
        type: int
      - name: '* kernelLaunchPool'
        type: struct kernelLaunch
      - 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
      - name: ceCollPoolSize
        type: int
      - name: ceCollPoolBase
        type: int
      - name: ceCollPoolIndex
        type: int
      - name: '* ceCollPool'
        type: struct ceColl
      - name: ceSyncPoolSize
        type: int
      - name: ceSyncPoolBase
        type: int
      - name: ceSyncPoolIndex
        type: int
      - name: '* ceSyncPool'
        type: struct ceSync
      - name: ceBatchPoolSize
        type: int
      - name: ceBatchPoolBase
        type: int
      - name: ceBatchPoolIndex
        type: int
      - name: '* ceBatchPool'
        type: struct ceBatch
      - name: finalizing
        type: int
      item_type: struct
      name: context
      pos:
        line_end: 397
        line_start: 330
        source_file: /src/nccl/plugins/profiler/example/event.h
    typedefs: []
    union: []
- function_names:
  - INFO
  - gettime
  - getProfilerStartTime
  - deferContextFree
  - freeDeferredContexts
  - getTaskEventCtx
  - contextFromEventHandle
  - initPoolSizes
  - allocateGlobalPools
  - allocateContextPools
  - initGlobalProfiler
  - ncclResult_t::exampleProfilerInit
  - openTraceFile
  - printAllEvents
  - freeContextPools
  - finalizeGlobalProfiler
  - ncclResult_t::exampleProfilerFinalize
  - ncclResult_t::exampleProfilerStartEvent
  - updateEvent
  - ncclResult_t::exampleProfilerStopEvent
  - ncclResult_t::exampleProfilerRecordEventState
  - exampleProfilerStart
  - exampleProfilerStop
  - ncclResult_t::exampleProfilerStartEvent_v6
  - ncclResult_t::exampleProfilerStopEvent_v6
  - ncclResult_t::exampleProfilerRecordEventState_v6
  source_file: /src/nccl/plugins/profiler/example/plugin.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/plugins/profiler/example/plugin.cc
      type_or_value: __attribute__ ((visibility("hidden")))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/profiler_plugin_ce.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v6.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint64_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v6_t
      pos:
        line_end: 121
        line_start: 13
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v6.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, uint64_t commId, int* eActivationMask, const
          char* commName, int nNodes, int nranks, int rank, ncclDebugLogger_t logfn)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v6_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v6_t eState,
          ncclProfilerEventStateArgs_v6_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v6_t
      pos:
        line_end: 144
        line_start: 127
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v6.h
    typedefs:
    - item_type: typedef
      name: ncclProfilerEventStateArgs_v6_t
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v6.h
      type: ncclProfilerEventStateArgs_v5_t
    union: []
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/nccl/profiler_net.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_VER_BITS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_net.h
      type_or_value: (16)
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_VER_MASK
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/nccl/plugins/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: 13
        line_start: 12
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_net.h
      type_or_value: (~0U << NCCL_PROFILER_NET_VER_BITS)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/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: 60
        line_start: 12
        source_file: /src/nccl/plugins/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: 107
        line_start: 73
        source_file: /src/nccl/plugins/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: 71
        line_start: 62
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v1.h
- function_names: []
  source_file: /src/nccl/plugins/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: 65
        line_start: 12
        source_file: /src/nccl/plugins/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: 112
        line_start: 78
        source_file: /src/nccl/plugins/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: 76
        line_start: 67
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v3.h
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/nccl/net_socket_v1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_SOCKET_VER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/plugins/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: 30
        line_start: 21
        source_file: /src/nccl/plugins/profiler/example/nccl/net_socket_v1.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/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: 61
        line_start: 10
        source_file: /src/nccl/plugins/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: 121
        line_start: 81
        source_file: /src/nccl/plugins/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: 79
        line_start: 63
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v4.h
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/nccl/net_ib_v1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_IB_VER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/plugins/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: 32
        line_start: 21
        source_file: /src/nccl/plugins/profiler/example/nccl/net_ib_v1.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v5.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint64_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v5_t
      pos:
        line_end: 90
        line_start: 11
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v5.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, uint64_t commId, int* eActivationMask, const
          char* commName, int nNodes, int nranks, int rank, ncclDebugLogger_t logfn)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v5_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v5_t eState,
          ncclProfilerEventStateArgs_v5_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v5_t
      pos:
        line_end: 150
        line_start: 110
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v5.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_v5_t
      pos:
        line_end: 108
        line_start: 92
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v5.h
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/nccl/common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: pid_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/nccl/plugins/profiler/example/nccl/common.h
      type: unsigned long
    - item_type: typedef
      name: (*ncclDebugLogger_t)(ncclDebugLogLevel level, unsigned long flags, const
        char *file, int line, const char *fmt, ...)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/plugins/profiler/example/nccl/common.h
      type: void
    union: []
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/nccl/err.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/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: 57
        line_start: 12
        source_file: /src/nccl/plugins/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: 104
        line_start: 70
        source_file: /src/nccl/plugins/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: 68
        line_start: 59
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler_v2.h
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/nccl/profiler.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclProfilerEventState_v1_t
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfilerEventState_v2_t
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfilerEventState_v3_t
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfilerEventState_v4_t
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfilerEventState_v5_t
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfilerEventState_v6_t
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler.h
      type: ncclProfilerEventState_t
    - item_type: typedef
      name: ncclProfiler_t
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler.h
      type: ncclProfiler_v6_t
    - item_type: typedef
      name: ncclProfilerEventDescr_t
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler.h
      type: ncclProfilerEventDescr_v6_t
    - item_type: typedef
      name: ncclProfilerEventStateArgs_t
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/nccl/plugins/profiler/example/nccl/profiler.h
      type: ncclProfilerEventStateArgs_v6_t
    union: []
- function_names: []
  source_file: /src/nccl/plugins/profiler/example/nccl/types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    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::pluginFinalize
  - ncclResult_t::tunerPluginInit
  - ncclResult_t::tunerPluginGetCollInfo
  - ncclResult_t::tunerPluginFinalize
  source_file: /src/nccl/plugins/mixed/example/plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PLUGIN_NAME
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/plugins/mixed/example/plugin.c
      type_or_value: '"Plugin"'
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/nccl/plugins/mixed/example/plugin.c
      type_or_value: __attribute__ ((visibility("hidden")))
    - item_type: preproc_def
      name: NCCL_PLUGIN_MAX_RECVS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/plugins/mixed/example/plugin.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclEnvInit
  - ncclEnvFinalize
  - ncclEnvGetEnv
  source_file: /src/nccl/plugins/env/example/plugin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/env/example/nccl/env.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_ENV_PLUGIN_SYMBOL
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/nccl/plugins/env/example/nccl/env.h
      type_or_value: ncclEnvPlugin_v1
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/env/example/nccl/err.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ncclSuccess
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/nccl/plugins/env/example/nccl/err.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ncclSystemError
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/plugins/env/example/nccl/err.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ncclInternalError
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/plugins/env/example/nccl/err.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ncclInvalidUsage
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/nccl/plugins/env/example/nccl/err.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ncclInvalidArgument
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/nccl/plugins/env/example/nccl/err.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ncclUnhandledCudaError
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/plugins/env/example/nccl/err.h
      type_or_value: '5'
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclResult_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/nccl/plugins/env/example/nccl/err.h
      type: int
    union: []
- function_names: []
  source_file: /src/nccl/plugins/env/example/nccl/env_v1.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(uint8_t ncclMajor, uint8_t ncclMinor, uint8_t ncclPatch, const
          char* suffix)
        type: ncclResult_t
      - name: (*finalize)(void)
        type: ncclResult_t
      - name: '* (*getEnv)(const char* name)'
        type: char
      item_type: struct
      name: ncclEnv_v1_t
      pos:
        line_end: 30
        line_start: 9
        source_file: /src/nccl/plugins/env/example/nccl/env_v1.h
    typedefs: []
    union: []
- function_names:
  - ncclResult_t::pluginInit
  - ncclResult_t::pluginGetCollInfo
  - ncclResult_t::pluginDestroy
  source_file: /src/nccl/plugins/tuner/basic/plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/plugins/tuner/basic/plugin.c
      type_or_value: __attribute__ ((visibility("hidden")))
    - item_type: preproc_def
      name: PLUGIN_NAME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/plugins/tuner/basic/plugin.c
      type_or_value: '"Basic"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/tuner/basic/nccl/tuner.h
    typedefs:
    - item_type: typedef
      name: ncclTuner_t
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/nccl/plugins/tuner/basic/nccl/tuner.h
      type: ncclTuner_v4_t
    union: []
- function_names: []
  source_file: /src/nccl/plugins/tuner/basic/nccl/common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*ncclDebugLogger_t)(ncclDebugLogLevel level, unsigned long flags, const
        char *file, int line, const char *fmt, ...)
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/nccl/plugins/tuner/basic/nccl/common.h
      type: void
    union: []
- function_names: []
  source_file: /src/nccl/plugins/tuner/basic/nccl/err.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parseCollType
  - collTypeToString
  - parseAlgorithm
  - algorithmToString
  - parseProtocol
  - protocolToString
  - countConfigLines
  - loadConfig
  - ncclResult_t::pluginInit
  - ncclResult_t::pluginGetCollInfo
  - ncclResult_t::pluginGetChunkSize
  - ncclResult_t::pluginFinalize
  source_file: /src/nccl/plugins/tuner/example/plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: __attribute__ ((visibility("hidden")))
    - item_type: preproc_def
      name: MAX_LINE_LENGTH
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: '256'
    - item_type: preproc_def
      name: CONFIG_FIELD_COLLTYPE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CONFIG_FIELD_MINBYTES
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CONFIG_FIELD_MAXBYTES
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: '2'
    - item_type: preproc_def
      name: CONFIG_FIELD_ALGORITHM
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CONFIG_FIELD_PROTOCOL
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: '4'
    - item_type: preproc_def
      name: CONFIG_FIELD_CHANNELS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: '5'
    - item_type: preproc_def
      name: CONFIG_FIELD_NNODES
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: '6'
    - item_type: preproc_def
      name: CONFIG_FIELD_NRANKS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: '7'
    - item_type: preproc_def
      name: CONFIG_FIELD_PIPEOPS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: 8  // Optional field
    - item_type: preproc_def
      name: CONFIG_FIELD_REGBUFF
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: 9  // Optional field
    - item_type: preproc_def
      name: CONFIG_FIELDS_REQUIRED
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/plugins/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: 31
        line_start: 30
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: 9  // Fields including numPipeOps
    - item_type: preproc_def
      name: CONFIG_FIELDS_WITH_REGBUFF
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/plugins/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: 33
        line_start: 32
        source_file: /src/nccl/plugins/tuner/example/plugin.c
      type_or_value: 10  // Maximum number of fields supported
    - item_type: preproc_def
      name: PLUGIN_NAME
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/nccl/plugins/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: 45
        line_start: 34
        source_file: /src/nccl/plugins/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
      - name: nvlDomainInfo
        type: ncclNvlDomainInfo_v5_t
      item_type: struct
      name: TunerContext
      pos:
        line_end: 55
        line_start: 47
        source_file: /src/nccl/plugins/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
  - test_nvl_domain_info
  - test_tuner_constants
  - show_help
  - find_test
  - main
  source_file: /src/nccl/plugins/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: 895
        line_start: 891
        source_file: /src/nccl/plugins/tuner/example/test/test_plugin.c
    typedefs:
    - item_type: typedef
      name: (*TestFunction)(void)
      pos:
        line_end: 888
        line_start: 888
        source_file: /src/nccl/plugins/tuner/example/test/test_plugin.c
      type: int
    union: []
- function_names: []
  source_file: /src/nccl/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/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/plugins/tuner/example/nccl/tuner.h
      type_or_value: '-1.0'
    - item_type: preproc_def
      name: NCCL_HW_NVLINK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_HW_PCI
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_HW_NET
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_NUM_HW_LINKS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_VOLTA_COMPCAP_IDX
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_AMPERE_COMPCAP_IDX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_HOPPER_COMPCAP_IDX
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_BLACKWELL_COMPCAP_IDX
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_NUM_COMPCAPS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_TUNING_SCALE_1NODE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_TUNING_SCALE_2NODES
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_TUNING_SCALE_4NODES
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_NUM_TUNING_SCALES
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_TUNER_PLUGIN_SYMBOL
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type_or_value: '"ncclTunerPlugin_v6"'
    structs:
    - fields:
      - name: nNvlDomains
        type: int
      - name: minRanksPerNvlDomain
        type: int
      - name: maxRanksPerNvlDomain
        type: int
      item_type: struct
      name: ncclNvlDomainInfo_v5_t
      pos:
        line_end: 67
        line_start: 63
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
    - fields:
      - name: baseLatencies [NCCL_NUM_ALGORITHMS][NCCL_NUM_PROTOCOLS]
        type: double
      - name: hwLatencies [NCCL_NUM_HW_LINKS][NCCL_NUM_ALGORITHMS][NCCL_NUM_PROTOCOLS]
        type: double
      - name: llMaxBws [NCCL_NUM_COMPCAPS][NCCL_NUM_TUNING_SCALES]
        type: double
      - name: perChMaxRingLL128Bws [NCCL_NUM_COMPCAPS][NCCL_NUM_TUNING_SCALES]
        type: double
      - name: perChMaxTreeLL128Bws [NCCL_NUM_COMPCAPS][NCCL_NUM_TUNING_SCALES]
        type: double
      - name: perChMaxTreeBws [NCCL_NUM_COMPCAPS][NCCL_NUM_TUNING_SCALES]
        type: double
      item_type: struct
      name: ncclTunerConstants_v5_t
      pos:
        line_end: 79
        line_start: 69
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
    - fields:
      - name: '* name'
        type: char
      - name: "(*init)(void** ctx, uint64_t commId, size_t nRanks, size_t nNodes,
          ncclDebugLogger_t logFunction,\n                      ncclNvlDomainInfo_v5_t*
          nvlDomainInfo, ncclTunerConstants_v5_t* constants)"
        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: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclTuner_v5_t
      pos:
        line_end: 129
        line_start: 82
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
    - fields:
      - name: '* name'
        type: char
      - name: "(*init)(void** ctx, uint64_t commId, size_t nRanks, size_t nNodes,
          ncclDebugLogger_t logFunction,\n                      ncclNvlDomainInfo_v5_t*
          nvlDomainInfo, ncclTunerConstants_v6_t* constants)"
        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: (*finalize)(void* context)
        type: ncclResult_t
      - name: "(*getChunkSize)(void* context, ncclFunc_t collType, size_t nBytes,\n
          \                              int algo, int proto, int nChannels, size_t*
          chunkSize)"
        type: ncclResult_t
      item_type: struct
      name: ncclTuner_v6_t
      pos:
        line_end: 198
        line_start: 135
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
    typedefs:
    - item_type: typedef
      name: ncclTunerConstants_v6_t
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type: ncclTunerConstants_v5_t
    - item_type: typedef
      name: ncclTuner_t
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type: ncclTuner_v6_t
    - item_type: typedef
      name: ncclNvlDomainInfo_t
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type: ncclNvlDomainInfo_v5_t
    - item_type: typedef
      name: ncclTunerConstants_t
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/nccl/plugins/tuner/example/nccl/tuner.h
      type: ncclTunerConstants_v6_t
    union: []
- function_names: []
  source_file: /src/nccl/plugins/tuner/example/nccl/common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*ncclDebugLogger_t)(ncclDebugLogLevel level, unsigned long flags, const
        char *file, int line, const char *fmt, ...)
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/nccl/plugins/tuner/example/nccl/common.h
      type: void
    union: []
- function_names: []
  source_file: /src/nccl/plugins/tuner/example/nccl/err.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCL_CHECK_RESULT
  - ncclDataTypeToCudaDataType
  - ncclTypeSize
  - ncclAllGatherHost
  - ncclBarrier
  - ncclEpGroup
  - batchAllGatherIpcHandles
  - init_hybridep_intranode
  - destroy_hybridep_intranode
  - NCCLCHECK
  - CUDACHECK_RET
  - init_hybridep_internode
  - destroy_hybridep_internode
  - ncclEpCreateGroup
  - ncclEpGroupDestroy
  - ncclEpTensorCreate
  - ncclEpTensorDestroy
  - ncclEpTensorGetData
  - ncclEpTensorGetSizes
  - ncclEpHandle
  - ~ncclEpHandle()
  - tensor_is_contiguous
  - find_tensor_by_tag
  - is_internode_available
  - tensor_free
  - ncclEpCreateHandle
  - ncclEpHandleDestroy
  - ncclEpDispatch
  - ncclEpCombine
  - ncclEpComplete
  - ncclEpHandleGetNumRecvTokens
  source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: version
        type: unsigned int
      - name: ndim
        type: unsigned int
      - name: '* sizes'
        type: unsigned int
      - name: '* strides'
        type: unsigned int
      - name: datatype
        type: ncclDataType_t
      - name: '* data'
        type: void
      - name: tag
        type: unsigned int
      - name: flags
        type: ncclEpTensorFlags_t
      - name: owns_data
        type: bool
      item_type: struct
      name: ncclNDTensor
      pos:
        line_end: 38
        line_start: 28
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - fields:
      - name: comm
        type: ncclComm_t
      - name: nRanks
        type: int
      - name: rank
        type: int
      - name: nNodes
        type: int
      - name: '* ep_workspace'
        type: void
      - name: cuda_device_id
        type: int
      - name: lsa_team_size
        type: int
      - name: rdma_ranks
        type: int
      - name: rdma_rank
        type: int
      - name: '* rdma_buffer'
        type: void
      - name: config
        type: ncclEpGroupConfig_t
      - name: gin_config
        type: "struct {\n        // Split communicator: groups ranks with same local_rank
          across nodes (nNodes ranks each)\n        ncclComm_t split_comm = nullptr;
          \     // Sub-communicator for GIN (nNodes ranks)\n        // Device communicator
          (single comm, multiple contexts)\n        ncclDevComm_t* dcomms = nullptr;
          \     // Host array of device communicators\n        ncclDevComm_t* d_dcomms
          = nullptr;    // Device array of device communicators\n        int num_comms
          = 0;                     // Number of communicators (always 1)\n        int
          num_dcomms = 0;                    // Number of device comms\n        int
          qps_per_rank = 0;                  // Total QPs (connections) per rank\n
          \       int num_ctx_per_comm = 0;              // Number of contexts per
          communicator\n\n        // GIN memory base pointer and window\n        void*
          gin_base_ptr = nullptr;         // Base pointer for all GIN memory\n        ncclWindow_t
          nccl_window = {};        // Single registered window handle (pointer-sized)\n
          \       unsigned signals_base = 0;            // Base signal ID for dispatch\n
          \       unsigned combine_signal_offset = 0;   // Signal offset for combine
          operations\n        int num_total_signals = 0;            // Total number
          of signals\n\n        // Used by kernels to calculate actual addresses for
          RDMA puts\n        size_t rdma_intra_node_red_token_offset = 0;\n        size_t
          combine_rdma_inter_node_group_token_offset = 0;\n        size_t rdma_intra_node_red_prob_offset
          = 0;\n        size_t combine_rdma_inter_node_group_prob_offset = 0;\n        size_t
          token_staging_offset = 0;\n        size_t dense_prob_offset = 0;\n        size_t
          scaling_factor_staging_offset = 0;\n\n        // Layout: [NUM_LSA_TEAMS-1][BATCH_SIZE
          * bytes_per_entry]\n        // bytes_per_entry = hidden * sizeof(TOKEN_DATA_TYPE)
          + prob_size + sf_size\n        size_t rdma_send_staging_offset = 0;\n        size_t
          rdma_inter_node_group_packed_offset = 0;  // Packed receive buffer (token+prob+sf)\n\n
          \       unsigned signals_tail_base = 0;         // Base signal ID for tail
          tracking (sender -> receiver)\n        int num_max_rdma_chunked_send_tokens
          = HYBRIDEP_DISPATCH_RDMA_BATCH_SIZE;\n\n    }"
      - name: num_local_experts
        type: int
      - name: max_recv_tokens
        type: int
      - name: hidden
        type: int
      - name: device_sm_count
        type: unsigned int
      - name: num_sms_ht
        type: unsigned int
      - name: alloc_fn
        type: ncclEpAllocFn_t
      - name: free_fn
        type: ncclEpFreeFn_t
      - name: gpus_per_node
        type: int
      - name: rank_in_node
        type: int
      - name: node_id
        type: int
      - name: lsa_rank_count
        type: int
      - name: num_nccl_comms
        type: size_t
      - name: nccl_comms
        type: std::vector<ncclComm_t>
      - name: '* nccl_dev_comms'
        type: ncclDevComm_t
      - name: '* nccl_wins'
        type: ncclWindow_t
      - name: num_dispatch_signals
        type: int
      - name: ht_buffers
        type: "struct {\n        // IPC-mapped buffer pointer arrays (fixed-size,
          indexed by local NVL rank)\n        // Host arrays for population and cleanup\n
          \       void **dispatch_expert_output_token_buffer_ptrs;\n        float
          **dispatch_expert_output_prob_buffer_ptrs;\n        float **dispatch_expert_output_scaling_factor_buffer_ptrs;\n
          \       uint16_t **combine_expert_input_token_buffer_ptrs;\n        float
          **combine_expert_input_prob_buffer_ptrs;\n\n        // Local buffers (owned
          by this rank)\n        void *expert_output_token;\n        float *expert_output_prob;\n
          \       float *expert_output_scaling_factor;\n        uint16_t *expert_input_token;\n
          \       float *expert_input_prob;\n\n        // Sync flags (rank 0 allocates,
          others IPC-map)\n        uint32_t *intra_node_write_completion_flags;\n
          \       uint32_t *combine_intra_node_write_completion_flags;\n        //
          Grid barrier counter for fused device_sync in dispatch tail (per-rank, not
          IPC-shared)\n        uint32_t *dispatch_grid_barrier_counter;\n        //
          Host-side expected flag counters (replaces device-side update_expected_value_kernel)\n
          \       uint64_t host_dispatch_expected_rdma = 0;\n        uint32_t host_dispatch_expected_intra
          = 0;\n        uint64_t host_combine_expected_rdma = 0;\n        uint32_t
          host_combine_expected_intra = 0;\n\n        // RDMA buffers (multi-node
          only)\n        uint64_t *rdma_inter_node_group_flags;\n        uint16_t
          *rdma_intra_node_red_token;\n        float *rdma_intra_node_red_prob;\n
          \       uint16_t *combine_rdma_inter_node_group_token;\n        float *combine_rdma_inter_node_group_prob;\n
          \       uint64_t *combine_rdma_inter_node_group_flags;\n\n        // Pre-registered
          dispatch buffers (group-level, allocated during Group Create)\n        //
          These are pre-registered with GIN to avoid ~60ms registration overhead during
          dispatch\n        void *token_staging_buffer;          // Pre-registered
          staging buffer for user tokens\n        float *dense_prob_buffer;            //
          Pre-registered buffer for sparse\u2192dense prob conversion\n        float
          *scaling_factor_staging_buffer; // Pre-registered staging buffer for FP8
          scaling factors\n\n        // Merged IPC buffer (single cudaMalloc for all
          IPC-shared buffers)\n        void* ipc_mega_buffer = nullptr;\n        size_t
          ipc_mega_buffer_size = 0;\n        size_t ipc_dispatch_token_offset = 0;\n
          \       size_t ipc_dispatch_prob_offset = 0;\n        size_t ipc_combine_token_offset
          = 0;\n        size_t ipc_combine_prob_offset = 0;\n\n        void** peer_ipc_base_ptrs
          = nullptr;   // Opened IPC base pointers per peer (for cleanup)\n        void*
          host_ptr_block = nullptr;        // Single cudaHostAlloc for all pointer
          arrays\n\n        // Config\n        bool initialized;\n        bool internode_initialized;\n
          \   }"
      item_type: struct
      name: ncclEpGroup
      pos:
        line_end: 315
        line_start: 151
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    - fields:
      - name: group
        type: ncclEpGroup_t
      - name: use_fp8
        type: bool
      - name: topk_idx
        type: ncclNDTensor_t
      - name: num_tokens
        type: int
      - name: cached_mode
        type: bool
      - name: num_scales
        type: int
      - name: hidden_int4
        type: int
      item_type: struct
      name: ncclEpHandle
      pos:
        line_end: 1427
        line_start: 1262
        source_file: /src/nccl/contrib/nccl_ep/nccl_ep.cc
    typedefs: []
    union: []
- function_names:
  - nccl_ep::ceil_div
  - nccl_ep::align
  - nccl_ep::clean_meta
  - nccl_ep::advance
  - nccl_ep::LowLatencyLayout
  - nccl_ep::get_low_latency_rdma_size_hint
  - nccl_ep::ceil_div
  - nccl_ep::align
  - nccl_ep::clean_meta
  - nccl_ep::advance
  - nccl_ep::LowLatencyLayout
  - nccl_ep::get_low_latency_rdma_size_hint
  source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_MAX_RDMA_PEERS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '20'
    - item_type: preproc_def
      name: NUM_WORKSPACE_BYTES
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: (32 * 1024 * 1024)
    - item_type: preproc_def
      name: NUM_MAX_LOCAL_EXPERTS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '1024'
    - item_type: preproc_def
      name: NUM_BUFFER_ALIGNMENT_BYTES
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '128'
    - item_type: preproc_def
      name: MAX_HIDDEN_DIM
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '16384'
    - item_type: preproc_def
      name: MAX_NCCL_GIN_CTX_PER_COMM
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '4'
    - item_type: preproc_def
      name: FINISHED_SUM_TAG
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '1024'
    - item_type: preproc_def
      name: NUM_WAIT_NANOSECONDS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '500'
    - item_type: preproc_def
      name: MAX_SUPPORTED_TOKENS_PER_RANK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: 8192  // Must match kernel template in hybridep_adapter.cu
    - item_type: preproc_def
      name: HT_OF_NUM_TOKENS_PER_CHUNK
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '64'
    - item_type: preproc_def
      name: NUM_CPU_TIMEOUT_SECS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '100'
    - item_type: preproc_def
      name: NUM_TIMEOUT_CYCLES
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: 200000000000ull // 200G cycles ~= 100s
    - item_type: preproc_def
      name: NUM_CPU_TIMEOUT_SECS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '10'
    - item_type: preproc_def
      name: NUM_TIMEOUT_CYCLES
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: 20000000000ull // 20G cycles ~= 10s
    - item_type: preproc_def
      name: LOW_LATENCY_SEND_PHASE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: LOW_LATENCY_RECV_PHASE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: '2'
    - item_type: preproc_def
      name: __CUDA_ARCH__
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
      type_or_value: 900 // NOLINT(*-reserved-identifier)
    structs:
    - fields:
      - name: num_clean_int
        type: int
      - name: '* dispatch_rdma_send_buffer'
        type: void
      - name: '* dispatch_rdma_recv_data_buffer'
        type: void
      - name: '* dispatch_rdma_recv_count_buffer'
        type: int
      - name: '* combine_rdma_send_buffer'
        type: void
      - name: '* combine_rdma_recv_data_buffer'
        type: void
      - name: '* combine_rdma_recv_flag_buffer'
        type: int
      - name: '* combine_rdma_send_buffer_data_start'
        type: void
      - name: num_bytes_per_combine_msg
        type: size_t
      item_type: struct
      name: LowLatencyBuffer
      pos:
        line_end: 185
        line_start: 167
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
    - fields:
      - name: total_bytes
        type: size_t
      - name: buffers[2]
        type: LowLatencyBuffer
      item_type: struct
      name: LowLatencyLayout
      pos:
        line_end: 248
        line_start: 187
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
    - fields:
      - name: num_clean_int
        type: int
      - name: '* dispatch_rdma_send_buffer'
        type: void
      - name: '* dispatch_rdma_recv_data_buffer'
        type: void
      - name: '* dispatch_rdma_recv_count_buffer'
        type: int
      - name: '* combine_rdma_send_buffer'
        type: void
      - name: '* combine_rdma_recv_data_buffer'
        type: void
      - name: '* combine_rdma_recv_flag_buffer'
        type: int
      - name: '* combine_rdma_send_buffer_data_start'
        type: void
      - name: num_bytes_per_combine_msg
        type: size_t
      item_type: struct
      name: LowLatencyBuffer
      pos:
        line_end: 185
        line_start: 167
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
    - fields:
      - name: total_bytes
        type: size_t
      - name: buffers[2]
        type: LowLatencyBuffer
      item_type: struct
      name: LowLatencyLayout
      pos:
        line_end: 248
        line_start: 187
        source_file: /src/nccl/contrib/nccl_ep/include/common.hpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_EP_AUTO
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
      type_or_value: '0'
    structs:
    - fields:
      - name: version
        type: unsigned int
      - name: algorithm
        type: ncclEpAlgorithm_t
      - name: num_experts
        type: unsigned int
      - name: max_tokens_per_rank
        type: unsigned int
      - name: token_size_bytes
        type: unsigned int
      - name: rdma_buffer_size
        type: unsigned long int
      - name: num_qp_per_rank
        type: unsigned int
      - name: num_channels
        type: unsigned int
      item_type: struct
      name: ncclEpGroupConfig_t
      pos:
        line_end: 71
        line_start: 55
        source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
    - fields:
      - name: round_scales
        type: unsigned int
      item_type: struct
      name: ncclEpDispatchConfig_t
      pos:
        line_end: 223
        line_start: 221
        source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
    typedefs:
    - item_type: typedef
      name: '* ncclNDTensor_t'
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
      type: ncclNDTensor
    - item_type: typedef
      name: '* ncclEpGroup_t'
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
      type: ncclEpGroup
    - item_type: typedef
      name: (*ncclEpAllocFn_t)(void** ptr, size_t size)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
      type: cudaError_t
    - item_type: typedef
      name: (*ncclEpFreeFn_t)(void* ptr)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
      type: cudaError_t
    - item_type: typedef
      name: '* ncclEpHandle_t'
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
      type: ncclEpHandle
    - item_type: typedef
      name: '* ncclEpHandleConfig_t'
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
      type: ncclEpHandleConfig
    - item_type: typedef
      name: ncclEpCombineConfig_t
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
      type: ncclEpCombineConfig
    - item_type: typedef
      name: ncclEpCompleteConfig_t
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/nccl/contrib/nccl_ep/include/nccl_ep.h
      type: ncclEpCompleteConfig
    union: []
