-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathDLPack.cpp
More file actions
34 lines (28 loc) · 1.27 KB
/
DLPack.cpp
File metadata and controls
34 lines (28 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "pyAMReX.H"
#include "dlpack.h"
void init_DLPack(py::module& m)
{
using namespace amrex;
// register types only if not already present, e.g., from another library
// that also implements DLPack bindings and exposes the types
py::type pyDLDeviceType = false; // TODO: py::type::of<DLDeviceType>();
if (!pyDLDeviceType) {
py::native_enum<DLDeviceType>(m, "DLDeviceType", "enum.IntEnum")
.value("kDLCPU", DLDeviceType::kDLCPU)
.value("kDLCUDA", DLDeviceType::kDLCUDA)
.value("kDLCUDAHost", DLDeviceType::kDLCUDAHost)
.value("kDLOpenCL", DLDeviceType::kDLOpenCL)
.value("kDLVulkan", DLDeviceType::kDLVulkan)
.value("kDLMetal", DLDeviceType::kDLMetal)
.value("kDLVPI", DLDeviceType::kDLVPI)
.value("kDLROCM", DLDeviceType::kDLROCM)
.value("kDLROCMHost", DLDeviceType::kDLROCMHost)
.value("kDLExtDev", DLDeviceType::kDLExtDev)
.value("kDLCUDAManaged", DLDeviceType::kDLCUDAManaged)
.value("kDLOneAPI", DLDeviceType::kDLOneAPI)
.value("kDLWebGPU", DLDeviceType::kDLWebGPU)
.value("kDLHexagon", DLDeviceType::kDLHexagon)
.value("kDLMAIA", DLDeviceType::kDLMAIA)
;
}
}