forked from Tensor-Array/Tensor-Array
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdevices.hh
More file actions
69 lines (50 loc) · 1.56 KB
/
devices.hh
File metadata and controls
69 lines (50 loc) · 1.56 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
Copyright 2024 TensorArray-Creators
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#pragma once
#ifdef _WIN32
#ifdef TENSOR_ARRAY_EXPORTS
#define TENSOR_ARRAY_API __declspec(dllexport)
#else
#define TENSOR_ARRAY_API __declspec(dllimport)
#endif
#else
#define TENSOR_ARRAY_API
#endif
namespace tensor_array
{
namespace devices
{
enum DeviceType
{
CPU,
CUDA,
};
struct Device
{
DeviceType dev_t;
int index;
};
constexpr Device DEVICE_CPU_0{ CPU,0 };
TENSOR_ARRAY_API Device& local_device();
void device_memcpy(void*, Device, const void*, Device, size_t);
void device_memcpy(void*, Device, const void*, Device, size_t, void*);
void device_memset(void*, Device, int, size_t);
void device_memset(void*, Device, int, size_t, void*);
TENSOR_ARRAY_API void device_CUDA_get_info();
}
}
void* operator new(size_t, tensor_array::devices::Device);
void* operator new(size_t, tensor_array::devices::Device, void*);
void operator delete(void*, tensor_array::devices::Device);
void operator delete(void*, tensor_array::devices::Device, void*);
#undef TENSOR_ARRAY_API