xref: /aosp_15_r20/external/pytorch/c10/util/qint8.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Worker #pragma once
2*da0073e9SAndroid Build Coastguard Worker #include <cstdint>
3*da0073e9SAndroid Build Coastguard Worker 
4*da0073e9SAndroid Build Coastguard Worker #include <c10/macros/Macros.h>
5*da0073e9SAndroid Build Coastguard Worker 
6*da0073e9SAndroid Build Coastguard Worker namespace c10 {
7*da0073e9SAndroid Build Coastguard Worker 
8*da0073e9SAndroid Build Coastguard Worker /**
9*da0073e9SAndroid Build Coastguard Worker  * This is the data type for quantized Tensors. Right now we only have
10*da0073e9SAndroid Build Coastguard Worker  * qint8 which is for 8 bit Tensors, and qint32 for 32 bit int Tensors,
11*da0073e9SAndroid Build Coastguard Worker  * we might have 4 bit, 2 bit or 1 bit data types in the future.
12*da0073e9SAndroid Build Coastguard Worker  */
13*da0073e9SAndroid Build Coastguard Worker struct alignas(1) qint8 {
14*da0073e9SAndroid Build Coastguard Worker   using underlying = int8_t;
15*da0073e9SAndroid Build Coastguard Worker   int8_t val_;
16*da0073e9SAndroid Build Coastguard Worker   qint8() = default;
qint8qint817*da0073e9SAndroid Build Coastguard Worker   C10_HOST_DEVICE explicit qint8(int8_t val) : val_(val) {}
18*da0073e9SAndroid Build Coastguard Worker };
19*da0073e9SAndroid Build Coastguard Worker 
20*da0073e9SAndroid Build Coastguard Worker } // namespace c10
21