Add HYPRE_GetExecutionPolicyName (#969)

* Add HYPRE_GetExecutionPolicyName
* Add doc entries to memory/execution routines
This commit is contained in:
Victor A. P. Magri 2023-09-22 16:02:53 -04:00 committed by GitHub
parent 593fe4cba7
commit 57862ef6e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 0 deletions

View File

@ -249,7 +249,16 @@ typedef enum _HYPRE_MemoryLocation
HYPRE_MEMORY_DEVICE
} HYPRE_MemoryLocation;
/**
* (Optional) Sets the default (abstract) memory location.
**/
HYPRE_Int HYPRE_SetMemoryLocation(HYPRE_MemoryLocation memory_location);
/**
* (Optional) Gets a pointer to the default (abstract) memory location.
**/
HYPRE_Int HYPRE_GetMemoryLocation(HYPRE_MemoryLocation *memory_location);
#include <stdlib.h>
@ -265,9 +274,24 @@ typedef enum _HYPRE_ExecutionPolicy
HYPRE_EXEC_DEVICE
} HYPRE_ExecutionPolicy;
/**
* (Optional) Sets the default execution policy.
**/
HYPRE_Int HYPRE_SetExecutionPolicy(HYPRE_ExecutionPolicy exec_policy);
/**
* (Optional) Gets a pointer to the default execution policy.
**/
HYPRE_Int HYPRE_GetExecutionPolicy(HYPRE_ExecutionPolicy *exec_policy);
/**
* (Optional) Returns a string denoting the execution policy passed as input.
**/
const char* HYPRE_GetExecutionPolicyName(HYPRE_ExecutionPolicy exec_policy);
/*--------------------------------------------------------------------------
* HYPRE UMPIRE
*--------------------------------------------------------------------------*/

View File

@ -662,3 +662,31 @@ HYPRE_GetExecutionPolicy(HYPRE_ExecutionPolicy *exec_policy)
return hypre_error_flag;
}
const char*
HYPRE_GetExecutionPolicyName(HYPRE_ExecutionPolicy exec_policy)
{
switch (exec_policy)
{
case HYPRE_EXEC_HOST:
return "Host";
case HYPRE_EXEC_DEVICE:
#if defined(HYPRE_USING_GPU) || defined(HYPRE_USING_DEVICE_OPENMP)
#if defined(HYPRE_USING_CUDA)
return "Device (CUDA)";
#elif defined(HYPRE_USING_HIP)
return "Device (HIP)";
#elif defined(HYPRE_USING_SYCL)
return "Device (SYCL)";
#else
return "Device (OpenMP)";
#endif
#else
return "Host";
#endif
case HYPRE_EXEC_UNDEFINED:
default:
return "Undefined";
}
}