[ot][log] gpgpu video encoding acceleration note

Undescribed Horrific Abuse, One Victim & Survivor of Many gmkarl at gmail.com
Tue Nov 29 11:45:24 PST 2022


I have one of the very few nvidia cards that doesn't do nvenc, which
roughly means not using hardware-accelerated video encoding.

I looked for GPGPU (cuda, opencl) implementations for video encoders,
but didn't find much of anything. I did find other people looking for
this. I wonder if nvidia, amd, and intel, are kind of working together
to require the purchase of hardware to do this; I have no idea if
that's a conspiracy theory or a normal marketing practice, but I
suspect the latter.

I'm baffo32 in below internet argument. Talkys is repeating a strange
point against general encoder implementations that doesn't seem
informed by experience developing software: but I don't really have a
strong counterargument because I've never tried to implement an
accelerated codec using parallelized operations myself. When I
resurrected this month-old thread, Talkys replied to argue further
within hours.

I'm posting this here because I shared a rare paper on the topic in
the conversation.

https://www.reddit.com/r/AV1/comments/xnb8gs/will_older_gpus_like_the_1060_that_support_h264/iq0mwzf/

[–]Silikone 1 point 2 months ago
Couldn't you theoretically accelerate encoding with CUDA? I know there
are such things for other formats.

permalinkembedsavereportgive awardreply

[–]Talkys 1 point 1 month ago
Yeah, but you need hardware support for AV1. CUDA is just an API for
the GPU hardware.

permalinkembedsaveparentreportgive awardreply

[–]Silikone 1 point 1 month ago
It's the API for GPGPU acceleration, not tied to any fixed-function
capabilities. The point would be to facilitate encoding on the GPU
without hardware encoding support.

permalinkembedsaveparentreportgive awardreply

[–]Talkys 1 point 1 month ago
We already use cuda do encode with avc and hevc. But you can't use it
to encode on a format the gpu don't support.

permalinkembedsaveparentreportgive awardreply

[–]baffo32 1 point 4 hours ago
Silkone means that it is possible for somebody to write an encoder
that does this. An encoder can be written for CUDA or OpenCL to
provide hardware accelerated encoding on older hardware. It would not
be as fast as the dedicated hardware, but it can usually be made
faster than a pure software encoder.

permalinkembedsaveparenteditdisable inbox repliesdeletereply

[–]Talkys 1 point 3 hours ago
Yeah, but the overhead is really bad. It's better to use software
encoding with OpenCL help, but only the gpu will just make a big mess
of frames and waste a lot of time joining them.

permalinkembedsaveparentreportgive awardreply

[–]baffo32 1 point 10 minutes ago*
This 2013 paper found a 10%-50% speedup with an OpenCL implementation:
https://web.archive.org/web/20180604015042id_/http://onlinepresent.org/proceedings/vol28_2013/14.pdf

Strangely, that paper is missing everywhere on the web, it's not even
on sci-hub. I wonder if somebody's hardware marketing efforts got out
of hand. [edit: here's an archive:
https://arweave.net/za2jckp3GFY-q6Vsz5zS_kS4-CqZtTB-HoKmn6L1LBM/10.14257/astl.2013.28.14.pdf
]

permalinkembedsaveparenteditdisable inbox repliesdeletereply
about
blog
about
advertising
careers


More information about the cypherpunks mailing list