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

CANN/asc-devkit HCCL服务端类型配置

HcclServerType

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

功能说明

配置HCCL的服务端类型。

函数原型

void HcclServerType(enum HcclServerType type, const char *soc=nullptr)

参数说明

参数

输入/输出

说明

type

输入

HCCL的服务端类型,类型为HcclServerType枚举类,定义如下:

namespace ops{ enum HcclServerType : uint32_t { AICPU = 0, // AI CPU服务端 AICORE, // AI Core服务端 CCU, // CCU服务端,仅在AI处理器包含CCU单元时支持 MAX // 预留参数,不支持使用 }; }

soc

输入

AI处理器型号。为该型号配置服务端类型。

可选参数,nullptr或者""表示为算子支持的所有型号配置服务端类型。

soc取值需确保在算子支持的AI处理器型号范围内,即已经调用AddConfig接口注册。

填写规则请参考算子工程目录下编译配置项文件CMakePresets.json中的ASCEND_COMPUTE_UNIT字段,该字段取值在使用msOpGen创建工程时自动生成。

约束说明

  • 使用该接口前,算子需要先通过MC2接口注册该算子是通算融合算子,注册后即返回一个OpMC2Def结构。
  • 同时为特定AI处理器型号和所有AI处理器型号配置服务端类型时,特定AI处理器型号配置的优先级更高。

调用示例

class MC2Custom : public OpDef { public: MC2Custom(const char* name) : OpDef(name) { this->Input("x").ParamType(REQUIRED).DataType({ge::DT_FLOAT}).Format({ge::FORMAT_ND}); this->Input("y").ParamType(REQUIRED).DataType({ge::DT_FLOAT}).Format({ge::FORMAT_ND}); this->Output("z").ParamType(REQUIRED).DataType({ge::DT_FLOAT}).Format({ge::FORMAT_ND}); this->Attr("group").AttrType(REQUIRED).String(); this->AICore().AddConfig("ascendxxx1"); this->AICore().AddConfig("ascendxxx2"); this->MC2().HcclGroup("group"); // 配置通信域名称为group this->MC2().HcclServerType(HcclServerType::AICPU, "ascendxxx1"); // 配置ascendxxx1型号的通信模式为AI CPU this->MC2().HcclServerType(HcclServerType::AICORE); // 配置其他型号即ascendxxx2的通信模式为AI Core } }; OP_ADD(MC2Custom);

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

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

http://www.cnnetsun.cn/news/3483141.html

相关文章:

  • maven_crate项目架构揭秘:10个技巧高效管理Apache Aurora、Hadoop等大型依赖
  • CANN/asc-devkit编程接口概述
  • 强力释放C盘空间:FreeMove如何实现无痛文件迁移
  • VGG-T³未来路线图:NVIDIA如何规划下一代3D视觉模型发展
  • 探索QQgroup-annual-report-analyzer:10个你可能不知道的实用功能
  • CANN/asc-devkit:HostCPU自定义算子UserDefined配置
  • TI 18xx芯片时钟管理与中断路由实战:从CCC到EPWM同步与DMMSWINT配置
  • C++继承机制深度解析:从语法到多态与设计模式实战
  • 深入解析TI C2000 SCI寄存器:从原理到实战的嵌入式串口通信指南
  • vue-timeago实战案例:10分钟内构建动态时间显示功能
  • AWS Service Operator 安全最佳实践:IAM 角色与权限管理终极指南
  • 【架构实战】异步化改造:线程池与消息队列的取舍
  • 3分钟掌握USBvalve:USB数据监控与安全检测终极方案
  • 如何使用Logux Client实现跨标签页数据同步:CrossTabClient实战教程
  • MCAN消息RAM配置与CAN FD通信实战指南
  • 深入解析DMM中断与控制寄存器:嵌入式数据搬运的硬件加速核心
  • CefFlashBrowser终极指南:5个简单步骤让Flash游戏重获新生
  • Claude Code v2.1.211:从代码生成到上下文感知的AI编程伙伴
  • CANN/asc-devkit ComputeCost参数说明
  • Reachy Mini语音对话系统:构建智能机器人助手的完整指南
  • Matterbridge安全最佳实践:保护你的Matter设备与数据
  • Logux Client核心组件解析:从IndexedStore到badge小部件的全面介绍
  • Flipper Zero车库门破解终极指南:Sub-GHz无线信号分析实战
  • Hermes WebUI跨设备同步:在多设备间保持工作连续性的终极指南
  • 打造优质用户体验:Logux Client的attention()与confirm()功能详解
  • React Native Skeleton Placeholder 社区贡献指南:如何参与开源项目
  • 深入理解Logux Client的subprotocol:确保前后端兼容性的关键
  • Mission Control深度解析:40+蓝牙控制器如何原生兼容任天堂Switch
  • CANN/asc-devkit:uint转half向上取整函数
  • 「Qt Widget中文示例指南」如何实现一个快捷编辑器(一)