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

CANN/ATVOSS默认Block调度策略

DefaultBlockSchedule

【免费下载链接】atvossATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。项目地址: https://gitcode.com/cann/atvoss

功能说明

默认的block层schedule调度策略,实现完全继承BaseBlockSchedule的能力,根据DefaultBlockConfig的切分参数配置,实现block层级的调度逻辑。

所属头文件链接

/include/elewise/block/schedule.h

函数原型

template <typename Compute, const auto& Policy, typename ScheduleCfg, typename ArchTag> class DefaultBlockSchedule : public BaseBlockSchedule<Compute, Policy, ScheduleCfg, ArchTag>

参数说明

参数名称参数类型输入/输出数据类型参数说明默认值
Compute模板参数输入NATile层计算表达图对象类型,跟kernel层是被包含关系NA
Policy模板参数输入NAblock层的用户静态策略类型NA
ScheduleCfg模板参数输入NAblock层调度配置类型NA
ArchTag模板参数输入NA用户配置的芯片版本型号NA

返回值说明

返回值数据类型返回值说明
DefaultBlockSchedule返回默认的block层schedule调度策略

约束说明

NA

使用示例

template <typename InputDtype, typename OutputDtype> struct AddSubConfig { struct AddSubCompute { template <template <typename> class Tensor> __host_aicore__ constexpr auto Compute() const { auto in1 = Atvoss::PlaceHolder<1, Tensor<InputDtype>, Atvoss::ParamUsage::IN>(); auto in2 = Atvoss::PlaceHolder<2, Tensor<InputDtype>, Atvoss::ParamUsage::IN>(); auto in3 = Atvoss::PlaceHolder<3, InputDtype, Atvoss::ParamUsage::IN>(); auto out = Atvoss::PlaceHolder<4, Tensor<OutputDtype>, Atvoss::ParamUsage::OUT>(); return (out = in1 + in2 - in3); }; }; static constexpr Atvoss::Ele::DefaultBlockPolicy<TileShape> blockPolicy{TileShape{}}; using ArchTag = Atvoss::Arch::DAV_3510; using BlockOp = Atvoss::Ele::BlockBuilder< AddSubCompute, ArchTag, blockPolicy, Atvoss::Ele::DefaultBlockConfig, // 🔥🔥🔥 使用示例 🔥🔥🔥 Atvoss::Ele::DefaultBlockSchedule // 🔥🔥🔥 使用示例 🔥🔥🔥 >; using KernelOp = Atvoss::Ele::KernelBuilder<BlockOp>; using DeviceOp = Atvoss::DeviceAdapter<KernelOp>; }; template <typename InputDtype, typename OutputDtype> static void Run() { /* ACL init and stream create */ ... Atvoss::Tensor<InputDtype> in1(deviceIn1, {{3, 4, 0, 0, 0, 0, 0, 0}}, 2); Atvoss::Tensor<InputDtype> in2(deviceIn2, {{3, 4, 0, 0, 0, 0, 0, 0}}, 2); InputDtype in3 = 5.0; Atvoss::Tensor<OutputDtype> out(deviceOut, {{3, 4, 0, 0, 0, 0, 0, 0}}, 2); auto arguments = Atvoss::ArgumentsBuilder{}.inputOutput(in1, in2, in3, out).attr("dim", 5).build(); using DeviceOp = typename AddSubConfig<InputDtype, OutputDtype>::DeviceOp; DeviceOp deviceOp; deviceOp.Run(arguments, stream); } int main(int argc, char const* argv[]) { Run<float, float>(); return 0; }

【免费下载链接】atvossATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。项目地址: https://gitcode.com/cann/atvoss

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

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

相关文章:

  • 基于Manifest V3的智能表情符号浏览器扩展开发实战
  • 基于MCP协议构建AI Agent与Meta广告API的自动化桥梁
  • ASIC功能验证:基于规范的方法学与实践
  • CANN TileLang算子开发指南
  • 在长期项目中观察通过Taotoken调用API的月度成本波动情况
  • 物联网与AGI融合:从数据感知到自主决策的技术架构与实践路径
  • GPTree GUI:本地优先的代码库可视化工具,为LLM高效准备项目上下文
  • ChatGPT-RetrievalQA数据集:用大模型合成数据训练信息检索系统
  • CursorMD:AI驱动的文档架构师,实现文档驱动开发新范式
  • AI Workflow:一键注入170+技能,让AI编程助手秒变行业专家
  • 使用技巧(五):插件装了 50 个还是裸奔?Claude Code 三大市场只装一个就够了,这款 165K Star
  • AI SDK 集成 Codex CLI:解锁 GPT-5 模型的自主工具执行能力
  • 智能建造中的AI伦理挑战:从数据隐私到人机信任的九大议题
  • Autovisor:如何用Python自动化工具7天搞定智慧树课程?
  • 开发上下文同步工具:提升多任务切换效率的智能工作流解决方案
  • Arm CoreSight调试技术:TMC-ETR模式与DTSL脚本配置详解
  • 精度不再至上!SLAM 终极形态:可编辑 + 实时 + 强鲁棒
  • 多模态AI整合图像、文本与组学数据,攻克印戒细胞癌精准诊断难题
  • 【深度解析】从 AI Coding Agent 到 AI 项目经理:拆解 Verdant Manager 的多 Agent 并行工作流
  • AI智能体可视化监控:基于3D办公室隐喻的可观测性实践
  • 基于Socket.IO的极简聊天应用开发:从原理到部署实战
  • 基于ESP32与FreeRTOS的自平衡机器人:从PID控制到实时系统实战
  • 怎么掌握 Linux 基础知识?
  • 为AI助手打造本地记忆库:SQLite+知识图谱实现私密持久化协作
  • CANN/pyasc反正切函数API文档
  • 杰理之使用PB7应注意与DACR的绑定【篇】
  • AI使用技巧总结(不定期更新)
  • 可解释AI:SHAP与LIME如何驱动负责任AI的公平与透明
  • 为Hermes Agent配置Taotoken自定义提供商接入大模型
  • 基于强化学习的蝾螈机器人水陆运动控制研究