SWDEV-353281 - Expose graph interface for mempool (#3115)

Change-Id: I4f0c37d27758a6bc80b5a34c85dfd07bc45b0a4c


[ROCm/hip commit: 9b7e42dd5e]
Этот коммит содержится в:
ROCm CI Service Account
2023-01-04 06:50:38 +05:30
коммит произвёл GitHub
родитель 61f1e1a582
Коммит 8ff25edae0
+75 -11
Просмотреть файл
@@ -1096,18 +1096,20 @@ typedef struct hipUserObject* hipUserObject_t;
*
*/
typedef enum hipGraphNodeType {
hipGraphNodeTypeKernel = 0, ///< GPU kernel node
hipGraphNodeTypeMemcpy = 1, ///< Memcpy node
hipGraphNodeTypeMemset = 2, ///< Memset node
hipGraphNodeTypeHost = 3, ///< Host (executable) node
hipGraphNodeTypeGraph = 4, ///< Node which executes an embedded graph
hipGraphNodeTypeEmpty = 5, ///< Empty (no-op) node
hipGraphNodeTypeWaitEvent = 6, ///< External event wait node
hipGraphNodeTypeEventRecord = 7, ///< External event record node
hipGraphNodeTypeKernel = 0, ///< GPU kernel node
hipGraphNodeTypeMemcpy = 1, ///< Memcpy node
hipGraphNodeTypeMemset = 2, ///< Memset node
hipGraphNodeTypeHost = 3, ///< Host (executable) node
hipGraphNodeTypeGraph = 4, ///< Node which executes an embedded graph
hipGraphNodeTypeEmpty = 5, ///< Empty (no-op) node
hipGraphNodeTypeWaitEvent = 6, ///< External event wait node
hipGraphNodeTypeEventRecord = 7, ///< External event record node
hipGraphNodeTypeExtSemaphoreSignal = 8, ///< External Semaphore signal node
hipGraphNodeTypeExtSemaphoreWait = 9, ///< External Semaphore wait node
hipGraphNodeTypeMemcpyFromSymbol = 10, ///< MemcpyFromSymbol node
hipGraphNodeTypeMemcpyToSymbol = 11, ///< MemcpyToSymbol node
hipGraphNodeTypeExtSemaphoreWait = 9, ///< External Semaphore wait node
hipGraphNodeTypeMemAlloc = 10, ///< Memory alloc node
hipGraphNodeTypeMemFree = 11, ///< Memory free node
hipGraphNodeTypeMemcpyFromSymbol = 12, ///< MemcpyFromSymbol node
hipGraphNodeTypeMemcpyToSymbol = 13, ///< MemcpyToSymbol node
hipGraphNodeTypeCount
} hipGraphNodeType;
@@ -1133,6 +1135,16 @@ typedef struct hipMemsetParams {
size_t width;
} hipMemsetParams;
typedef struct hipMemAllocNodeParams {
hipMemPoolProps poolProps; ///< Pool properties, which contain where
///< the location should reside
const hipMemAccessDesc* accessDescs;///< The number of memory access descriptors.
///< Must not be bigger than the number of GPUs
size_t accessDescCount; ///< The number of access descriptors
size_t bytesize; ///< The size of the requested allocation in bytes
void* dptr; ///< Returned device address of the allocation
} hipMemAllocNodeParams;
/**
* @brief hipKernelNodeAttrID
* @enum
@@ -6410,6 +6422,58 @@ hipError_t hipGraphEventWaitNodeSetEvent(hipGraphNode_t node, hipEvent_t event);
hipError_t hipGraphExecEventWaitNodeSetEvent(hipGraphExec_t hGraphExec, hipGraphNode_t hNode,
hipEvent_t event);
/**
* @brief Creates a memory allocation node and adds it to a graph
*
* @param [out] pGraphNode - Pointer to the graph node to create and add to the graph
* @param [in] graph - Instane of the graph the node to be added
* @param [in] pDependencies - Const pointer to the node dependenties
* @param [in] numDependencies - The number of dependencies
* @param [in] pNodeParams - Node parameters for memory allocation
* @returns #hipSuccess, #hipErrorInvalidValue
* @warning : This API is marked as beta, meaning, while this is feature complete,
* it is still open to changes and may have outstanding issues.
*/
hipError_t hipGraphAddMemAllocNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
const hipGraphNode_t* pDependencies, size_t numDependencies, hipMemAllocNodeParams* pNodeParams);
/**
* @brief Returns parameters for memory allocation node
*
* @param [in] node - Memory allocation node for a query
* @param [out] pNodeParams - Parameters for the specified memory allocation node
* @returns #hipSuccess, #hipErrorInvalidValue
* @warning : This API is marked as beta, meaning, while this is feature complete,
* it is still open to changes and may have outstanding issues.
*/
hipError_t hipGraphMemAllocNodeGetParams(hipGraphNode_t node, hipMemAllocNodeParams* pNodeParams);
/**
* @brief Creates a memory free node and adds it to a graph
*
* @param [out] pGraphNode - Pointer to the graph node to create and add to the graph
* @param [in] graph - Instane of the graph the node to be added
* @param [in] pDependencies - Const pointer to the node dependenties
* @param [in] numDependencies - The number of dependencies
* @param [in] dev_ptr - Pointer to the memory to be freed
* @returns #hipSuccess, #hipErrorInvalidValue
* @warning : This API is marked as beta, meaning, while this is feature complete,
* it is still open to changes and may have outstanding issues.
*/
hipError_t hipGraphAddMemFreeNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
const hipGraphNode_t* pDependencies, size_t numDependencies, void* dev_ptr);
/**
* @brief Returns parameters for memory free node
*
* @param [in] node - Memory free node for a query
* @param [out] dev_ptr - Device pointer for the specified memory free node
* @returns #hipSuccess, #hipErrorInvalidValue
* @warning : This API is marked as beta, meaning, while this is feature complete,
* it is still open to changes and may have outstanding issues.
*/
hipError_t hipGraphMemFreeNodeGetParams(hipGraphNode_t node, void* dev_ptr);
/**
* @brief Get the mem attribute for graphs.
*