news 2026/6/13 22:59:54

CANN/asc-devkit PhiloxRandom样例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/asc-devkit PhiloxRandom样例

PhiloxRandom样例

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

概述

本样例基于PhiloxRandom高阶API实现随机数生成功能,支持基于Philox算法生成指定数量的随机数,适用于需要高质量随机数的场景。

本样例支持的产品及CANN软件版本

产品CANN软件版本
Ascend 950PR/Ascend 950DT>= CANN 9.1.0

目录结构介绍

├── philoxrandom │ ├── scripts │ │ └── gen_data.py // 输入数据和真值数据生成脚本 │ ├── CMakeLists.txt // 编译工程文件 │ ├── data_utils.h // 数据读入写出函数 │ ├── philoxrandom.asc // Ascend C样例实现 & 调用样例 │ └── README.md // 样例说明文档

样例描述

  • 样例功能:
    基于Philox随机数生成算法,给定随机数种,生成若干的随机数。

  • 样例规格:

    表1:样例输入输出规格
    样例类型(OpType)philoxrandom
    样例输出nameshapedata typeformat
    dst[1, 1280]floatND
    核函数名philoxrandom_custom
  • 样例实现:
    本样例中实现的是固定shape为输出dst[1, 1280]的philoxrandom_custom样例。

    • Kernel实现

      计算逻辑包含以下步骤:

      1. 在Local Memory(Unified Buffer)中分配输出空间
      2. 对输出空间进行清零初始化
      3. 使用PhiloxRandom高阶API生成随机数
      4. 将生成的随机数从Local Memory搬出到Global Memory
    • 调用实现
      使用内核调用符<<<>>>调用核函数。

编译运行

在本样例根目录下执行如下步骤,编译并执行样例。

  • 配置环境变量
    请根据当前环境上CANN开发套件包的安装方式,配置环境变量。

    source ${install_path}/cann/set_env.sh

    说明:${install_path}为CANN包安装目录,未指定安装目录时默认安装至/usr/local/Ascend下。

  • 样例执行

    在本样例目录下执行如下命令。

    mkdir -p build && cd build; # 创建并进入build目录 cmake -DCMAKE_ASC_ARCHITECTURES=dav-3510 ..;make -j; # 编译工程,默认npu模式 python3 ../scripts/gen_data.py # 生成测试输入数据 ./demo # 执行编译生成的可执行程序,执行样例

    使用 CPU调试 或 NPU仿真 模式时,添加-DCMAKE_ASC_RUN_MODE=cpu-DCMAKE_ASC_RUN_MODE=sim参数即可。

    示例如:

    cmake -DCMAKE_ASC_RUN_MODE=cpu -DCMAKE_ASC_ARCHITECTURES=dav-3510 ..;make -j; # cpu调试模式 cmake -DCMAKE_ASC_RUN_MODE=sim -DCMAKE_ASC_ARCHITECTURES=dav-3510 ..;make -j; # NPU仿真模式

    注意:切换编译模式前需清理 cmake 缓存,可在 build 目录下执行rm CMakeCache.txt后重新 cmake。

  • 编译选项说明

    选项可选值说明
    CMAKE_ASC_RUN_MODEnpu(默认)、cpusim运行模式:NPU 运行、CPU调试、NPU仿真
    CMAKE_ASC_ARCHITECTURESdav-3510(默认)NPU 架构:dav-3510 对应 Ascend 950PR/Ascend 950DT
  • 执行结果

    执行结果如下,说明精度对比成功。

    test pass!

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 22:58:01

MuleSoft企业级AI编排:打通LLM与核心业务系统的确定性通道

1. 项目概述&#xff1a;当企业级集成平台遇上大语言模型&#xff0c;不是叠加&#xff0c;而是重定义 “AI Orchestration in Action: How MuleSoft and LLMs Fuel the Future of Enterprise AI”——这个标题里藏着一个正在发生的、静默却剧烈的范式迁移。它说的不是“用LLM写…

作者头像 李华
网站建设 2026/6/13 22:57:57

i.MX23 LRADC模块深度解析:硬件调度与触摸屏驱动实战

1. 项目概述&#xff1a;从模拟信号到数字世界的桥梁在嵌入式系统开发中&#xff0c;我们常常需要处理来自物理世界的模拟信号&#xff0c;比如电池电压、温度传感器输出&#xff0c;或者一个简单的电阻式触摸屏的触点位置。这些连续的、电压值不断变化的信号&#xff0c;对于只…

作者头像 李华
网站建设 2026/6/13 22:56:04

Structr安全最佳实践:保护图数据库应用的7个关键步骤

Structr安全最佳实践&#xff1a;保护图数据库应用的7个关键步骤 【免费下载链接】structr ATTENTION: This repository is a clone of https://gitlab.structr.com/structr/structr. All development/issue tracking has moved there. | Structr is an integrated open-source…

作者头像 李华
网站建设 2026/6/13 22:56:00

LoopScrollRect终极指南:Unity高性能滚动列表的完整解决方案

LoopScrollRect终极指南&#xff1a;Unity高性能滚动列表的完整解决方案 【免费下载链接】LoopScrollRect These scripts will make your UGUI ScrollRect reusing cells, to improve performance, loading time and draw calls. 项目地址: https://gitcode.com/gh_mirrors/l…

作者头像 李华
网站建设 2026/6/13 22:53:22

如何在Windows上解决Hadoop和Spark的兼容性问题:winutils终极指南

如何在Windows上解决Hadoop和Spark的兼容性问题&#xff1a;winutils终极指南 【免费下载链接】winutils Windows binaries for Hadoop versions (built from the git commit ID used for the ASF relase) 项目地址: https://gitcode.com/gh_mirrors/wi/winutils 如果你…

作者头像 李华
网站建设 2026/6/13 22:49:01

工作 15 年后离职 Mozilla,资深员工直言发展困境并给出改进建议

哎呀&#xff01;出问题啦 看起来样式设置出了点差错。对此我们深感抱歉&#xff0c;不过要是这正是你想要的效果&#xff0c;那另当别论。如果这不是你所期望的&#xff0c;你可以尝试 强制刷新 页面。具体操作是按下 _Shift_ _F5_ &#xff0c;或者按住 _Shift_ 键并点击“重…

作者头像 李华