AI编译器开发是未来的新趋势?想入门就来看看这本书准没错!

2024-06-07 12:32:18 浏览数 (1)

如今随着科技不断的发展,技术的不断革新,开发者们不断面临着各种新的场景与挑战,例如大数据、人工智能、深度学习、大规模集群计算、更复杂的网络环境、多核处理器引起对于高并发的需求,云计算、云处理等等……在这个环境下,AI编译器横空出世了。

前段时间,昇思-MindSpore在B站上举办了一次AI编译器的论坛,会议邀请了赵捷、蒋力、田野以及淡孝强几位老师进行了分享。这里我结合自己的了解和所学知识及网上资料给大家简单科普介绍一下AI编译器方面的一些知识。

一、AI编译器的定义

AI编译器有几个明显的特征:

1、Python为主的动态解释器语言前端

与传统编译器不同,AI编译器通常不需要Lexer/Parser,而是基于前端语言(主要是Python)的AST将模型解析并构造为计算图IR,侧重于保留shape、layout等Tensor计算特征信息,当然部分编译器还能保留控制流的信息。

这里的难点在于,Python是一种灵活度极高的解释执行的语言,AI编译器需要把它转到静态的IR上。

2、多层IR设计:

为什么需要多层IR设计,主要是为了同时满足易用性与高性能这两类需求。为了让开发者使用方便,框架前端(图层)会尽量对Tensor计算进行抽象封装,开发者只要关注逻辑意义上的模型和算子;而在后端算子性能优化时,又可以打破算子的边界,从更细粒度的循环调度等维度,结合不同的硬件特点完成优化。因此,多层IR设计无疑是较好的选择。

3、面向神经网络的特定优化

数据类型-Tensor:AI领域,计算被抽象成张量的计算,这就意味着AI编译器中主要处理的数据类型也是张量,这个是非常重要的前提。 自动微分:BP是深度学习/神经网络最有代表的部分,目前相对已经比较成熟,基于计算图的自动微分、基于Tape和运算符重载的自动微分方案、基于source2source的自动微分都是现在主流的方案。 自动并行:随着深度学习的模型规模越来越大,模型的并行优化也成为编译优化的一部分,包括:数据并行、算子级模型并行、Pipeline模型并行、优化器模型并行和重计算等。

4、DSA芯片架构的支持

SIMT、SIMD、Dataflow:AI的训练和推理对性能和时延都非常敏感,所以大量使用加速器进行计算,所以AI编译器其实是以加速器为中心的编译器,这个也是区别于通用编译器的一个特征。

二、AI工程师的职业未来发展

上某网一看,就能发现年薪40W的工作基本上是起步价格。高薪难求合格的AI工程师。

0 人点赞