(onnx-detail-int2) =
2比特整数类型¶
论文¶
T-MAC:通过查表实现边缘设备上低比特LLM部署的CPU复兴
T-MAC 是一种创新的基于查找表(LUT)的方法,旨在高效地在CPU上进行低比特LLM(即权重量化的LLM)推理。T-MAC直接支持mpGEMM而无需去量化,同时消除了乘法并减少了所需的加法。具体来说,T-MAC将传统的数据类型中心乘法转换为位级查表,并实现了一个统一且可扩展的mpGEMM解决方案。
Cast¶
从2比特类型转换为任何更高精度的类型都是精确的。转换为2比特类型通过四舍五入到最近的偶数整数(平局时舍入到偶数)并截断来完成。
打包和解包(2比特)¶
所有2比特类型都以4个2比特值存储在一个字节中。元素从最低有效位(LSB)到最高有效位(MSB)打包。也就是说,对于数组中连续的元素x0、x1、x2、x3
打包
pack(x0, x1, x2, x3):
(x0 & 0x03) |
((x1 & 0x03) << 2) |
((x2 & 0x03) << 4) |
((x3 & 0x03) << 6)
解包
x0 = z & 0x03
x1 = (z >> 2) & 0x03
x2 = (z >> 4) & 0x03
x3 = (z >> 6) & 0x03
如果元素的总数不能被4整除,则在最终字节的剩余高位中应用零填充。大小为N的2比特张量的存储大小为:ceil(N / 4) 字节