云头条按:今天Facebook宣布Glow编译器(https://facebook.ai/developers/tools/glow)开源,致力于通过让合作伙伴支持,打造面向机器学习的硬件生态系统。以下内容来源Facebook博客,供各位参考:
我们很高兴地宣布,Cadence、Esperanto、英特尔、Marvell和高通的子公司高通科技公司已承诺在将来的硅产品中支持Glow。
我们推出Glow为的是为机器学习实现硬件加速。我们希望PyTorch之类的深度学习框架迅速普及开来,因此需要提供种种优化的编译器,加速各种硬件平台上的推理性能,从而支持AI和机器学习行业越来越多的要求。
我们开发了社区驱动的开源框架Glow。这种方法让合作伙伴得以利用社区驱动的编译器软件,更迅速地为AI和机器学习设计和优化新的硅产品。
合作项目
行业合作是Facebook基因的核心,我们继续与系统社区的合作伙伴合作,让我们的平台能够扩展。由于数十亿人已经通过我们的一大批应用程序和服务实现了互连,我们需要这样的基础设施解决方案:支持可持续发展,并借助我们在AI和机器学习方面开展的工作,打造一类新的平台功能。这些技术需要大量的计算处理能力,这为我们如何设计这些系统,并与半导体生态系统进行合作提出了一系列新的挑战。
在过去这七年,我们在如何与硬件社区进行最有效的合作方面颇有心得。我们帮助设立和推动开放计算项目(OPC),因而可以为我们的数据中心构建高度可扩展、高效的网络和存储技术。我们将这个理念运用于如何借助电信基础设施项目(Telecom Infra Project),与电信运营商、整个连接生态系统进行合作,因为我们努力让世界上更多的人更顺畅地连接到互联网。展望未来,我们现在想运用这些心得,以便与硅合作伙伴在AI和机器学习方面进行更好的合作。
Glow的工作原理
硬件加速器上的机器学习推理
Glow使硬件开发人员和研究人员组成的生态系统能够致力于构建由PyTorch等深度学习框架支持的下一代硬件加速器。它拿来来自这些框架的计算图后,就可以为机器学习加速器生成高度优化的代码。
硬件加速器专门用于解决机器学习执行这个任务。它们通常含有大量的执行单元、片上内存条和针对特定应用的电路,确保机器学习工作负载执行起来非常高效。想在专用硬件上执行机器学习程序,编译器用于协调不同的部分,并使它们协同运行。PyTorch等机器学习框架依赖编译器,以便高效地使用加速硬件。
机器学习硬件加速器旨在解决一系列不同的问题。一些硬件加速器专注于推理,另一些专注于训练。每一种有不同的内存和处理器配置。Glow旨在支持一系列广泛的硬件加速器。编译器中与硬件无关的部分专注于并不仅限于特定硬件型号的运算方面的优化。除了与目标无关的优化外,Glow还含有许多实用程序和构建模块,它们经配置后可支持多个硬件目标。比如说,编译器的内存分配器用于为众多硬件加速器生成高效的代码,每种硬件加速器则有不同的内存配置。这些功能包括强大的线性代数优化器、全面的测试套件、用于测试硬件加速器准确性的基于CPU的参考实现、内存分配器以及指令调度器等。
使用Glow的硬件合作伙伴可以缩短将产品推向市场所花费的时间。依赖现有的优化和功能可缩短开发时间,全面的测试套件可以让硬件提供商对于编译器的准确性及其符合PyTorch规范的程度更有把握。
展望未来
我们感谢LLVM社区在推动生态系统支持和采用Glow方面作出的巨大贡献和支持。 我们很高兴继续与合作伙伴在Glow方面开展合作,我们希望在2018年及以后壮大生态系统,增添更多的新合作伙伴。
随着Glow生态系统不断成熟和扩展,我们看到面向AI/机器学习的硬件加速有机会扩大到数据中心之外的领域,从长远来看为移动设备提供商和周边行业带来实质性效益。我们很高兴与硬件生态系统的合作伙伴合作,通过Glow进一步取得AI/机器学习方面的创新。