#机器学习 #simd #向量化 #函数 #mathml #ml模型

rten-vecmath

机器学习模型中使用的各种数学函数的SIMD向量化实现

8个重大版本发布

0.11.0 2024年7月5日
0.9.0 2024年5月16日
0.6.0 2024年3月31日
0.1.0 2023年12月31日

机器学习 中排名第 458

Download history • Rust 包仓库 81/week @ 2024-04-16 • Rust 包仓库 149/week @ 2024-04-23 • Rust 包仓库 347/week @ 2024-04-30 • Rust 包仓库 123/week @ 2024-05-07 • Rust 包仓库 502/week @ 2024-05-14 • Rust 包仓库 350/week @ 2024-05-21 • Rust 包仓库 227/week @ 2024-05-28 • Rust 包仓库 122/week @ 2024-06-04 • Rust 包仓库 148/week @ 2024-06-11 • Rust 包仓库 133/week @ 2024-06-18 • Rust 包仓库 145/week @ 2024-06-25 • Rust 包仓库 287/week @ 2024-07-02 • Rust 包仓库 199/week @ 2024-07-09 • Rust 包仓库 215/week @ 2024-07-16 • Rust 包仓库 224/week @ 2024-07-23 • Rust 包仓库 230/week @ 2024-07-30 • Rust 包仓库

每月下载量 903
6 个crate中使用(通过 rten

MIT/Apache

93KB
2K SLoC

rten-vecmath

此crate提供跨平台的SIMD类型,该类型抽象了不同架构上的SIMD内嵌函数。与 std::simd 不同,此功能在稳定的Rust上工作。该crate还包括在运行时检测可用指令并调度到最佳实现的功能。

此crate还包含了一些机器学习模型中性能关键数学函数(如exp、erf、tanh、softmax等)的SIMD向量化版本。


lib.rs:

神经网络中常用数学函数的SIMD向量化实现

在此库中的每个函数都有多个变体,通常包括

  • 一个操作标量的版本
  • 一个从输入切片读取值并将其写入等长输出切片对应位置的版本。这些版本以 vec_ 前缀命名。
  • 一个从可变输入切片读取值并将计算结果就地写入的版本。这些版本以 vec_ 前缀和 _in_place 后缀命名。

所有变体都使用相同的底层实现,应该具有相同的精度。

有关精度的注释,请参阅源代码。

依赖项