Hasty Briefsbeta

双语

How to pack ternary numbers in 8-bit bytes

a day ago
  • #ternary packing
  • #SIMD optimization
  • #BitNet b1.58
  • 文章讨论了如何将三元数(trits)高效打包到8位字节中,以便进行SIMD友好的解包操作,重点研究了块大小为5个trits的方案,该方案能以99.06%的效率存入8位。
  • 打包过程涉及将trits(值-1、0、1)转换为三进制数字(0、1、2),并采用定点算术以避免解包时的除法运算,从而实现快速的SIMD操作。
  • 一项关键技术利用乘法和位移操作来提取数字,无需模运算,该方法已在llama.cpp中用于TriLMs和BitNet b1.58模型,并支持AVX2和ARM NEON的SIMD指令集。