MCPcopy Create free account
hub / github.com/ROCm/clr / hipGraphAddNode

Function hipGraphAddNode

hipamd/src/hip_graph.cpp:3140–3266  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3138}
3139
3140hipError_t hipGraphAddNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
3141 const hipGraphNode_t* pDependencies, size_t numDependencies,
3142 hipGraphNodeParams* nodeParams) {
3143 HIP_INIT_API(hipGraphAddNode, pGraphNode, graph, pDependencies, numDependencies, nodeParams);
3144 if (pGraphNode == nullptr || graph == nullptr ||
3145 (numDependencies > 0 && pDependencies == nullptr) || nodeParams == nullptr) {
3146 HIP_RETURN(hipErrorInvalidValue);
3147 }
3148 hipGraphNodeType nodeType = nodeParams->type;
3149 hip::GraphNode* node;
3150 hipError_t status = hipSuccess;
3151 hip::GraphMemAllocNode* mem_alloc_node;
3152 amd::Memory* memory;
3153 size_t offset;
3154 hipMemAllocNodeParams params;
3155
3156 switch (nodeType) {
3157 case hipGraphNodeTypeKernel:
3158 status = ihipGraphAddKernelNode(&node, reinterpret_cast<hip::Graph*>(graph),
3159 reinterpret_cast<hip::GraphNode* const*>(pDependencies),
3160 numDependencies, &nodeParams->kernel, nullptr, false);
3161 break;
3162 case hipGraphNodeTypeMemcpy:
3163 status = ihipGraphAddMemcpyNode(&node, reinterpret_cast<hip::Graph*>(graph),
3164 reinterpret_cast<hip::GraphNode* const*>(pDependencies),
3165 numDependencies, &nodeParams->memcpy.copyParams, false);
3166 break;
3167 case hipGraphNodeTypeMemset:
3168 status = ihipGraphAddMemsetNode(&node, reinterpret_cast<hip::Graph*>(graph),
3169 reinterpret_cast<hip::GraphNode* const*>(pDependencies),
3170 numDependencies, &nodeParams->memset, false);
3171 break;
3172 case hipGraphNodeTypeHost:
3173 if (nodeParams->host.fn == nullptr) {
3174 HIP_RETURN(hipErrorInvalidValue);
3175 }
3176 node = new hip::GraphHostNode(&nodeParams->host);
3177 status = ihipGraphAddNode(node, reinterpret_cast<hip::Graph*>(graph),
3178 reinterpret_cast<hip::GraphNode* const*>(pDependencies),
3179 numDependencies, false);
3180 break;
3181 case hipGraphNodeTypeGraph:
3182 if (nodeParams->graph.graph == nullptr) {
3183 HIP_RETURN(hipErrorInvalidValue);
3184 }
3185 node = new hip::ChildGraphNode(reinterpret_cast<hip::Graph*>(nodeParams->graph.graph));
3186 status = ihipGraphAddNode(node, reinterpret_cast<hip::Graph*>(graph),
3187 reinterpret_cast<hip::GraphNode* const*>(pDependencies),
3188 numDependencies, false);
3189 break;
3190 case hipGraphNodeTypeWaitEvent:
3191 if (nodeParams->eventWait.event == nullptr) {
3192 HIP_RETURN(hipErrorInvalidValue);
3193 }
3194 node = new hip::GraphEventWaitNode(nodeParams->eventWait.event);
3195 status = ihipGraphAddNode(node, reinterpret_cast<hip::Graph*>(graph),
3196 reinterpret_cast<hip::GraphNode* const*>(pDependencies),
3197 numDependencies, false);

Callers

nothing calls this directly

Calls 8

ihipGraphAddKernelNodeFunction · 0.85
ihipGraphAddMemcpyNodeFunction · 0.85
ihipGraphAddMemsetNodeFunction · 0.85
ihipGraphAddNodeFunction · 0.85
getMemoryObjectFunction · 0.85
sizeMethod · 0.45
ReserveAddressMethod · 0.45
ExecuteMethod · 0.45

Tested by

no test coverage detected