Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
1

Cross-Platform GPU Acceleration Using the SDK

Engaged ,
Nov 07, 2023 Nov 07, 2023

Hi gang;

 

I am looking more into GPU acceleration and have some questions.

 

Looking at the sample project SDK_Invert_ProcAmp, I can see there are seperate conditions depending on whether the user has a CUDA, OpenCL or Metal supported system. Here's my understanding of each:

 

CUDA is great but only for NVIDIA cards so you cannot rely entirely on it, and it won't work on any AMD-carded systems.

 

OpenCL is for GPU computations (not necessarily graphics, like OpenGL). Both seem to be cross-platform compatible and both seem to work across most hardware. However, I have read that Mac has officially dropped support for it, even though it still works. That means the future is uncertain for it, no?

 

Metal is the Mac GPU environment. I know nothing about it and am not really interesting in having to learn it, just to support GPU acceleration on the Mac.

 

So it seems the best and simplest approach would be to use OpenCL and / or OpenGL since it is cross-platform but it is worrisome that Mac no longer supports it.

 

If that is the case, why is it still featured in the SDK_Invert_ProcAmp project? 

 

Any other tips or suggestions for adding GPU acceleration in my plugin?

 

Thanks,

-Richard

TOPICS
SDK
363
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Nov 12, 2023 Nov 12, 2023

Hi Rich

I think the sample uses openCL because that's the only option for AMD cards on windows. You might be able to get the sample to work using openCL for all platforms (as it works on nvidia cards); though you may run into issues on mac in the future. That way you can just use one API instead of 3!

 

Apple really wants you to use metal and they keep threatening to remove support for older API's (openGL/CL) but that would break a lot of things so who knows when they will pull the trigger. 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jan 10, 2024 Jan 10, 2024

Just coming back to this with more questions.

 

If OpenGL is on its way out according to Mac, why is the GLator project (which is built upon OpenGL) still included with the SDK? Should it not be if Apple is killing it off from their platform? Or does this suggest that it's still safe to develop plugins using OpenGL?

 

If one wishes to use GPU acceleration that will be cross-compatible between Mac and PC, and not develop for three different GPU targets (CUDA, Metal, OpenCL), then is it safe to say that eithe OpenCL or OpenGL would be viable options?


Thanks,

Richard

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jan 18, 2024 Jan 18, 2024

Any other suggestions from anyone about what GPU approach to best use for an all-compatible workflow?

 

Checking the After Effects GPU requirements page here: https://helpx.adobe.com/after-effects/using/basics-gpu-after-effects.html

 

They list CUDA, DirectX, OpenCL, and Metal. They do not mention OpenGL although the GLator seems to be an OpenGL-specific project.

 

In my eyes, it seems like OpenCL and / or OpenGL would be fairly good cross-compatible API to use, despite the threat of Apple discontinuing which, from what I've read, seems to be possibly only in the far and distance future?

 

Thanks,

-Richard

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jan 30, 2024 Jan 30, 2024
LATEST

Hi Rich

 

The GLator sample is officially deprecated but I think Adobe kept it for reference since it's still working.

 

It is safe to say currently OpenGL or openCL are really the only options if you wanted to use a single API. Vulkan if you wanted to do a very deep dive, and on mac use moltenVK to have it use metal under the hood. WebGPU is a successor that apparently has the blessing from Apple so maybe look into that if you're going to do more GPU dev in the future.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines