Monday, October 8th 2018

VUDA is a CUDA-Like Programming Interface for GPU Compute on Vulkan (Open-Source)

GitHub developer jgbit has started an open-source project called VUDA, which takes inspiration from NVIDIA's CUDA API to bring an easily accessible GPU compute interface to the open-source world. VUDA is implemented as wrapper on top of the highly popular next-gen graphics API Vulkan, which provides low-level access to hardware. VUDA comes as header-only C++ library, which means it's compatible with all platforms that have a C++ compiler and that support Vulkan.

While the project is still young, its potential is enormous, especially due to the open source nature (using the MIT license). The page on GitHub comes with a (very basic) sample, that could be a good start for using the library.
Source: VUDA on GitHub
Add your own comment

33 Comments on VUDA is a CUDA-Like Programming Interface for GPU Compute on Vulkan (Open-Source)

#1
dj-electric
If this succeed as intended, This is freaking huge. Massive...
Posted on Reply
#2
TheGuruStud
Now, now, don't anger the Leather Jacket. Open Source is probably a banned term at Nvidia.
Posted on Reply
#3
Camm
OpenCL is already perfectly sufficient at this. I fail to see the need for fragmentation except for a new catchy name.
Posted on Reply
#4
GinoLatino
Kudos... ehm I mean Vudos to that Gihub developer!
Posted on Reply
#5
FordGT90Concept
"I go fast!1!11!1!"
1) Is NVIDIA going to sue?
2) How does AMD/NVIDIA compute performance compare using VUDA?
3) Can developers easily implement CUDA code to work on VUDA on AMD cards?
Posted on Reply
#6
R0x0r
Does this mean we will be able to write CUDA-like code and run it on every GPU which supports Vulcan API?
Posted on Reply
#7
Harry Lloyd
Looking at that sample, you would definitely have a problem with memory allocation after drinking vuda. Might need a miracle (or a few of them for that matter).

*gotta be Polish to understand all that
Posted on Reply
#8
hat
Enthusiast
Sounds like work for either slick lawyers, the driver team, or both... nVidia isn't going to like this.
Posted on Reply
#9
ZoneDymo
Time to buy out and get rid off, the Nvidia way!!
Posted on Reply
#10
punani
ZoneDymo said:
Time to buy out and get rid off, the Nvidia way!!
... but it's open source ?
Posted on Reply
#11
medi01
So, a single dude has started something named VUDA.
It is 2 days old, 0 releases so far, but potential, oh god, how cool a potential it has, given how triggeringly cool it's name is to some.
Posted on Reply
#12
notb
medi01 said:
So, a single dude has started something named VUDA.
It is 2 days old, 0 releases so far, but potential, oh god, how cool a potential it has, given how triggeringly cool it's name is to some.
Yup. Just another library for GPU computation. Actually, just a promise of one. I don't understand why this even exists in the news section.

@W1zzard as this news has little to do with gaming, I assume there's a growing interest in GPGPU. I'd suggest putting this sudden urge into something actually useful, like a GPGPU test in GPU reviews. ;-)

hat said:
Sounds like work for either slick lawyers, the driver team, or both... nVidia isn't going to like this.
Because of the name? Unlikely. Anyone can start a GitHub project and call it nvudia or aamd. 100% clean in terms of trademarks.
TheGuruStud said:
Open Source is probably a banned term at Nvidia.
Little you know about the company in question and Open Source in general.

Here's some data about 2017 GitHub activity. Enjoy.
https://datastudio.google.com/reporting/0ByGAKP3QmCjLU1JzUGtJdTlNOG8/page/Q3DM
R0x0r said:
Does this mean we will be able to write CUDA-like code and run it on every GPU which supports Vulcan API?
To some degree you've been able to write CUDA-like code for non NVidia cards for years. It's called OpenCL.
VUDA is not even a thing at this point. And the tiny code sample that we have clearly shows the code isn't 100% compatible. So it won't be a thing, ever.
Posted on Reply
#13
renz496
TheGuruStud said:
Now, now, don't anger the Leather Jacket. Open Source is probably a banned term at Nvidia.
lol if anything nvidia will want the open source to be inspired by them. the way it should work on their hardware even if the said software is open source. OpenGL is one of the prime example. despite being open source developer end up targeting nvidia hardware as the primary hardware to optimize their performance.

