mn416 / QPULib

Language and compiler for the Raspberry Pi GPU
Other
429 stars 64 forks source link

Raspberry Pi 4 and VideoCore VI #75

Open ghost opened 4 years ago

ghost commented 4 years ago

Is it supported?

I couldn't find that detailed of specs on the VideoCore VI but it seems like it's suppose to be a lot faster.

wimrijnders commented 4 years ago

You can't find any specs because they aren't released (yet, hopefully).

The VC6 isn't that much faster; it has a higher clock rate and more efficient design, so that there are less instructions stalls in the pipeline. However, the number of QPU's has been brought down to 8 from 12.

This results in a significant but slight performance increase:

VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s

Source

ghost commented 4 years ago

@wimrijnders You're right, I mistakenly thought there was a huge performance advantage. It's a shame though that they're not releasing the specs.

lyogavin commented 4 years ago

Seems like it's figured out here: https://github.com/Idein/py-videocore6.

Any plan to support Pi4?

wimrijnders commented 4 years ago

That's the very repo I'm investigating for VideoCore 6 functionality.

I'm looking into it.

On 5/19/20, Gavin Li notifications@github.com wrote:

Seems like it's figured out here: https://github.com/Idein/py-videocore6.

Any plan to support Pi4?

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/mn416/QPULib/issues/75#issuecomment-630920251

-- Met vriendelijke groet,

Wim Rijnders http://axizo.nl

lyogavin commented 4 years ago

@wimrijnders you making any progress? you think this may work?

lyogavin commented 4 years ago

Maybe share some of your preliminary findings so that we can see if we can help?

wimrijnders commented 4 years ago

Nothing worth publishing, I'm afread.

The issue is that there is no documentation at all to be found about using VC6. So, I downloaded the relevant driver code in the linux kernel (more specifically: the entire kernel and culling it), and I'm trying to get the relevant funtionality working from there.

The other thing I tried is looking at similar projects in other languages (notably python, the project link is above) and destill the relevant stuff from there. That went well up to a certain extent.

TBH it's an ordeal. If you know of a better approach, please tell.

madtom1999 commented 4 years ago

On 09/07/2020 14:53, wimrijnders wrote:

Nothing worth publishing, I'm afread.

The issue is that there is no documentation at all to be found about using VC6. So, I downloaded the relevant driver code in the linux kernel (more specifically: the entire kernel and culling it), and I'm trying to get the relevant funtionality working from there.

The other thing I tried is looking at similar projects in other languages (notably python) and destill the relevant stuff from there. That went well up to a certain extent.

TBH it's an ordeal. If you know of a better approach, please tell.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mn416/QPULib/issues/75#issuecomment-656141325, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJUUC24JPNQMA6DRGG2RHLR2XDWJANCNFSM4JNKAYUQ.

Would contacting the device drivers code authors be of help?

Tom

wimrijnders commented 4 years ago

Not really. All they have to say about using vc4 and vc6 is in the code.

On Fri, Jul 10, 2020 at 5:30 PM madtom1999 notifications@github.com wrote:

On 09/07/2020 14:53, wimrijnders wrote:

Nothing worth publishing, I'm afread.

The issue is that there is no documentation at all to be found about using VC6. So, I downloaded the relevant driver code in the linux kernel (more specifically: the entire kernel and culling it), and I'm trying to get the relevant funtionality working from there.

The other thing I tried is looking at similar projects in other languages (notably python) and destill the relevant stuff from there. That went well up to a certain extent.

TBH it's an ordeal. If you know of a better approach, please tell.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mn416/QPULib/issues/75#issuecomment-656141325, or unsubscribe < https://github.com/notifications/unsubscribe-auth/ABJUUC24JPNQMA6DRGG2RHLR2XDWJANCNFSM4JNKAYUQ .

Would contacting the device drivers code authors be of help?

Tom

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mn416/QPULib/issues/75#issuecomment-656736246, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAF3YDO2RH3R63TV344CTADR24XYJANCNFSM4JNKAYUQ .

geerlingguy commented 3 years ago

Also noting that you can overclock the GPU cores to 750 MHz (using gpu_freq=750 in /boot/config.txt—also set over_voltage=6), which would bring about 48 Gflop/s, right?

wimrijnders commented 3 years ago

@geerlingguy Hey, interesting! So I add that line to config.txt and reboot, is it really that simple?

geerlingguy commented 3 years ago

@wimrijnders - Yes, though I would also recommend either a good heatsink or any kind of fan to move air over the SoC after the overclock, as it will make it a little warmer and could lead to throttling if it hits 85°C.

doleron commented 3 years ago

Hi @wimrijnders, sorry for ask again. But do you have any news about PI4 support? Thank you in advanced for all the great job on QPULib!

wimrijnders commented 3 years ago

@doleron Wow, your timing is perfect. I'm just lost for words.

I just launched today. Have a look at V3DLib, the spinoff of this project, with added VideoCore VI.

doleron commented 3 years ago

@wimrijnders there are no words to say how it is amazing! Looking forward to check it there! Cloning V3Dlib in 3... 2... 1...