diff --git a/projects/clr/hipamd/src/hip_graph_internal.hpp b/projects/clr/hipamd/src/hip_graph_internal.hpp index d088cf3f5f..553fb6e2f1 100644 --- a/projects/clr/hipamd/src/hip_graph_internal.hpp +++ b/projects/clr/hipamd/src/hip_graph_internal.hpp @@ -591,6 +591,9 @@ class Graph { } graphUserObj_.clear(); memAllocNodePtrs_.clear(); + if (instantiateDeviceId_ != -1) { + static_cast(g_devices[instantiateDeviceId_])->release(); + } } void AddManualNodeDuringCapture(GraphNode* node) { capturedNodes_.insert(node); } @@ -779,6 +782,7 @@ class Graph { //!< Used to track which devices are accessed by each parallel stream //!< during multi-device graph execution scheduling. std::unordered_map> streams_dev_ids_; + int instantiateDeviceId_ = -1; private: friend class GraphExec; @@ -836,9 +840,6 @@ class GraphExec : public amd::ReferenceCountedObject, public Graph { kernArgManager_->release(); } } - if (instantiateDeviceId_ != -1) { - static_cast(g_devices[instantiateDeviceId_])->release(); - } packetBatches_.clear(); nodeCaptureStatus_.clear(); @@ -899,7 +900,6 @@ class GraphExec : public amd::ReferenceCountedObject, public Graph { std::unordered_map> parallel_streams_; uint64_t flags_ = 0; GraphKernelArgManager* kernArgManager_ = nullptr; //!< Kernel Arg manager for graph. - int instantiateDeviceId_ = -1; bool hasHiddenHeap_ = false; //!< Hidden heap indicator for Kernel node bool repeatLaunch_ = false;