1个不稳定版本

0.1.1 2024年7月19日

#283 in 算法

Download history 111/week @ 2024-07-14 38/week @ 2024-07-21 19/week @ 2024-07-28 1/week @ 2024-08-04 6/week @ 2024-08-11

98 每月下载量
用于 3 crates

MIT/Apache

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