头图

Apache 软件基金会 (ASF) 成立于 1999 年,是全球最大的开源软件基金会之一,它的许多项目,例如 Apache HTTP Server、Apache Hadoop、Apache Spark 和 Apache TVM 等,已经成为了各个领域的标准和基础设施,对全球的技术发展产生了深远的影响。

8 月 18 日至 20 日,Apache 软件基金会的官方全球系列大会 CommunityOverCode Asia(原 ApacheCon Asia)首次在中国举办,此次大会涵盖了 17 个不同的研究领域,聚集了 21 位行业领先的论坛主席,超过 160 位来自世界各地的资深讲师展开了精彩的演讲。

OpenBayes贝式计算、Apache TVM PMC 冯思远以及 Deelvin Solutions 的资深软件工程师 Egor Churaev 作为 Apache TVM 社区、MLC 社区的重要贡献者,受邀参与此次大会,并在「人工智能/机器学习」分论坛围绕 Apache TVM 等异构编译器进行了演讲。

演讲视频链接:在 B 站搜索「OpenBayes」即可查看

异构编译器---Apache TVM 技术

近期,人工智能、尤其是大语言模型 (LLM) ,大幅度推动了工业界对于计算能力的需求。 随着数据量呈现爆炸式增长,计算任务的复程度不断提升,传统的通用计算平台已经无法满足高性能计算的需求,这也促使异构计算体系加速到来。

无论是企业还是研究机构,目前在硬件和软件优化方面的压力也在不断增大。硬件层面上,通过比较 V100、A100 和 H100 等高性能计算芯片的性能可以看出,当前阶段面向集群或单个芯片的复杂性正在不断提升,我们需要更强效的计算单元,这也说明了芯片异构化的重要性

当然,这种压力不仅来自于硬件的复杂性,还来自于编译器优化、计算精度、指令集等多个层面的挑战。这对于专业知识和人力资源的需求都非常大。对于许多创业公司来说,他们想做一些 AI 模型的部署时(如人脸识别、客服机器人等),可能没有足够的资源或专业知识去处理底层的硬件和软件优化问题,这就需要一种能够帮解决这些问题的工具或解决方案,由此,Apache TVM 这一技术应运而生。

Apache TVM 技术由华裔科学家陈天奇主导开发,它在机器学习和深度学习的部署和优化方面发挥着重要的作用。 作为一个开源的机器学习编译器堆栈,它可以解决一些因硬件异构化而产生的问题,例如如何将机器学习模型高效地部署到各种不同的硬件平台上,包括 CPU、GPU、FPGA 等。此外,TVM 还提供了一种自动调优的方法,可以自动找出最优的模型部署方案,从而提高运行效率和性能。

图片

目前,OpenBayes贝式计算已在业务中广泛的运用 Apache TVM 技术,支持 Apache TVM 技术的本地化,推动 MLC 社区的快速发展,并定期在各大城市开展主题为「Meet TVM」的线下聚会,让机器学习领域的开发人员和研究人员可以交流想法、分享技术和资源。

在过去的一年中,其他的企业也对编译器的推进做出了不小的努力。例如,大家所熟知的 OpenAI 在官网推出了名为 Triton 的框架,这个框架可以被看作是包含编译器的第三方库,它的目标是简化面向 GPU 的编程,开发者可以用 Python 语言编写 Triton 代码,然后通过 Triton 编译器将这些代码编译成 GPU 代码。这大大简化了 GPU 编程的复杂性,使得开发者可以在 GPU 上进行高效的编程。

图片

除此之外,由 NVIDIA 公司开发的一种并行计算平台和编程模型 CUDA ,允许开发者直接使用 C/C++(以及其他语言,如 Python、Fortran 通过特定的接口)来编写 GPU 代码,从而在 GPU 上执行大量的并行运算。这使得 GPU 不仅可以用于图形渲染,还可以用于更广泛的计算任务,尤其是可以并行处理的任务。

图片

基于上述,OpenBayes贝式计算认为,由于深度学习和其他计算密集型任务的普及,我们看到了对更高计算性能的需求。这种需求推动了各种新的优化技术和工具的发展,如 TVM、 Triton、MLIR、LLVM 等,这些工具都在尝试提高计算效率,尤其是在 GPU 或其他专用硬件上。因此,未来的计算环境将更加多元化,异构计算体系将成为主流。 

MLC-LLM:在任何设备编译运行大语言模型

紧接着,Apache TVM PMC 以及 MLC 社区的负责人之一的冯思远先生向大家介绍了一项开源的新技术--- MLC-LLM。 由于很多 AI 的开发者没有大量的高性能硬件资源,因此,人们持续探寻更为经济、高效的策略来开发和部署大型的语言模型。这就不得不提到 MLC-LLM 技术,因为它可以让你在任何设备上编译运行大语言模型。

图片

MLC-LLM 技术基于 Apache TVM Unity,TVM Unity 是 TVM 社区正在推动的技术迭代,它的一大特性是图层面 IR (graph-level IR) 与循环层面 IR (loop-level IR) 的结合。主流机器学习框架(如Tensorflow,Pytorch)的计算图和图中算子实现是分离的,然而 TVM Unity 将两者统一,这大大简化了构建融入自定义算子的模型的流程,使得开发者可以快速地尝试新的模型,新的想法和新的编译器优化。

机器学习编译 (MLC) 作为一种新兴技术,能自动编译和优化机器学习工作负载,并将编译后的工作负载部署到广泛的后端。 MLC 支持的平台包括浏览器 (WebGPU, WASM)、NVIDIA GPU (CUDA)、AMD GPU (ROCm, Vulkan)、Intel GPU (Vulkan)、iOS 和 MacBooks (Metal)、Android (OpenCL) 以及 Mali GPU。

图片

然而,想要部署在移动端,首先要解决存储空间占用过大的问题。因此,更低比特的压缩是必不可少的,MLC-LLM 采用了更加低比特的量化,如 int 4/int 3。从下图可以看出, 7 B 的 Llama -2 模型原本占用了 12.6 GB的存储空间,通过 q3f16(q3 指使用 Quantize 3 bit 来量化,f16 是指核心计算使用 fp 16 来计算)量化后,生成仅占用 2.4 GB 存储空间的模型,使其能够成功部署在手机上。

图片

总的来说,异构计算编译器通过优化和自动化编译过程,实现了机器学习模型在各种硬件平台上的高效运行,从而极大地提高了模型的训练和运行效率,同时也使得大型语言模型能够部署到各类设备,包括资源有限的移动设备上。通过异构计算编译器,开发者可以灵活地选择和组合不同的计算资源,以满足特定应用的需求,这种集成能力对于推动计算技术的发展和创新至关重要。

未来,OpenBayes贝式计算将会持续在异构计算体系中发挥自身的作用,与国内各大芯片厂商、上下游生态伙伴合作,共同推动异构编译器的普及和发展。


OpenBayes
6 声望1 粉丝

贝式计算是中国领先的高性能计算服务提供商,通过为新一代异构芯片嫁接经典软件生态及机器学习模型,向工业企业及高效科研院所提供更加快速、易用的数据科学计算产品。