STORMM Source Documentation
Loading...
Searching...
No Matches
gpu_enumerators.h
1// -*-c++-*-
2#ifndef STORMM_GPU_ENNUMERATORS_H
3#define STORMM_GPU_ENNUMERATORS_H
4
5#include <string>
6#include "copyright.h"
7
8namespace stormm {
9namespace card {
10
13enum class HybridKind {
14 ARRAY,
15 POINTER
17};
18
20enum class HybridFormat {
21#ifdef STORMM_USE_HPC
22 EXPEDITED,
27 DECOUPLED,
28 UNIFIED,
30 HOST_MOUNTED,
32 HOST_ONLY,
34 DEVICE_ONLY
37#else
38 HOST_ONLY
39#endif
40};
41
44enum class HybridTargetLevel {
45#ifdef STORMM_USE_HPC
46 HOST, DEVICE
47#else
48 HOST
49#endif
50};
51
61enum class HpcKernelSync {
62 BEFORE,
63 AFTER,
64 BEFORE_AND_AFTER,
65 NO_SYNC,
66 MEMORY_AUTO
73};
74
80std::string getEnumerationName(HybridKind input);
81std::string getEnumerationName(HybridFormat input);
82std::string getEnumerationName(HybridTargetLevel input);
83std::string getEnumerationName(HpcKernelSync input);
85
86} // namespace card
87} // namespace stormm
88
89#endif