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