当前位置: 首页 > news >正文

CANN/ops-rand API 实现状态

ops-rand API 实现状态

【免费下载链接】ops-randops-rand是CANN (Compute Architecture for Neural Networks)算子库中提供的随机数生成库。项目地址: https://gitcode.com/cann/ops-rand

版本信息

  • 当前版本: v1.0.0
  • 更新日期: 2026-03-21
  • 开发阶段: Phase 1 - Generator & Uniform

✅ 已实现接口 (Phase 1)

1. 版本管理

  • aclrandGetVersion- 获取库版本号

2. 生成器管理

  • aclrandCreateGenerator- 创建随机数生成器
  • aclrandDestroyGenerator- 销毁生成器

3. 生成器配置

  • aclrandSetGeneratorSeed- 设置生成器种子
  • aclrandSetGeneratorOffset- 设置生成器偏移量
  • aclrandSetGeneratorStream- 设置 ACL 流

4. 随机数生成

  • aclrandGenerateUniform- 生成均匀分布随机数 (FP32)

5. 辅助工具

  • aclrandGetErrorString- 获取错误字符串(待验证)

6. 已实现算子

  • stateless_random_uniform_v2(无状态均匀分布) -src/stateless_random_uniform_v2/

7. 支持范围

  • 生成器类型:ACLRAND_RNG_PSEUDO_DEFAULT,ACLRAND_RNG_PSEUDO_PHILOX4_32_10
  • 数据类型: FP32 (float)
  • 芯片: Ascend 950

⏸️ 待实现接口

Phase 2 - 分布扩展

必须实现

  • aclrandGenerateUniformDouble- 双精度均匀分布
  • aclrandGenerateUniformHalf- 半精度均匀分布 (FP16)
  • aclrandGenerateNormal- 单精度正态分布
  • aclrandGenerate- 32 位原始随机数

重要功能

  • aclrandGenerateNormalDouble- 双精度正态分布
  • aclrandGenerateNormalHalf- 半精度正态分布
  • aclrandGenerateLogNormal- 对数正态分布
  • aclrandGenerateLogNormalDouble- 双精度对数正态
  • aclrandGenerateLogNormalHalf- 半精度对数正态
  • aclrandGenerateLongLong- 64 位原始随机数

Phase 3 - 引擎扩展

必须实现

  • aclrandGeneratePoisson- 泊松分布
  • aclrandCreateDiscreteDistribution- 创建离散分布
  • aclrandDestroyDistribution- 销毁离散分布
  • aclrandGenerateDiscrete- 离散分布采样

重要功能

  • aclrandSetQuasiRandomDimensions- 设置准随机维度
  • aclrandGetDirectionVectors32- 获取 Sobol 方向向量 (32位)
  • aclrandGetDirectionVectors64- 获取 Sobol 方向向量 (64位)

新增生成器类型

  • ACLRAND_RNG_PSEUDO_XORWOW
  • ACLRAND_RNG_PSEUDO_MRG32K3A
  • ACLRAND_RNG_PSEUDO_MTGP32
  • ACLRAND_RNG_PSEUDO_LFSR113
  • ACLRAND_RNG_PSEUDO_THREEFRY2_32_20
  • ACLRAND_RNG_QUASI_SOBOL32
  • ACLRAND_RNG_QUASI_SOBOL64

Phase 4 - 高级特性

可选功能

  • aclrandCreateGeneratorHost- Host 端生成器
  • ops_rand_state_philox4x32_10- Device API 状态结构
  • ops_rand_init- Device API 初始化
  • ops_rand_uniform- Device API 均匀分布
  • ops_rand_uniform4- Device API 批量生成
  • ops_rand_normal- Device API 正态分布
  • aclrandSetOrdering- 设置排序方式

⏸️ 待支持数据类型

必须实现

  • FP16 (aclFloat16)
  • FP64 (double)

重要功能

  • BF16 (bfloat16)

可选功能

  • INT32, UINT32
  • INT64, UINT64

📊 实现进度统计

类别已实现待实现总计
API 接口72229
生成器类型2911
分布类型178
数据类型145
算子1--

