跳转至

Double 2 int8

导言

之前ipcc比赛认为很神奇的CPU侧的double2int8的转换,其实思想就是AI推理的常见低比特量化思路。

将范围double映射到Int8

解释PPT:除开int8的映射,还考虑了误差的计算,和重新计算M+空间的double并排序。

注释:

  1. 采用的是欧式距离(两点直线距离),不是切比雪夫距离(max(delta x, delta y)
  2. C_2^n ,由于目标函数是所有边的距离和,所以要乘以边的数量。C_2^n 是从n个点中取两个点的组合数,也就是边的数量。
  3. C_k^n , k是支撑点个数,n 是总个数。
  4. 修正M个,因为题目要求求TopM,由于第M个可能是 +delta来的,M+1个可能是-delta导致的,所以要修正M个后面2*delta的范围。

上面不知道具体怎么实现的(需要看代码)。下面同时要注意溢出的处理。int8溢出加法,可以转化为int16, 再相加。

_mm256_cvtepi8_epi16

AVX的操作Int寄存器也是分有无符号

_epi8 signed char, or _epu8 unsigned char

去年决赛冠军-上交队的思路

这是我搜集这么多PPT里的,少有的思路

参考文献