
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
我们知道,GPU擅长做并行计算,像element-wise操作。GEMM, Conv这种不仅结果张量中元素的计算相互不依赖,而且输入数据还会被反复利用的更能体现GPU的优势。但AI模型计算或者HPC中还有一类操作由于元素间有数据依赖,会给并行化带来挑战,那就是reduce操作。它代表一类操作,即将多个元素通过某种特定的运算进行归约。其应用很广泛,很多其它算法也以它为基础,如scan, histog
前面的第一篇与第二篇分别介绍了背景与一些相关概念,这第三篇我们开始切入正题,看下现代深度学习编译器中的自动调优(Auto-tuning)方法。Schedule的自动生成,一类方法是基于解析模型(Analytical model),然后使用一些经验公式来产生解;另一类方法是多面体编译技术。它将循环嵌套迭代空间建模为多面体,然后用如整数规划等数学方法求出能提升局部性与并行性的循环变换;还有一类就是经验
前一篇《(一)大话深度学习编译器中的自动调优·前言》介绍了深度学习编译器及早期算子自动调优的背景,在接下去更深入地聊自动调优具体方法之前,在这篇中想先聊下两个与之密切相关的重要基础概念:领域专用语言(Domain-specific Language,DSL)与中间表示(Intermediate Representation,IR)。DSL与IR在整个深度学习编译器中的位置大体如下
前面的第一篇与第二篇分别介绍了背景与一些相关概念,这第三篇我们开始切入正题,看下现代深度学习编译器中的自动调优(Auto-tuning)方法。Schedule的自动生成,一类方法是基于解析模型(Analytical model),然后使用一些经验公式来产生解;另一类方法是多面体编译技术。它将循环嵌套迭代空间建模为多面体,然后用如整数规划等数学方法求出能提升局部性与并行性的循环变换;还有一类就是经验
Triton是OpenAI的开源项目。官网https://openai.com/index/triton/。Github地址https://github.com/triton-lang/triton。自问世来,一直以来都受到业界关注,而且近年来热度似乎有了明显提升。可以看到将Triton用于LLM的例子越来越多。各种流行的LLM框架,如vLLM,SGLang和TRT-LLM中也都有了Triton的

实际使用时,我们会碰到各种网络变体,各种配置或各种跑法,另外还可能需要回答一些更细节具体的问题,比如KV Cache节省了多少计算量,需要额外占用多少memory,把某层分布式计算需要增加多少通信量,或者MQA/GQA相比传统的MHA可以节省多少memory等等。在模型的优化时,我们经常需要一些信息,诸如特定配置的模型计算需要多少compute与memory资源,计算与数据传输大概需要多长时间等。

前面的第一篇与第二篇分别介绍了背景与一些相关概念,这第三篇我们开始切入正题,看下现代深度学习编译器中的自动调优(Auto-tuning)方法。Schedule的自动生成,一类方法是基于解析模型(Analytical model),然后使用一些经验公式来产生解;另一类方法是多面体编译技术。它将循环嵌套迭代空间建模为多面体,然后用如整数规划等数学方法求出能提升局部性与并行性的循环变换;还有一类就是经验
OpenAI gym是强化学习最为流行的实验环境。某种程度上,其接口已经成为了标准。一方面,很多算法实现都是基于gym开发;另一方面,新的场景也会封装成gym接口。经过这样一层抽象,算法与实验环境充分解耦隔离,可以方便地自由组合。但gym是python的接口,如果想用C++实现强化学习算法,则无法直接与gym相接。一种方案是跨进程:一个进程运行python环境,另一个进程运行强化学习算法,与环境交
1. 前言这些年来,深度学习在众多领域亮眼的表现使其成为了当今机器学习的主流方法。但其巨大的计算量仍为人诟病。尤其是近几年,随着端设备算力增强,业界涌现出越来越多基于深度神经网络的智能应用。为了弥补算力需求与供给的巨大鸿沟,近几年来模型压缩成为了业界的热点之一。模型压缩又可细分为多个子方向。之前在浅谈端上智能之计算优化中有过一些简单的论述,同时在闲话模型压缩之网络剪枝(Network Prunin
前面的第一篇与第二篇分别介绍了背景与一些相关概念,这第三篇我们开始切入正题,看下现代深度学习编译器中的自动调优(Auto-tuning)方法。Schedule的自动生成,一类方法是基于解析模型(Analytical model),然后使用一些经验公式来产生解;另一类方法是多面体编译技术。它将循环嵌套迭代空间建模为多面体,然后用如整数规划等数学方法求出能提升局部性与并行性的循环变换;还有一类就是经验