Double 2 int8
导言
之前ipcc比赛认为很神奇的CPU侧的double2int8的转换,其实思想就是AI推理的常见低比特量化思路。
将范围double映射到Int8¶
解释PPT:除开int8的映射,还考虑了误差的计算,和重新计算M+空间的double并排序。
注释:
- 采用的是欧式距离(两点直线距离),不是切比雪夫距离(
max(delta x, delta y)
) C_2^n
,由于目标函数是所有边的距离和,所以要乘以边的数量。C_2^n
是从n个点中取两个点的组合数,也就是边的数量。C_k^n
, k是支撑点个数,n 是总个数。- 修正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里的,少有的思路
参考文献¶
无