gpt4 book ai didi

c++ - Halide 如何自动调整时间表

转载 作者:行者123 更新时间:2023-11-30 03:37:39 27 4
gpt4 key购买 nike

我已经尝试用 Halide 编写代码一段时间了,而且我总是自己编写时间表。然后我读了这篇论文:http://graphics.cs.cmu.edu/projects/halidesched/mullapudi16_halidesched.pdf .据我所知,有一些方法可以生成最佳时间表。我怎么可能这样做?

谢谢解答!

编辑:

你好。我尝试拉分支并使用 CMAKE 构建它。但是我在用它编译 Halide 时遇到了问题:

这是 VS 2015 中的错误:

4>  D:/halideAutoScheduler2/Halide.build/Release\initmod.aarch64_cpu_features_32.ll -> D:/halideAutoScheduler2/Halide.build/Release\initmod.aarch64_cpu_features_32.bc
4> C:\Program Files (x86)\LLVM\bin\llvm-as.exe: D:/halideAutoScheduler2/Halide.build/Release\initmod.aarch64_cpu_features_32.ll:23:6: error: expected type
4> !0 = !{!"clang version 3.6.0 (tags/RELEASE_360/final)"}
4> ^
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: "cmd.exe" exited with code 1.

有什么建议吗?

最佳答案

非常简短的回答...

拉这个分支:https://github.com/halide/Halide/tree/auto_scheduler

取一段 Halide 代码并删除所有预先存在的调度。 (目前我通常使用 #if 0 来执行此操作,但是在使用生成器时,会有更好的方法在显式调度和自动调度之间进行选择。在 C++ 代码中使用带有参数的 if 语句也是一个不错的方法。)

获取所有输出 Funcs 并调用 Func::estimate 方法为这些输出提供近似范围。 (自动调度程序可能会使用估计值作为最小值,因此可以通过矢量化引入约束。)

然后确保您有一个Pipeline,而不是一个Func,然后调用auto_schedule 方法。 (Pipeline 可以从 Func 构造。)Pipeline 然后可以通过 realize 运行或通过编译compile_to_file 或类似的。

一些调度可以与自动调度器混合使用,例如断言步幅和范围。但是,如果已经应用了任何复杂的调度,自动调度程序可能会断言。

关于c++ - Halide 如何自动调整时间表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40089768/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com