编译速度慢向来是C++/C程序语言最大的弱点。开发者花费几个小时在工作站上等待整个产品的创建,或一天花几十分钟等待不断增加的编译的完成——工作效率很低而且浪费时间.
关于MEDIAPRO
困难
MediaPro的CUDA主任工程师Oscar Amoros说到:“AutomaticTV采用C++、CUDA、少量OpenGL以及许多其他库进行构建。我们有开发人员专门负责计算机视觉算法,包括我在内的其他人负责CUDA优化,还有一部分人负责针对用户界面的QT和OpenGL优化。最终形成了庞大的代码,有大量可以进行并行编译的独立组件。我们会进行变更、编译和测试。但尽管我们努力减少了许多代码依赖项,这个过程有时仍然需要大量时间。”
在不断地进行上下文切换的情况下,难以集中精神的问题同样也困扰着MediaPro的开发人员。Amoros回忆道:“由于编译时间太长,我们必须同时开展项目多个分支方面的工作,当一个分支进行编译时,我们就得开展另一个分支的工作。问题在于,当你致力于一个技术性非常强的分支时,例如优化CUDA主机代码(CPU和GPU交互),大脑必须100%地专注于工作。这样一来,你就没法简单地从一个分支切换到另一个分支,需要花几个小时集中精力处理单个任务,但又需要编译好几次。”

IncrediBuild的应对之道
IncrediBuild与NVIDIA建立了深厚的技术合作,使其成为了加速计算密集型CUDA编译的理想工具。NVIDIA GPU计算软件总经理Ian Buck告诉我们:“凭借IncrediBuild技术,CUDA开发人员可以轻松利用IncrediBuild大幅缩短开发GPU加速应用所花费的时间。”
由于IncrediBuild可以加速API和集成测试、单元测试、可用性测试、压力测试等等各类测试,MediaPro的开发人员还找到了解决其测试难题的办法。
Amoros 称:“我们在开发人员用于开发C++/CUDA应用程序的机器上安装了Incredibuild。” 通过这种方式,IncrediBuild立即掌控了所有安装机器上未充分利用的CPU周期,并在它们之间分配相关任务,从而将编译时间缩短了85%,并大幅增加了MediaPro每天的提交和构建数量。“过去,编译整个Visual Studio项目(包括测试在内)需要1小时15分钟。但现在包括编译测试在内,只需要12分钟。”
加速这一过程,消除了在等待当前分支进行漫长的编译时开展另一分支工作的需求,从而对生产效率产生了深远的影响。正如Amoros告诉我们的那样,“IncrediBuild大大降低了开发人员的挫折感,因为他们能够感觉到更加高产,而且专注。如果没有IncrediBuild,我们会觉得无法工作了。”
结果概要
采用IncrediBuild前 | 采用IncrediBuild后 | |
不间断 C++/CUDA 项目+测试 |
75分钟 | 12分钟 |
想要获取IncrediBuild、Visual Studio更多资源或正版授权的伙伴,请联系【客服】领取
12月,庆圣诞、迎元旦,软件商城专属优惠价,领优惠券再享折上折>>>
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!