VentureBeat reports that Los Angeles-based OTOY managed to reverse engineer Nvidia’s CUDA language to run on chips other than Nvidia’s own GPUs. That means programs written in the CUDA language can now run on GPUs provided by Intel, AMD, and ARM. Thus, software built for NVIDIA GPUs will work on a multitude of devices ranging from an AMD-based console (PlayStaton 4, Xbox One) to an Apple iPad or iPhone.
The cloud rendering company launched in January 2009, and has developed a technology that uses “clusters of GPUs” in the cloud to render cinema-quality graphics that’s streamed to a client within a web browser. The company also provides a facial- and motion-capture tech called LightStage that has been used to capture human performances in numerous movies. Rather than listing the AAA hits, such as the lackluster Fantastic Four reboot and Spider-Man 3.
OTOY chief executive Jules Urbach recently told GamesBeat that by porting the CUDA language over to non-NVIDIA hardware, game and app developers can now create a single CUDA code base that can run across multiple platforms rather than write code for each set of hardware. That saves “months of engineering time,” he said, adding that “Compute Shaders will now provide more advanced graphics effects on devices that previously didn’t have access to Nvidia’s technology.”
“We have been able to do this without changing a line of CUDA code, and it runs on AMD chips,” Urbach said. “You can now program once and take CUDA everywhere. AMD has never really been able to provide an alternative.”
Although there is a GPGPU alternative API called OpenCL on the market, OTOY reportedly doesn’t believe it’s as good as NVIDIA’s CUDA technology. Urbach calls CUDA “superior,” and that OpenCL so far has not been able to provide a true market alternative. That said, OTOY decided to develop a “cross compiler” within a nine-week period. This is not the first time OTOY played with CUDA compiler. Back in 2012, the company wrote a fresh CUDA compiler which had higher efficiency than NVIDIA’s in-house CUDA compiler. This tool will be made available within the company’s Octane 3.1 rendering engine sometime this summer.
According to Urbach, the ported CUDA language runs at the same speed on non-NVIDIA hardware as the original code does on NVIDIA cards. This framework will be supported by new “back-ends” that will enable CUDA to target the Vulkan, DirectX, and OpenGL APIs that can be used on Android, PlayStation 4 and WebGL 3.
So why port CUDA to non-NVIDIA hardware? Urbach indicated that OTOY wanted to see “beautiful” CUDA-based NVIDIA applications run on other hardware. The company also set out to bring CUDA-based applications like OTOY’s own Octane renderer to Apple’s Metal GPGPU for OS X and iOS, two platforms where support for OpenGL ES, OpenCL 2.1, and Vulkan compute is non-existent.
“You can now take the best and highest GPU language and run it on other devices,” Urbach said. “OpenCL has been hit or miss. Now you can skip that.”
OTOY’s Octane software is a rendering engine that can be used to create 3D graphics for animations and games. The company is currently working on a plug-in that works in existing game engines like Epic Games’ popular Unreal Engine platform. OTOY also offers Brigade that provides real-time, GPU-based path tracing for gaming and other applications. It’s the company’s fastest rendering engine yet, OTOY boasts on its website.
The question lingers, how will NVIDIA react to OTOY’s breakthrough? Over the past eight years, we often asked NVIDIA why they don’t open CUDA to other vendors, and the answer was always the same: “CUDA is optimized to run on NVIDIA hardware and we do not see the return on investment (in terms of engineering hours and bug-proofing) if we would open our code.” were the words said by Sumit Gupta, former head of GPGPU at NVIDIA, who now works for IBM. While that might have been the case with CUDA while Sumit was a senior executive, it looks like CUDA 7.5 as a language matured to the point where it can be vendor agnostic.
Time will tell will NVIDIA open their own software suite or not. CUDA after all, today is de facto a standard for GPGPU, taught at over 1,000 universities worldwide.