总体完成度: Phase 1 (Generator & Uniform) ✅


📝 开发路线图

Phase 1: Generator & Uniform ✅ (已完成)

  • 基础架构搭建
  • 生成器管理接口
  • Philox 生成器实现
  • Uniform 分布生成 (FP32)
  • stateless_random_uniform_v2 算子
  • 打包流程

Phase 2: 分布扩展 (下一步)

  • 多数据类型支持 (FP16/FP64)
  • 正态分布
  • 对数正态分布
  • 原始随机数生成 (32/64位)
  • Box-Muller 变换算法

Phase 3: 引擎扩展

  • 泊松分布
  • 离散分布
  • XORWOW 生成器
  • Sobol 准随机生成器
  • MRG32K3A 生成器

Phase 4: 高级特性

  • Host 端生成器
  • Device API (AscendC 内部调用)
  • 性能优化
  • 多流并行支持

📌 当前限制

  1. 数据类型: 仅支持 FP32
  2. 分布类型: 仅支持 Uniform (均匀分布)
  3. 生成器: 仅支持 Philox4x32_10
  4. 算子: 仅实现 stateless_random_uniform_v2
  5. 不支持: 正态分布、泊松分布、离散分布、准随机序列

🔧 设计参考

  • API 设计: 参考 rocrand/cuRAND
  • 生成器算法: Philox4x32_10 (计数器模式)
  • 测试框架: 自研轻量级测试框架

文档维护: 请在实现新接口时及时更新本文档

【免费下载链接】ops-randops-rand是CANN (Compute Architecture for Neural Networks)算子库中提供的随机数生成库。项目地址: https://gitcode.com/cann/ops-rand

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/786367/

相关文章:

  • React聊天机器人组件集成指南:从UI定制到AI后端连接
  • 从特征工程到深度学习:AI视网膜疾病诊断的技术演进与工程实践
  • 脑机接口与LLM融合:EEGChat项目实现脑电信号到文本的意图解码
  • 【C++】stackqueuedequepriority_queue深度剖析
  • Codex Mac 安装报错解决教程(应用程序“Codex“无法打开)
  • 第一行代码--初步学习--UI开发--ListView
  • 自动化立体仓库系统项目施工要点
  • Win系统实现网络转发与端口映射:从 IPEnableRouter 到 RRAS 完整步骤
  • 如何快速掌握Blender插件io_scene_psk_psa:虚幻引擎PSK/PSA格式完整指南
  • 数据泄露已成网络安全新热点!成因、危害、溯源防御全方位深度解析
  • 从黑盒模型到因果反事实解释:构建可解释AI的实践路径
  • AI定价算法中的市场分配与合谋机制解析
  • Vatee外汇合规资质值得信赖吗?监管框架完善吗?
  • 基于大语言模型的互动游戏:提示词工程与AI游戏引擎设计
  • CANN/catlass GEMM恒等块调度
  • 2026年Q2北京铝镁锰板实力厂家盘点:廊坊铝硕金属制品有限公司深度解析 - 2026年企业推荐榜
  • JavaScript while 循环详解
  • Chainlit:快速构建AI应用界面的Python框架,无缝集成LangChain与OpenAI
  • 基于粒子群优化算法的微电网调度(光伏、储能、电动车、电网交互)(Matlab代码实现)
  • 线上推广公司怎么选?2026五家主流服务商全景评测与商家决策手册 - GEO优化
  • 2026 国内大模型 API 中转选型笔记:从接入成本到长期维护的几个观察
  • Bean 什么时候会被销毁?
  • 如何创建一个 Springboot Starter
  • OpenClaw 用户如何快速配置 Taotoken 聚合端点实现多模型调用
  • 【2026最新版|收藏备用】用Skill简化大模型知识库连接,小白程序员入门必看
  • Dify工作流实战:构建HR与网络安全AI应用脚本库
  • 09-扩展知识——05. date 类 - 处理日期
  • 基于Kubernetes的AI应用控制平面:kiro-acp架构解析与实践指南
  • Bean 会被 JVM 回收吗?
  • Animal-AI环境:连接强化学习与认知科学的3D虚拟实验室