Live data from Hacker News

Raspberry Pi 4 V3DV graphics driver achieves Vulkan 1.0 conformance

cnx-software.com

11–20 of 105 posts

Re: Raspberry Pi 4 V3DV graphics driver achieves Vulkan 1.0 conformance

#11
post #3

Dumb question - if I want to do simple image processing on a pi4 (2d ffts, small kernels, summing 2d arrays in one dimension, finding Maxima), and I care about performance, is this a reasonable stack to use,with decent prospects or is it faster/safer to stick on the Arm, despite the GPU. 1k x1k monochrome images, at 3-10 fps ( or more)? Jetson nano seems to be the obvious commodity but pricier alternative with GPU ac…

An extremely rough estimate, FFT (prolly the most expensive one of what you mentioned) needs 5N*Log2(N) operations.

If you have 1M source floats and want 60 FPS, translates to only 6 GFlops.

On Pi4, on paper the GPU can do 32 GFlops. Again on paper, the CPU can do 8 FLOPs/cycle which translates (4 cores at 1.5 GHz) to 48 GFlops. That’s assuming you know what you’re doing, writing manually-vectorized C++ http://const.me/articles/simd/NEON.pdf abusing FMA, using OpenMP or similar for parallelism, and have a heat sink and ideally a fan.

So you’re probably good with both CPU and GPU. Personally, I would have started with NEON for that. C++ compilers have really good support for a decade now. These Vulkan drivers are brand new, and GLES 3.1 which added GPGPU is not much older, I would expect bugs in both compiler and runtime, these can get very expensive to workaround.

While I don’t have any experience with Jetson, on paper it’s awesome, with 472 GFlops. Despite the community is way smaller, nVidia is doing better job supplying libraries, CUDA toolkit has lots of good stuff, see e.g. cuFFT piece (I did use CUDA, cuFFT and other parts, just not on Jetson).

Re: Raspberry Pi 4 V3DV graphics driver achieves Vulkan 1.0 conformance

#13
post #10

What software already supports vulkan (so that it in theory can just be "switched on" for rpi)?

This GPU abstraction library can do that: https://diligentgraphics.com/diligent-engine/

Haven’t tested their Vulkan support, but I did GLES 3.1, D3D 11 and D3D 12, all 3 worked great for me.

Re: Raspberry Pi 4 V3DV graphics driver achieves Vulkan 1.0 conformance

#15
post #14

Noob question - is there a quick summary somewhere why Vulkan is better than e.g. OpenGL? Whats different? And what kind of performance enhancements one should expect when using Vulkan?

Isn't Vulkan just the new name for the efforts that historically went into OpenGL?

Re: Raspberry Pi 4 V3DV graphics driver achieves Vulkan 1.0 conformance

#16
post #14

Noob question - is there a quick summary somewhere why Vulkan is better than e.g. OpenGL? Whats different? And what kind of performance enhancements one should expect when using Vulkan?

Answer from another noob: AFAIK it is not about being better, but lower level.

Being closer to how GPUs work underneath gives developers more flexibility for optimizing.

Re: Raspberry Pi 4 V3DV graphics driver achieves Vulkan 1.0 conformance

#17
post #14

Noob question - is there a quick summary somewhere why Vulkan is better than e.g. OpenGL? Whats different? And what kind of performance enhancements one should expect when using Vulkan?

As I understand it, Vulkan allows the application much more control over the rendering pipeline, whereas OpenGL has a lot of internal state you control indirectly.

Re: Raspberry Pi 4 V3DV graphics driver achieves Vulkan 1.0 conformance

#18
post #3

Dumb question - if I want to do simple image processing on a pi4 (2d ffts, small kernels, summing 2d arrays in one dimension, finding Maxima), and I care about performance, is this a reasonable stack to use,with decent prospects or is it faster/safer to stick on the Arm, despite the GPU. 1k x1k monochrome images, at 3-10 fps ( or more)? Jetson nano seems to be the obvious commodity but pricier alternative with GPU ac…

Just try it out, says it works with Vulkan 1.0:

https://github.com/DTolm/VkFFT

Re: Raspberry Pi 4 V3DV graphics driver achieves Vulkan 1.0 conformance

#19
post #17
post #14

Noob question - is there a quick summary somewhere why Vulkan is better than e.g. OpenGL? Whats different? And what kind of performance enhancements one should expect when using Vulkan?

As I understand it, Vulkan allows the application much more control over the rendering pipeline, whereas OpenGL has a lot of internal state you control indirectly.

One issue with OpenGL is it was originally designed in the 90s when modern GPUs didn't exist. Whilst the API has evolved since then there was a reticence to chunk it all away and start again with a clean slate, or at least have a radical resdesign (something DirectX didn't shy away from).

Vulkan is built based on modern GPU architecture as well as being lower level then OpenGL. This makes it easier to get the best out of the hardware.

Re: Raspberry Pi 4 V3DV graphics driver achieves Vulkan 1.0 conformance

#20
post #9
post #2

This is what sets the raspberry pi apart from all other SBCs in my experience: software support. Kudos, this is fantastic stuff! Will love to see the ecosystem of stuff that springs up that takes advantage of this.

And yet one of the reason it achieved such great software support is because it had so much success, despite the non-standard hardware (armv6 at launch, broadcom, no EFI boot, broadcom, no GIC, broadcom, no armv8, broadcom, gpu boots before CPU, etc.)

I think you are missing broadcom on that list. But for real, why is Broadcom so bad?
Post reply on HN