MediaPro Accelerates C++ and CUDA Project by 85% With Incredibuild
The MEDIAPRO Group is the leading technical services supplier to the audiovisual sector. Their product, AutomaticTV, is a revolutionary video production AI for sports events. Catering to sport event organizers that don’t nececassrily have the budget for an actual production team, AutomoaticTV replaces the traditional OB Vans, camera operators, producers, TV engineers, and director with it’s own AI based decisions and creates a professional edited broadcast of the event.
“AutomaticTV is built using C++, CUDA, a little bit of OpenGL, and many other libraries,” tells us Oscar Amoros, CUDA lead engineer at MediaPro. “There are developers focused on computer visions algorithms, others like me on CUDA optimizations, and others on QT and OpenGL for the User Interface. The result is a big code, with a lot of independent pieces that can be compiled in parallel. We make changes, compile and test. Although we worked to reduce many code dependencies, the process still sometimes takes a lot of time.”
MediaPro’s developers also struggled with focusing their energy in light of constant context switching. As Amoros recalls, “We had to work with several branches of the project at the same time, because compilation times were too high, and while one branch was compiling, we worked on another branch. The problem with that is when you are working on a very technical branch, like optimizing CUDA host code (CPU and GPU interaction), it requires 100% of your brain. Then, you can’t simply change from one branch to another, you need to focus for some hours on that single task, and you will need to compile several times.”
“Incredibuild is essential to us. We have a huge code that would take a long time to compile if it weren’t for Incredibuild. We use it constantly, every day”
CUDA lead engineer, MEDIAPRO
How Incredibuild crunched it
Incredibuild’s strong technological partnership with NVIDIA makes it the ideal tool to accelerate compute-intense CUDA compilations. NVIDIA’s own Ian Buck, general manager of GPU computing software, told us that “with Incredibuild technology, CUDA developers can easily take advantage of Incredibuild to dramatically reduce the amount of time they spend developing GPU-accelerated applications.”
Since Incredibuild speeds up a variety of tests such as API and integration tests, unit tests, sanity tests, stress tests and more, MediaPro’s developers found the cure to their test challenges as well.
“We installed Incredibuild on the developer’s machines that work on the C++/CUDA app,” says Amoros. By doing so, Incredibuild immediately harnessed underutilized CPU cycles from all installed machines, and distributed the relevant tasks between them, causing an 85% decrease in compilation time and a significant increase to the number of commits and builds MediaPro runs on a daily basis. “In the past, compiling the whole Visual Studio project including the tests took us 1 hour and 15 minutes. Now it takes 12 minutes, including compiling the tests.”
Speeding up the process had profound effects on productivity as well, by eliminating the need to work on another branch while the original one compiles for a long period. As Amoros tells us, “Incredibuild reduces developer frustration levels a lot, since they feel a lot more productive, and focused. Without Incredibuild, we suffer, we feel we can’t work.”
The Bottom line
Continuous Integration of C++/CUDA Project + Tests12 mins75 mins