1个不稳定版本
0.1.1 | 2024年7月19日 |
---|
#283 in 算法
98 每月下载量
用于 3 crates
695KB
17K SLoC
CubeCL线性代数库。
该crate包含常见的线性代数算法。
算法
-
二维矩阵分块乘法。
内核非常灵活,几乎可以在任何硬件上使用。
-
合作矩阵乘法。
内核使用自动混合精度(AMP)来利用合作矩阵乘法和累加指令。对于
f32
张量,输入被转换为f16
,但累加仍然在f32
中执行。这可能会造成一些精度损失,但执行速度会更快。
基准测试
您可以使用以下命令从工作空间运行基准测试
cargo bench --bench matmul --features wgpu # for wgpu
cargo bench --bench matmul --features cuda # for cuda
在RTX 3070上,我们得到以下结果
matmul-wgpu-f32-tiling2d
―――――――― Result ―――――――――
Samples 100
Mean 13.289ms
Variance 28.000ns
Median 13.271ms
Min 12.582ms
Max 13.768ms
―――――――――――――――――――――――――
matmul-cuda-f32-tiling2d
―――――――― Result ―――――――――
Samples 100
Mean 12.754ms
Variance 93.000ns
Median 12.647ms
Min 12.393ms
Max 14.501ms
―――――――――――――――――――――――――
matmul-cuda-f32-cmma
―――――――― Result ―――――――――
Samples 100
Mean 4.996ms
Variance 35.000ns
Median 5.084ms
Min 4.304ms
Max 5.155ms
―――――――――――――――――――――――――
依赖关系
~3–4.5MB
~82K SLoC