134 个版本
0.21.6 | 2024 年 7 月 24 日 |
---|---|
0.21.4 | 2024 年 4 月 23 日 |
0.21.2 |
|
0.20.22 | 2023 年 11 月 28 日 |
0.2.9 | 2019 年 3 月 28 日 |
#367 在 机器学习
33,909 每月下载次数
在 39 个 软件包中使用(直接使用 2 个)
615KB
14K SLoC
tract-linalg
linalg 代表 "线性代数"。这是一个误称。这个软件包包含 tract-core 使用的低级、架构相关的优化。
函数
- MatMatMul:扩展矩阵乘法
- 受 Gotoblass 和 BLIS 微内核方法启发
- 扩展用于卷积友好的寻址(融合 img2col)
- 融合输出管道(min、max 和一些其他简单、快速的运算)
- f32*f32 -> f32 (类似于 sgemm)
- i8*i8 -> i32 累加器 -> i32 存储
- i8*i8 -> i32 累加器 -> i8(带有通道零点、缩放和重新量化管道)
- f32 sigmoid 和 f32 tanh:在 f32 精度下,通过一个合理的函数(无指数运算)
- 字节数据查找表
实现
通用回退 | armv6, vfp | armv7 neon | armv8 simd | x64 FMA | |
---|---|---|---|---|---|
MatMatMul f32 | 4x4 | 8x4 | 8x8 | 16x6 | |
MatMatMul i8->i8 | 8x4 | 8x8 | |||
MatMatMul i8->i32 | 8x8 | ||||
sigmoid f32 | 4n | 4n | |||
tanh f32 | 4n | 4n | |||
字查找 |
依赖项
~9–13MB
~230K SLoC