-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GPUJPEG with Vulkan #75
Comments
Hi @wolfviking0, thanks, I didn't know about that vuda, but as you mentioned, it would also need to convert the shaders to something that is compilable to SPIR-V (assuming that OpenCL would work). Although it would be nice to do, I am afraid that I cannot promise anything now, it is mostly thing of priorities since this requires higher amount of work than small. Anyways, what is exactly the point of running it with Vulkan? Support for cards other then NVIDIA? (or platform, namely mac?) |
Yes for Mac and iOS but not only, I am also thinking for Android. |
Thanks for the info. But as I already noted, there there will probably not be enough development capacity for that in near future. I've also a bit searched and there are projects (also here) strive to compile also CUDA kernels to something more generic but I am not sure how much effort would it require to convert to SPIR-V, looks like more than one step would be required. Perhaps OpenCL could be also considered as a conservative intermediate? I have to admit, that from my point of view there is now currently an explosion of (compute) APIs that I don't know and it is a pity that CUDA toolkit doesn't compile/transpile to anything else (but it a bit understandable). |
Hi @MartinPulec Just wanted to give you a small update on a work I am trying to do, before going to the Vulkan road, I want to try OpenCL first. Mainly because OpenCL is already supported on many devices include Android. To do that I initiate a fork, with a first step trying to get the code fully buildable on OSX. Its really the beginning, but I will try to keep working on it as much as I can My idea for now will be to get at compile time (during the config of cmake) the user to choose CUDA vs OPENCL vs CPU
|
I started adding some function to test first decode, I am testing with this image Right now the approach is really naive, replace cudaMalloc/cudaFree/cudaMemset/cudaMemcpy and all other function to malloc/free/memset/memcpy. Line 378 in 89878b2
I am not sure what should I do here, any thought ??
|
Hi @anthonyliot,
I think that having the OpenCL/CPU implementation is a very good idea. Anyways, instead of ifdef-ing everything, what about having structure of platform-dependent functions? I mean something like:
But it can also be done retroactively. The advantage is that there doesn't need to be only primitive functions like |
If I got it right, you have the output after iDCT and de-quantization but the postprocessor is missing? I am afraid that you'll need to make up one by yourself, but it is not too difficult. I've opened a discussion #89 not to mess it here too much. |
Hi @MartinPulec 1 - Be able to have a full running version on OSX (Maybe also Android) using CPU at compile time. |
Hi @MartinPulec,
I have a question, I have the crazy idea to want to run gpujpeg using Vulkan for that I was looking a project call Vuda : https://github.com/jgbit/vuda
The approach of this code it’s to wrap the cuda_runtime api with Vulkan. Then all kernel need to be transform into compute shader.
Do you think your kernel could be converted into opencl or compute shader ?
The text was updated successfully, but these errors were encountered: