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

CANN/asc-devkit AI CPU调试打印API

printf

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

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品AI Core:不支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:不支持

功能说明

该接口提供AI CPU算子Kernel调试场景下的格式化输出功能,默认将输出内容解析并打印在屏幕上。

需要包含的头文件

#include "aicpu_api.h"

函数原型

void printf(const char* fmt, ...)

参数说明

参数名

输入/输出

描述

fmt

输入

格式控制字符串,包含两种类型的对象:普通字符和转换说明。

  • 普通字符将原样不动地打印输出。
  • 转换说明并不直接输出而是用于控制printf中参数的转换和打印。每个转换说明都由一个百分号字符(%)开始,以转换说明结束,从而说明输出数据的类型。
    支持的转换类型包括:
    • %d / %i:输出十进制数,支持打印的数据类型:bool/int8_t/int16_t/int32_t/int64_t
    • %f:输出实数,支持打印的数据类型:float/half
    • %x:输出十六进制整数,支持打印的数据类型:int8_t/int16_t/int32_t/int64_t/uint8_t/uint16_t/uint32_t/uint64_t
    • %s:输出字符串
    • %u:输出unsigned类型数据,支持打印的数据类型:bool/uint8_t/uint16_t/uint32_t/uint64_t
    • %p:输出指针地址

...

输入

附加参数,个数和类型可变的参数列表:根据不同的fmt字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了fmt参数中指定的每个%标签。参数的个数应与%标签的个数相同。

返回值说明

约束说明

  • 该接口仅支持通过<<<...>>>调用,并在异构编译场景使用。

  • 该接口不支持打印除换行符之外的其他转义字符。

  • 该接口使用Dump功能,所有使用Dump功能的接口在每个核上Dump的数据总量不可超过1M。请开发者自行控制待打印的内容数据量,超出则不会打印。

  • 使用该接口时,若采用bisheng命令行编译,开发者需要手动链接相关的静态库;而使用CMake编译时,框架会自动处理链接问题,无需开发者额外关注。具体编译命令如下:通过--cce-aicpu-laicpu_api为Device链接libaicpu_api.a,通过--cce-aicpu-L指定libaicpu_api.a的库路径。

    $bisheng -O2 foo.aicpu --cce-aicpu-L${INSTALL_DIR}/lib64/device/lib64 --cce-aicpu-laicpu_api -I${INSTALL_DIR}/asc/include/aicpu_api -c -o foo.aicpu.o

    ${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。

调用示例

在算子Kernel侧实现代码中需要输出日志信息的地方调用printf接口打印相关内容。样例如下:

#include "aicpu_api.h" // 整型打印: AscendC::printf("fmt string %d\n", 0x123); // 浮点型打印: float a = 3.14; AscendC::printf("fmt string %f\n", a); // 指针打印: int b = 10; int *c = &b; AscendC::printf("TEST %p\n", c);

程序运行时打印效果如下:

fmt string 291 fmt string 3.140000 TEST 0xdfffd6fddd1c

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

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

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

相关文章:

  • AI重构编译器:用提示工程替代传统代码实现
  • 2026 伊犁装修口碑榜单|深耕本土,堂卡装饰凭精工整装与本地化服务俘获伊犁业主 - 商业先知
  • 嵌入式C语言编程的核心挑战与优化技巧
  • 2026年 及时响应福州短视频代运营推荐 十大排行及时响应与效果导向的选型指南 - 优企甄选
  • cannbot-skills Blaze后处理模块
  • 海牙认证费用多少?一文看懂省钱攻略,这篇就够了! - 指上通
  • 10个实用技巧:优化mlx-community/gemma-4-31b-it-nvfp4在Mac上的性能表现 [特殊字符]
  • PCB线路板打样起泡问题分析与解决方案
  • GoLand 2025 安装配置全指南:适配 Go 1.23 与 go.work 工作区
  • 企业级部署指南(Claude最新模型更新后首个生产级Docker镜像+GPU显存优化方案,仅限前500名技术负责人领取)
  • Blender操作可视化终极指南:Screencast Keys完整教程
  • Dolphin3-Cyber-8B-GGUF提示词工程:如何让AI生成精准的漏洞利用代码与防御建议
  • CO-PA月末关账:从成本中心到获利段的费用分摊实战(KEU5)
  • 2026 广州名表回收星级实测 TOP 榜单,满分标杆奢小觅便民变现全指南 - 全国二奢机构参考
  • C++多态性实战解析:从运算符重载到抽象类设计
  • openEuler-menus故障排除:常见问题与解决方案大全
  • 2026年除醛服务避坑指南:荃净除甲醛公司靠谱吗 - 亚东说
  • 计算机毕业设计之基于springboot的志愿者服务管理系统
  • Cocos2d-x游戏开发入门:跨平台框架实战指南
  • 嵌入式Linux系统框架与驱动开发实践
  • 2026年中山公园步道灯评测:性价比之王揭晓 - 资讯纵览
  • CameraKit iOS自定义会话开发:扩展相机功能的完整指南
  • 3分钟快速上手SingGuard-2b:零基础实现AI内容安全审核的完整指南
  • atom-script安全注意事项:在Atom中运行代码的安全指南
  • 长沙业主空调清洗经验:2026年避坑 - 简单到家
  • 从业者必读 推荐上海取保缓刑律师团队排行参考指南 - 信息热点
  • 5个步骤部署Efficient-DLM-4B:高效扩散语言模型实战教程 [特殊字符]
  • Kafka性能调优的三体运动:生产者Batch、Broker页缓存与Consumer拉取策略的联动优化实战手册
  • 2026父母帮子女相亲哪家好?正规靠谱平台深度盘点,避坑指南与选型全攻略 - 行业观察网
  • 2026 汉中雨季屋顶渗漏水频发!顶层楼面漏水根治方案,5 年质保更稳妥 - 宅安选房屋修缮