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

CANN/docs头文件库文件说明

头文件和库文件说明

【免费下载链接】docs该仓库用于维护cann公共文档项目地址: https://gitcode.com/cann/docs

CANN应用开发场景涉及Runtime、图引擎(Graph Engine,简称GE)和DVPP(Digital Vision Pre-Processing)等组件提供的接口。各组件提供的接口及其详细说明,请参见各组件的API参考。本节仅介绍接口分类以及调用接口时依赖的头文件和库文件。

接口分类

接口名以acl作为前缀,命名风格为:acl+接口类别缩写+*,其中,*通常表示操作动词和对象,均采用首字母大写。下文为了描述方便,将本文中的接口统称为acl接口。

在acl接口中,参数顺序通常遵循输入参数在前、输出参数在后的原则。且需注意,不要因为某些参数是新增的,就将其随意添加到接口的末尾;相反,应将新的仅作为输入的参数放在输出参数之前。对于同时作为输入和输出的参数,情况会相对复杂,可能还需考虑与其他接口的一致性,需灵活处理。

表 1接口类别列表

接口名前缀描述组件
acl系统配置类接口Runtime
aclrt运行时管理类的接口Runtime
aclop单算子模型执行类的接口Runtime
aclblasblas类接口Graph Engine
aclmdl模型推理类的接口Graph Engine
acldvpp或aclvdec或aclvenc媒体数据处理的接口
其中,媒体数据处理V2版本下的接口命名例外,这一类接口命名以“hi_mpi”开头。
DVPP(Digital Vision Pre-Processing)
aclprofProfiling配置类接口Runtime
acltdt数据传输接口Runtime
aclfv特征向量检索接口Feature Vector

由于软硬件差异,各产品型号支持的接口类别不同,具体以各接口说明为准。

调用接口依赖的头文件和库文件说明

安装固件、驱动及CANN软件包后,编译、运行应用程序时才能引用到acl接口的头文件、库文件。

