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

华为通信库HCOMM线程配置获取

HcclThreadAcquireWithConfig

【免费下载链接】hcommHCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持

功能说明

基于通信域和线程配置获取通信线程资源。与HcclThreadAcquire相比,该接口支持通过ThreadConfig结构体逐线程配置同步资源数量,适用于不同线程需要不同数量Notify的场景。

函数原型

HcclResult HcclThreadAcquireWithConfig(HcclComm comm, CommEngine engine, uint32_t threadNum, ThreadType type, const ThreadConfig *config, ThreadHandle *threads)

参数说明

参数名输入/输出描述
comm输入通信域句柄。
HcclComm类型的定义如下:
typedef void *HcclComm;
engine输入通信引擎类型。
CommEngine类型的定义可参见CommEngine。
threadNum输入通信线程数量。一个通信域内最多申请40条流。
type输入线程类型。当前支持THREAD_TYPE_TS。
config输入每线程的配置信息,数组长度须与threadNum一致。调用前须使用ThreadConfigInit初始化。
ThreadConfig结构体定义如下:
c typedef struct { CommAbiHeader header; uint16_t notifyNumPerThread; uint8_t reserved[14]; } ThreadConfig;
其中notifyNumPerThread表示每个通信线程中的同步资源(Notify)数量,取值范围0~65535。一个通信域内所有线程的同步资源总量不超过65536个。
threads输出返回的通信线程句柄。需传入threadNum大小的ThreadHandle类型数组。
ThreadHandle类型的定义可参见ThreadHandle。

返回值

HcclResult:接口返回值说明如下:

返回值描述
HCCL_SUCCESS成功获取通信线程资源。
HCCL_E_PTR传入的comm、threads或config为空指针。
HCCL_E_PARA参数错误,可能原因:type无效、engine无效、threadNum为0、config未使用ThreadConfigInit初始化、engine不支持(CPU_TS/AICPU_TS/AIV/CCU)。
HCCL_E_INTERNAL内部错误。

约束说明

  1. config数组必须使用ThreadConfigInit函数进行初始化,否则接口返回参数错误。

  2. 返回的通信线程与同步资源由库内管理,调用者严禁释放。

  3. 当前各产品形态支持的CommEngine范围:

  • Ascend 950PR/Ascend 950DT:

    • COMM_ENGINE_CPU
    • COMM_ENGINE_AICPU
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:

    • COMM_ENGINE_CPU
    • COMM_ENGINE_AICPU
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:

    • COMM_ENGINE_CPU
    • COMM_ENGINE_AICPU
  1. 该接口不支持COMM_ENGINE_CPU_TS和COMM_ENGINE_AICPU_TS通信引擎,如需TS类型线程,请使用COMM_ENGINE_CPU或COMM_ENGINE_AICPU引擎配合THREAD_TYPE_TS线程类型。

  2. 该接口不支持COMM_ENGINE_AIV和COMM_ENGINE_CCU两种通信引擎。

调用示例

创建线程资源示例如下:

HcclComm comm; CommEngine engine = COMM_ENGINE_AICPU; uint32_t threadNum = 5; ThreadConfig configs[5]; ThreadConfigInit(configs, threadNum); for (uint32_t i = 0; i < threadNum; i++) { configs[i].notifyNumPerThread = 2; } ThreadHandle threads[5]; HcclThreadAcquireWithConfig(comm, engine, threadNum, THREAD_TYPE_TS, configs, threads);

不同线程配置不同Notify数量的示例如下:

HcclComm comm; CommEngine engine = COMM_ENGINE_CPU; uint32_t threadNum = 3; ThreadConfig configs[3]; ThreadConfigInit(configs, threadNum); configs[0].notifyNumPerThread = 2; configs[1].notifyNumPerThread = 4; configs[2].notifyNumPerThread = 1; ThreadHandle threads[3]; HcclThreadAcquireWithConfig(comm, engine, threadNum, THREAD_TYPE_TS, configs, threads);

【免费下载链接】hcommHCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm

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

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

相关文章:

  • 前后端国密加解密实战:SM2+SM4混合加密方案全解析
  • three.quarks时间控制终极指南:慢动作与时间缩放效果完全教程
  • 终极艾尔登法环存档编辑器指南:如何轻松管理你的游戏存档
  • 告别背景音乐干扰:LTX-2.3 Foley LoRA让视频音效更真实的终极技巧
  • 【计算机Java毕业设计案例】基于 SpringBoot 的北部湾特色农业资源展示平台的设计与实现 基于 SpringBoot 的乡村农产品助农销售服务系统(程序+文档+讲解+定制)
  • 终极动漫素描提取指南:如何用Anime2Sketch一键生成专业线稿
  • 谷歌开发者账户被封禁?深度解析高风险行为与专业申诉指南
  • NVC CI/CD集成实践:GitHub Actions自动化测试与发布流程
  • CMS版本迁移工具:Instatic数据转换与升级完整指南
  • MegaDepth:基于互联网照片的单视图深度预测革命性算法完全指南
  • 为什么选择RxjavaRetrofitDemo?Android网络请求架构的终极方案
  • three.quarks与VR/AR集成:创建沉浸式粒子效果
  • three.quarks动画系统:关键帧与骨骼动画集成
  • 3步搞定HTML转PDF:OpenPDF让网页完美变身专业文档
  • AGENTS.md终极指南:让AI编程助手真正理解你的项目需求
  • 5分钟快速上手:用Open-Shell-Menu让Windows开始菜单回归经典
  • 一键智能下载:跨平台资源获取终极解决方案
  • Android备份提取器深度调优:实战性能优化配置指南
  • 从关门到赛车:LTX-2.3 Foley LoRA经典音效案例全解析
  • libfabric开发者必备:深入理解远程内存访问(RMA)与原子操作实现
  • FloatingView集成指南:Gradle依赖和版本兼容性详解
  • Web安全实战:验证码绕过与密码找回逻辑漏洞的深度剖析与防御
  • 数据永生:仿真引擎——具身智能的“无限多样性”源泉
  • Android备份提取器终极指南:3个核心技巧快速掌握数据恢复
  • OpenCV 与 YOLOv5 缺陷检测对比:传统图像处理 vs 深度学习方案选型指南
  • 从源码到插件:intellij-erlang构建与部署完全指南
  • three.quarks环境贴图应用:创建终极反光粒子效果
  • Linux下AMD显卡优化:Radeon-profile配置最佳实践
  • 解决AMD显卡过热问题:Radeon-profile风扇控制实战指南 [特殊字符]
  • YAAW-for-Chrome:Chrome浏览器中的Aria2下载管理革命