InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
data_type.h
Go to the documentation of this file.
1#ifndef INFINI_OPS_DATA_TYPE_H_
2#define INFINI_OPS_DATA_TYPE_H_
3
4#include <infini/rt.h>
5
6#include "common/traits.h"
7#include "device.h"
8
9namespace infini::ops {
10
11using infini::rt::DataType;
12
13using infini::rt::BFloat16;
14using infini::rt::Float16;
15
16using infini::rt::kDataTypeToDesc;
17using infini::rt::kDataTypeToSize;
18using infini::rt::kStringToDataType;
19
20template <Device::Type dev, DataType dtype>
21using TypeMap = infini::rt::TypeMap<dev, dtype>;
22
23template <Device::Type dev, DataType dtype>
24using TypeMapType = infini::rt::TypeMapType<dev, dtype>;
25
26template <Device::Type dev, typename T>
27inline constexpr bool IsBFloat16 = infini::rt::IsBFloat16<dev, T>;
28
29template <Device::Type dev, typename T>
30inline constexpr bool IsFP16 = infini::rt::IsFP16<dev, T>;
31
32using FloatTypes = List<DataType::kFloat32, DataType::kFloat64>;
33using ReducedFloatTypes = List<DataType::kFloat16, DataType::kBFloat16>;
34using IntTypes =
35 List<DataType::kInt8, DataType::kInt16, DataType::kInt32, DataType::kInt64>;
36using UIntTypes = List<DataType::kUInt8, DataType::kUInt16, DataType::kUInt32,
37 DataType::kUInt64>;
38
39using BitTypes8 = List<DataType::kInt8, DataType::kUInt8>;
40using BitTypes16 = List<DataType::kInt16, DataType::kUInt16, DataType::kFloat16,
41 DataType::kBFloat16>;
43 List<DataType::kInt32, DataType::kUInt32, DataType::kFloat32>;
45 List<DataType::kInt64, DataType::kUInt64, DataType::kFloat64>;
46
47using AllFloatTypes = ConcatType<FloatTypes, ReducedFloatTypes>;
48using AllIntTypes = ConcatType<IntTypes, UIntTypes>;
49using AllTypes = ConcatType<AllFloatTypes, AllIntTypes>;
50
51} // namespace infini::ops
52
53#endif
Definition generated/include/operator.h:28
constexpr bool IsFP16
Definition data_type.h:30
List< DataType::kInt8, DataType::kUInt8 > BitTypes8
Definition data_type.h:39
List< DataType::kFloat32, DataType::kFloat64 > FloatTypes
Definition data_type.h:32
List< DataType::kFloat16, DataType::kBFloat16 > ReducedFloatTypes
Definition data_type.h:33
List< DataType::kInt64, DataType::kUInt64, DataType::kFloat64 > BitTypes64
Definition data_type.h:45
ConcatType< IntTypes, UIntTypes > AllIntTypes
Definition data_type.h:48
List< DataType::kUInt8, DataType::kUInt16, DataType::kUInt32, DataType::kUInt64 > UIntTypes
Definition data_type.h:37
ConcatType< FloatTypes, ReducedFloatTypes > AllFloatTypes
Definition data_type.h:47
List< DataType::kInt8, DataType::kInt16, DataType::kInt32, DataType::kInt64 > IntTypes
Definition data_type.h:35
ConcatType< AllFloatTypes, AllIntTypes > AllTypes
Definition data_type.h:49
constexpr bool IsBFloat16
Definition data_type.h:27
infini::rt::TypeMapType< dev, dtype > TypeMapType
Definition data_type.h:24
List< DataType::kInt32, DataType::kUInt32, DataType::kFloat32 > BitTypes32
Definition data_type.h:43
List< DataType::kInt16, DataType::kUInt16, DataType::kFloat16, DataType::kBFloat16 > BitTypes16
Definition data_type.h:41
infini::rt::TypeMap< dev, dtype > TypeMap
Definition data_type.h:21