acl接口的头文件在“${INSTALL_DIR}/include/”目录下,库文件在“${INSTALL_DIR}/lib64/”目录下。${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。

您需要根据实际使用的acl接口来include依赖的文件,各头文件的用途如下表所示。

须知:编译acl接口程序时,请按照include的头文件依赖对应的库文件,如果引用多余的库文件(例如libascendcl.a),可能导致版本功能异常或后续版本升级时存在兼容性问题。

表 2Runtime头文件和库文件列表

定义接口的头文件用途对应的库文件
acl/acl_rt.h用于定义初始化/去初始化、Device管理、Context管理、Stream管理、同步等待、内存管理等接口。libacl_rt.so
说明:为了兼容旧版本,旧版本中支持使用libascendcl.so,但后续版本这种方式会废弃,建议使用libacl_rt.so,防止后续版本出现兼容性问题。
acl/acl_dump.h用于定义模型和算子Dump接口。libascend_dump.so
acl/acl_prof.h用于定义Profiling数据采集接口。libmsprofiler.so
说明:为了兼容旧版本,旧版本中支持使用libascendcl.so,但后续版本这种方式会废弃,建议使用libmsprofiler.so,防止后续版本出现兼容性问题。
acl/acl_tdt.h用于定义Tensor数据传输接口。libacl_tdt_channel.so
acl/acl_tdt_queue.h用于定义共享队列管理、共享Buffer管理接口。libacl_tdt_queue.so
acl/acl_rt_api.h用于定义C++扩展接口,提供函数重载和模板封装(仅适用于C++ 程序)。
依赖acl_rt.h。
libacl_rt.so

表 3Graph Engine组件头文件和库文件列表

定义接口的头文件用途对应的库文件
acl/acl_mdl.h用于定义模型管理接口。libacl_mdl.so
说明:为了兼容旧版本,旧版本中支持使用libascendcl.so,但后续版本这种方式会废弃,建议使用libacl_mdl.so,防止后续版本出现兼容性问题。
acl/acl_op.h
acl/acl_op_compiler.h
用于定义单算子调用接口(仅包含单算模型执行接口)。libacl_op_executor.so
libacl_op_compiler.so
说明:为了兼容旧版本,旧版本中支持使用libascendcl.so,但后续版本这种方式会废弃,建议使用libacl_op_executor.so和libacl_op_compiler.so,防止后续版本出现兼容性问题。
acl/ops/acl_cblas.h用于定义CBLAS接口。libacl_cblas.so

表 4DVPP组件头文件和库文件列表

分类定义接口的头文件用途对应的库文件
媒体数据处理算子acldvppop目录下:
acldvpp_base.h
acldvpp_op_api.h
用于定义DVPP媒体数据处理类算子的功能接口。libacl_dvpp_op.so
媒体数据处理算子aclnn目录下:
acl_meta.h
aclnn_base.h
调用算子接口时依赖的公共Meta接口,如创建aclTensor、aclScalar、aclIntArray等。libnnopbase.so
媒体数据处理V2acl/dvpp/hi_dvpp.h用于定义媒体数据处理V2版本中的DVPP接口。libacl_dvpp_mpi.so
媒体数据处理V2acl/media目录下:
hi_mpi_vi.h
hi_common_vi.h
hi_common_dis.h
hi_common_gdc.h
hi_media_common.h
hi_media_type.h
hi_mpi_sys.h
用于定义VI(Video Input)视频数据获取功能的接口。libacl_vi_mpi.so
libacl_dvpp_mpi.so
媒体数据处理V2acl/media目录下:
hi_mpi_isp.h
hi_common_isp.h
hi_common_3a.h
hi_mpi_ae.h
hi_common_ae.h
hi_mpi_awb.h
hi_common_awb.h
hi_common_sns.h
hi_media_common.h
hi_media_type.h
hi_mpi_sys.h
用于定义ISP(Image Signal Processing)系统控制功能的接口。libacl_isp_ae_mpi.so
libacl_isp_awb_mpi.so
libacl_isp_mpi.so
libacl_dvpp_mpi.so
媒体数据处理V2acl/media目录下:
hi_mpi_vpss.h
hi_media_common.h
hi_media_type.h
hi_mpi_sys.h
用于定义VPSS(Video Process Sub-System)图像处理功能的接口。libacl_vpss_mpi.so
libacl_dvpp_mpi.so
媒体数据处理V2acl/media/hi_mipi_rx.h用于定义MIPI Rx ioctl命令字。-
媒体数据处理V2acl/media目录下:
hi_mpi_audio.h
hi_common_aio.h
用于定义音频输入、音频输出功能的接口。libacl_audio_mpi.so
媒体数据处理V2acl/media/hi_acodec.h用于定义音量调整的命令字。-
媒体数据处理V2acl/media目录下:
hi_common_vo.h
hi_mpi_vo.h
用于定义视频输出接口。libacl_vo_mpi.so
媒体数据处理V2acl/media/hi_mpi_hdmi.h用于定义对接外设的HDMI接口。libacl_hdmi_mpi.so
媒体数据处理V2acl/media/hi_mpi_tde.h用于定义TDE图形绘制接口。libacl_tde_mpi.so
媒体数据处理V2acl/media/hifb.h用于定义叠加图形层管理接口。-
媒体数据处理V1acl/ops/acl_dvpp.h用于定义媒体数据处理V1版本的接口。libacl_dvpp.so

表 5特征向量检索头文件和库文件

定义接口的头文件用途对应的库文件
acl/ops/acl_fv.h用于定义特征向量检索的接口。libacl_retr.so

【免费下载链接】docs该仓库用于维护cann公共文档项目地址: https://gitcode.com/cann/docs

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

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

相关文章:

  • httpcache性能优化:内存管理和缓存淘汰策略的终极指南
  • Connector与1С:Предприятие 8集成指南:提升系统API调用效率
  • 5个意想不到的直播场景,obs-multi-rtmp如何重塑你的内容分发策略
  • 解密智慧教育平台电子课本下载:教师必备的高效备课工具
  • GESP学习相关书籍(2026.07)
  • 一句话生成生产级AI智能体:Nexent如何用自然语言重构AI开发范式
  • 如何系统优化Audiobookshelf容器性能:实战调优方案
  • activerecord-multi-tenant 社区与支持:如何参与贡献和获取帮助
  • 高效逆向工程实战:Windows平台消息防撤回技术深度解析
  • 零代码开发:5步用MIT App Inventor创建你的第一个移动应用
  • 终极指南:如何使用MobaXterm中文版快速管理远程服务器
  • 轻松获取智慧教育平台电子课本:3步完成PDF下载的终极指南
  • 国家中小学智慧教育平台电子课本下载工具:3步轻松获取离线教材PDF
  • 西工大软院大三毕业设计答辩PPT:nwpu-cram模板全攻略
  • 逆向工程实战:Windows平台防撤回补丁技术深度解密
  • AKShare金融数据接口:3步掌握Python财经数据获取的终极指南
  • Sync最佳实践:提升Erlang开发效率的10个实用技巧
  • 终极指南:如何用自然语言快速生成专业级CAD模型
  • ZyFun:重新定义桌面观影体验的跨平台全能播放器
  • 5分钟搭建智能微信机器人:WeChatFerry让AI对话触手可及
  • 3步解锁B站4K大会员视频:告别网络限制,永久收藏心爱内容
  • 基于ICM-42605和PIC18LF2585的6DOF运动追踪系统设计与实现
  • CMS备份恢复演练:Instatic灾难恢复计划实施指南
  • 打破量化数据壁垒:Mootdx如何让Python开发者轻松读取通达信数据
  • Mac Mouse Fix:3分钟让普通鼠标在macOS上超越苹果触控板体验的终极方案
  • 3个核心技术优势:深入解析Spek音频频谱分析器的专业价值
  • Citra模拟器性能调优:解决高并发下的图形渲染瓶颈
  • 5步掌握LDDC歌词下载神器:从新手到高手的完整指南
  • 如何快速掌握Thorium浏览器:3个技巧让网页浏览速度提升50%
  • Shopware 6 完整实战指南:从零开始构建现代化电商网站