CANN/runtime快速入门示例
Quick Start【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime概述本示例是使用Runtime接口的快速入门示示例。展示了如何使用 CANN Runtime 的aclnnAddAPI 执行向量加法操作。aclnnAdd是 CANN 神经网络算子库提供的加法算子实现了out self alpha * other的运算。功能说明该样例演示了使用Runtime基础API实现向量加法流程初始化 ACL 和设置计算设备创建输入和输出 Tensor使用aclCreateDataBuffer包装输出 Device 内存并通过aclGetDataBufferAddr取回 Buffer 地址创建 alpha Scalar缩放因子调用aclnnAddGetWorkspaceSize获取所需 workspace 大小分配 workspace 内存调用aclnnAdd执行向量加法运算同步等待计算完成并获取结果销毁aclDataBuffer并释放资源产品支持情况本样例支持以下产品产品是否支持Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√编译运行环境安装详情以及运行详情请见 example 目录下的 README。运行步骤如下# ${install_root} 替换为 CANN 安装根目录默认安装在/usr/local/Ascend目录 source ${install_root}/cann/set_env.sh export ASCEND_INSTALL_PATH${install_root}/cann # 编译运行 bash run.sh相关样例4_custom_kernel_launch如果需要使用调用自定义 AscendC Kernel可参考该样例。CANN RUNTIME API在本样例中涉及的关键功能点及其关键接口如下所示初始化调用aclInit接口初始化 ACL。调用aclFinalize接口释放 ACL 资源。Device 与 Stream 管理调用aclrtSetDevice接口设置计算设备。调用aclrtCreateStream接口创建 Stream。调用aclrtSynchronizeStream接口等待 Stream 上任务完成。调用aclrtDestroyStream接口销毁 Stream。调用aclrtResetDeviceForce接口重置设备。Tensor 与数据描述调用aclCreateTensor接口创建输入和输出 Tensor。调用aclCreateScalar接口创建缩放因子alpha。调用aclCreateDataBuffer和aclGetDataBufferAddr接口管理输出 Buffer。调用aclDestroyTensor、aclDestroyScalar和aclDestroyDataBuffer接口释放描述对象。内存管理与数据传输调用aclrtMalloc接口分配 Device 内存。调用aclrtMemcpy接口完成 Host/Device 数据传输。调用aclrtFree接口释放 Device 内存。算子执行调用aclnnAddGetWorkspaceSize接口查询算子执行所需 workspace。调用aclnnAdd接口执行向量加法。核心 APIaclnnAddaclError aclnnAdd( void* workspace, // workspace 地址 uint64_t workspaceSize, // workspace 大小 aclOpExecutor* executor, // 算子执行器 aclrtStream stream // Stream );aclnnAddGetWorkspaceSizeaclError aclnnAddGetWorkspaceSize( const aclTensor* self, // 第一个输入张量 const aclTensor* other, // 第二个输入张量 const aclScalar* alpha, // 缩放因子 aclTensor* out, // 输出张量 uint64_t* workspaceSize, // [输出] workspace 大小 aclOpExecutor** executor // [输出] 算子执行器 );运算公式out self alpha * other示例输出Input vectors: self: [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] other: [0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0] alpha: 1.0 Create output aclDataBuffer successfully, buffer addr 0x... Vector addition result: result[0] 1.5 (expected: 1.5) result[1] 3.0 (expected: 3.0) result[2] 4.5 (expected: 4.5) result[3] 6.0 (expected: 6.0) result[4] 7.5 (expected: 7.5) result[5] 9.0 (expected: 9.0) result[6] 10.5 (expected: 10.5) result[7] 12.0 (expected: 12.0)已知 issue暂无【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考