Case Studies

MEDIAPRO

MediaPro 通过 Incredibuild将 C++和 CUDA项目提速 85%

关于 MEDIAPRO

MEDIAPRO 集团是视听行业的领先技术服务供应商。其产品 AutomaticTV 是用于体育赛事的一项革命性视频制作人工智能技术。为了满足不一定有实际制作团队预算的体育赛事组织者,AutomoaticTV 通过其自身基于人工智能技术的决策,可取代传统的户外转播车、摄影师、制片人、电视工程师和导演,制作出经过专业编辑的赛事转播。

难点:

MediaPro 的 CUDA 主任工程师 Oscar Amoros 告诉我们:“AutomaticTV 采用 C++、CUDA、少量 OpenGL 以及许多其他库进行构建。我们有开发人员专门负责计算机视觉算法,包括我在内的其他人负责 CUDA 优化,还有一部分人负责针对用户界面的 QT 和 OpenGL 优化。最终形成了庞大的代码,有大量可以进行并行编译的独立组件。我们会进行变更、编译和测试。尽管我们努力减少了许多代码依赖项,但这个过程有时仍然需要大量时间。”

在不断地进行上下文切换的情况下,难以集中精神的问题同样也困扰着 MediaPro 的开发人员。Amoros 回忆道:“由于编译时间太长,我们必须同时开展项目多个分支方面的工作,当一个分支进行编译时,我们就得开展另一个分支的工作。问题在于,当你致力于一个技术性非常强的分支时,例如优化 CUDA 主机代码(CPU 和 GPU 交互),大脑必须 100% 地专注于工作。因此,你没法简单地从一个分支切换到另一个分支,你需要花几个小时集中精力处理单个任务,但又需要编译好几次。”

Incredibuild 对我们来说至关重要。如果没有Incredibuild,我们每天都需要花费很长时间进行编译。

Oscar Amoros

CUDA lead engineer

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,我们将难以忍受,我们会觉得无法工作了。”

结果概要

Continuous Integration of C++/CUDA Project + Tests
75分钟Without Incredibuild
12分钟With Incredibuild