ops-rand
🔥Latest News
- [2026/03] ops-rand仓对外开源
🚀概述
ops-rand是CANN (Compute Architecture for Neural Networks)算子库中提供的随机数生成库。
主要特性
- ✅ 模块化设计 - 支持动态添加算子模块,每个算子独立开发、编译和测试
- ✅ 标准 CMake 构建 - 跨平台编译支持,统一的构建流程
- ✅ 完整测试体系 - 基于自定义测试框架,支持自动化测试和超时控制
- ✅ 便捷打包 - 一键生成 .run 安装包,支持 install/uninstall/upgrade
- ✅ 版本管理 - 安装信息记录和版本追踪,支持升级管理
- ✅ 轻量高效 - 简洁的架构设计,避免过度工程化
📝 版本配套
当前仓库已验证通过的 CANN Toolkit 如下:
| CANN 版本 | 发布时间 | 分支 |
|---|---|---|
| CANN 9.0.0-beta.2 | 2026/03/30 |
master |
请根据实际 CPU 架构,从上述链接目录中自行选择对应的 .run 安装包。
toolkit 安装包文件名格式如下:
Ascend-cann-toolkit_${cann_version}_linux-aarch64.runAscend-cann-toolkit_${cann_version}_linux-x86_64.run
-
安装社区版 CANN Toolkit
# 确保安装包具有可执行权限 chmod +x Ascend-cann-toolkit_${cann_version}_linux-${arch}.run # 安装命令 ./Ascend-cann-toolkit_${cann_version}_linux-${arch}.run --install --force --install-path=${install_path}${cann_version}:表示 toolkit 安装包版本号,需满足上文的最低版本要求。${arch}:表示 CPU 架构,如aarch64、x86_64。${install_path}:表示指定安装路径,默认安装在/usr/local/Ascend目录。
-
配置环境变量
安装完成后,请先执行:
source ${install_path}/cann/set_env.sh请将
${install_path}替换为 toolkit 的实际安装目录,例如/usr/local/Ascend或${HOME}/Ascend。
⚡️ 快速入门
编译与测试
详细的 build.sh 参数说明请参考 build 参数说明。
# 编译所有算子(默认 8 线程)
./build.sh
# 编译指定算子
./build.sh --ops=stateless_random_uniform_v2
# 编译并运行测试
./build.sh --run
# 编译并打包成 .run 文件
./build.sh --pkg
# 查看完整帮助信息
./build.sh --help
安装
# 标准安装(需要 root 权限)
sudo ./cann-950-ops-rand_9.0.0_linux-*.run
# 查看安装包信息
./cann-950-ops-rand_9.0.0_linux-*.run --help
# 安装到自定义路径
sudo ./cann-950-ops-rand_9.0.0_linux-*.run --install-path=/opt/ascend
# 卸载
sudo ./cann-950-ops-rand_9.0.0_linux-*.run --uninstall
# 升级
sudo ./cann-950-ops-rand_9.0.0_linux-*.run --upgrade
📖 项目说明
支持的算子
当前支持的算子列表:
| 算子名称 | 描述 | 状态 |
|---|---|---|
| StatelessRandomUniformV2 | 生成无状态的均匀分布随机数,给定种子可复现结果 | ✅ 已实现 |
更多算子正在持续开发中...
SoC 支持矩阵
| SoC 型号 | SOC_VERSION | 支持状态 |
|---|---|---|
| Ascend950 | ascend950dt_9595 | ✅ 默认支持 |
| Ascend910B | ascend910b3 | ❌ 暂不支持 |
| Ascend910_93 | ascend910_93 | ❌ 暂不支持 |
| Ascend910 | ascend910 | ❌ 暂不支持 |
| Ascend310P | ascend310p | ❌ 暂不支持 |
| Ascend310B | ascend310b | ❌ 暂不支持 |
🔍目录结构
关键目录如下,详细目录介绍参见项目目录。
├── cmake # 项目工程编译目录
├── docs # 项目文档介绍
├── include # 头文件目录
├── lib # Generator API 实现代码
├── src # 源码目录
│ ├── stateless_random_uniform_v2 # 无状态均匀分布随机数算子
│ ├── common # 算子公共代码
│ ├── internal # 内部实现头文件
│ └── CMakeLists.txt # 算子编译配置文件
├── scripts # 脚本目录,包含自定义算子、kernel构建相关配置文件
├── tests # 测试工程目录
├── CMakeLists.txt
├── README.md
├── build.sh # 项目工程编译脚本
├── install_deps.sh # 安装依赖包脚本
└── requirements.txt # 项目需要的第三方依赖包
📖学习教程
若您已完成快速入门学习,对本项目有了一定认知,并希望深入了解和体验项目,请访问如下文档。
这些文档提供了多样化的场景介绍和更全面的操作指导,方便您应用于各种AI业务场景。
- 算子调用:编译部署并调用算子的指南,提供了多种编译算子包以及运行算子的方法(包括执行算子样例和UT)等。
- 算子开发:基于本项目工程开发新算子的指南,提供了创建算子工程、实现Tiling和Kernel核心交付件等指导。
- 算子调试调优:提供了常见的算子调试和调优方法,如DumpTensor、msProf、Simulator等。
💬相关信息
🤝联系我们
本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。