讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
今天看啥  ›  专栏  ›  大语言模型和具身智体及自动驾驶

深度学习编译器(halide)是怎么优化的?

大语言模型和具身智体及自动驾驶  · 公众号  ·  · 2024-06-28 00:06
    

文章预览

最近关注了深度学习编译器领域,梳理了一些知识 其中 halide (论文是2013年)算是比较早的编译器,tvm 的设计灵感也是参考了 halide 的 halide 是怎么优化的? 主要有三个点:  并发(parallelism) 、 重复工作 ( Redundant work ) 、 局部性 ( Locality ) 并发(parallelism): 可以拆分成多个向量,并行计算 重复工作(Redundant work) * Loading a value  from memory somtimes slower than  re-computing it . ‍ 如上图: 每次计算的窗长为4,到最后剩下 2 个「正方形」, 方法1 是使用单个向量指令计算,最后会有2个「正方形」重复计算; 方法2 是将剩下2个「正方形」切换到不同的代码路径执行,需要重新 Loading value, 一般方法2会比较慢 局部性(Locality) * If you just wrote a value to memory, you should try to use it quickly, while it's still in cache . CPU 缓存是有限的,也是相对比较小的。如果某 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览