资讯动态

CANN/ATVOSS默认Block调度策略

发布时间:2026/8/16 13:06:34 来源:尧图企业网站定制
DefaultBlockSchedule【免费下载链接】atvossATVOSSAscend 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 BaseBlockScheduleCompute, Policy, ScheduleCfg, ArchTag参数说明参数名称参数类型输入/输出数据类型参数说明默认值Compute模板参数输入NATile层计算表达图对象类型跟kernel层是被包含关系NAPolicy模板参数输入NAblock层的用户静态策略类型NAScheduleCfg模板参数输入NAblock层调度配置类型NAArchTag模板参数输入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::PlaceHolder1, TensorInputDtype, Atvoss::ParamUsage::IN(); auto in2 Atvoss::PlaceHolder2, TensorInputDtype, Atvoss::ParamUsage::IN(); auto in3 Atvoss::PlaceHolder3, InputDtype, Atvoss::ParamUsage::IN(); auto out Atvoss::PlaceHolder4, TensorOutputDtype, Atvoss::ParamUsage::OUT(); return (out in1 in2 - in3); }; }; static constexpr Atvoss::Ele::DefaultBlockPolicyTileShape 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::KernelBuilderBlockOp; using DeviceOp Atvoss::DeviceAdapterKernelOp; }; template typename InputDtype, typename OutputDtype static void Run() { /* ACL init and stream create */ ... Atvoss::TensorInputDtype in1(deviceIn1, {{3, 4, 0, 0, 0, 0, 0, 0}}, 2); Atvoss::TensorInputDtype in2(deviceIn2, {{3, 4, 0, 0, 0, 0, 0, 0}}, 2); InputDtype in3 5.0; Atvoss::TensorOutputDtype 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 AddSubConfigInputDtype, OutputDtype::DeviceOp; DeviceOp deviceOp; deviceOp.Run(arguments, stream); } int main(int argc, char const* argv[]) { Runfloat, float(); return 0; }【免费下载链接】atvossATVOSSAscend C Templates for Vector Operator Subroutines是一套基于Ascend C开发的Vector算子库致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。项目地址: https://gitcode.com/cann/atvoss创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价