FordGT90Concept said:
1) Is NVIDIA going to sue?
2) How does AMD/NVIDIA compute performance compare using VUDA?
3) Can developers easily implement CUDA code to work on VUDA on AMD cards?
1) no. while CUDA is nvidia proprietary API their official stand is anyone is free to do what ever they want with CUDA. you want to copy or modified them (ala AMD Blotzmann initiative)? make it compatible with your hardware (like how Qualcomm make their snapdragon compatible with their cuDNN)? feel free to do it. but nvidia will have full control with CUDA development itself. and actually this is AMD initial plan with Mantle. MS and Khronos Group can take Mantle as a "reference" to build their low level API but Mantle development itself will be fully controlled by AMD. hence the talk about Mantle 2.0 release before by Richard Huddy.

2) and 3) too early to tell at this time.
Posted on Reply
#14
R-T-B
Camm said:
OpenCL is already perfectly sufficient at this. I fail to see the need for fragmentation except for a new catchy name.
Existing software that uses CUDA?
Posted on Reply
#15
lexluthermiester
TheGuruStud said:
Now, now, don't anger the Leather Jacket. Open Source is probably a banned term at Nvidia.
Not at all. NVidia is a big contributor to OSS.
Posted on Reply
#18
R-T-B
prtskg said:
Considering AMD contributes almost 8.5 times more code to open source than Nvidia, the term 'big contributor' seems not that appropriate.
https://www.phoronix.com/scan.php?page=news_item&px=AMD-NVIDIA-Intel-Kernel-Contrib
It still is. They contribute much more than many conpanies of similar size. Just because a competitor contributes a lot more does not make them a "small contributor" or something. They are still a heavyweight.
Posted on Reply
#19
FordGT90Concept
"I go fast!1!11!1!"
Intel has been contributing TPM, HDCP, USB, PCI Express, etc. which covers the entire industry.
Posted on Reply
#20
John Naylor
R-T-B said:
Existing software that uses CUDA?
Adobe Premiere is probably the most know application thet benefits hugely from CUDA. Also After Effects, Media Encoder, SpreedGrade, Adobe Prelude, Lightroom, Illustrator, PhotoScan.... AutoDesk AutoCAD, Stingray, Moldflow. Invenor, Revis, 3dsmax, Maya, Davinci Resolve, Blender, Solidworks, Driverless AI, LuxRender, ArchiCAD, Lightwave, Octane render, Raptor. But over 250 programs support / benefit from CUDA. Mostly advantageous in modeling, graphics rendering and weather mapping.

However, waving the CUDA flag is kinds like bragging about more cores .... very advantageous if ya need it. But outside of workstation apps that most folks never use, has no real impact on most folks. If VUDA works as well as OpenCL, I don't see it making a splash.
Posted on Reply
#21
notb
R-T-B said:
Existing software that uses CUDA?
This "VUDA" is not a CUDA port for other hardware. It's a different language that mimics the syntax (at best).
And unless the mysterious guy behind it is, for example, Intel's GPU team, there is a marginal chance that it'll be even close to CUDA efficiency.

Since the code is different, all CUDA-accelerated software would have to be rewritten. Authors might just as well write an OpenCL (or something else) implementation. And they'll have to do that anyway, because Intel will surely become the second major GPGPU provider.
It's not a 100% code copy like we've seen in, for example, Matlab and Octave. The reason why Octave became so huge is because the code is almost the same (assuming it doesn't use specific Matlab packages). This means you can learn Matlab using Octave or you can develop programs for Matlab without the license.

Mind you, a CUDA front-end to OpenCL would be a welcome thing. Even if performance was bad, you could still develop and test CUDA software without an Nvidia GPU (so on most laptops, for example) - and then just run the same code on HPC.
prtskg said:
Considering AMD contributes almost 8.5 times more code to open source than Nvidia, the term 'big contributor' seems not that appropriate.
https://www.phoronix.com/scan.php?page=news_item&px=AMD-NVIDIA-Intel-Kernel-Contrib
Linux kernel is a tiny part of open source and it's major function is "talking" to the CPU. Hence, Intel, AMD, Samsung and ARM are major contributors.
Phoronix actually mentions that Nvidia's contribution is mostly about Tegra.

I've posted a link to some GitHub statistics, but it's actually a well known fact that AMD is very passive when it comes to actual cooperation with programmers (both open source and not). They don't propose optimizations, they don't offer much support. They just make powerful hardware and tell people "we provided you the horsepower, do the rest".
It's the total opposite of what Apple does, with Intel and Nvidia being somewhere in the middle.

Sure, this could be a part of their cost-cutting strategy and being able to release hardware cheaper than the competition. But it greatly limits their attractiveness in many segments.
Posted on Reply
#22
FordGT90Concept
"I go fast!1!11!1!"
But it's not OpenCL. It's using the flexibility of Vulkan to execute non-rendering code. It's impossible to predict how it performs because it comes at the problem from a very different angle.
Posted on Reply
#23
prtskg
notb said:
Linux kernel is a tiny part of open source and it's major function is "talking" to the CPU. Hence, Intel, AMD, Samsung and ARM are major contributors.
Phoronix actually mentions that Nvidia's contribution is mostly about Tegra.
Graphics stack has also been taken in account.
"While it shouldn't come as too much surprise given all of the work AMD has been doing on their open-source graphics stack recently while NVIDIA continues to contribute very little (relatively speaking) ....
AMD's contributions to the kernel include various AMD CPU/chipset work as well as their open-source AMDKFD/AMDGPU/Radeon graphics driver components and related work on TTM memory management, core DRM, etc. A far majority of NVIDIA's contributions to the Linux kernel are on the Tegra front with supporting their SoCs and developer boards with the Linux kernel code. NVIDIA contributes very few lines of code to the open-source NVIDIA DRM (Nouveau) driver.
Posted on Reply
#24
R0H1T
medi01 said:
So, a single dude has started something named VUDA.
It is 2 days old, 0 releases so far, but potential, oh god, how cool a potential it has, given how triggeringly cool it's name is to some.
You remember Mantle, how cool that was? It's called Vulkan now & is in your PC, probably. If we didn't encourage free alternatives, we'd never have Linux or Android.
Posted on Reply
#25
notb
FordGT90Concept said:
But it's not OpenCL. It's using the flexibility of Vulkan to execute non-rendering code. It's impossible to predict how it performs because it comes at the problem from a very different angle.
But the argument was not about how it works. It was about VUDA replacing CUDA (making easy ports possible). That is not true. The code is different. End of story. :)
R0H1T said:
You remember Mantle, how cool that was? It's called Vulkan now & is in your PC, probably. If we didn't encourage free alternatives, we'd never have Linux or Android.
Linux is not "free". You're just paying with time, not with money. It's just a different way of paying. Money is better - that's why we invented it.
Android is almost impossible to evaluate. As a client, you can't download Android and use it on your PC (well... you can, but it's pointless). On the other hand, Android is in the end the main source of income for Google.

Mantle was a joint venture of AMD and gaming studios. It wasn't a hobby project run by some bloke.

Also, isn't it funny that Mantle was mentioned next to claims that AMD is such a FOSS and Linux contributor? :-D
Posted on Reply
Add your own comment