Skip to content
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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

GPU Vulkan backend #617

Open
dcmvdbekerom opened this issue Aug 31, 2023 · 1 comment
Open

GPU Vulkan backend #617

dcmvdbekerom opened this issue Aug 31, 2023 · 1 comment
Assignees
Labels
gpu todo in the short-term roadmap

Comments

@dcmvdbekerom
Copy link
Member

dcmvdbekerom commented Aug 31, 2023

馃挱 Description

With the new CUDA driver it will be much easier to run GPU code on NVIDA graphics cards. Because CUDA is proprietary however, it necessarily only supports NVIDIA cards.

To support more vendors (AMD, Intel, integrated cards), a different backend would be needed. Ideally OpenCL would fill this role, but support by vendors has been poor at best and OpenCL's future is far from clear. One alternative would be to go for OpenGL instead, which although it focuses on graphics rather than computing, since version 3.4 it has "compute shaders" that can do the computations we need. Downside is that there aren't good FFT libraries, and it will soon be deprecated.

Vulkan is OpenGL's successor that has wide vendor support, as well as a good fft library in the form of VkFFT. Because it is first and foremost a graphics driver, most users can be expected to have the driver installed already. By using this backend we would in one step have support for all GPU vendors (including integrated cards as well as mobile!) and possibly web as well (in the form of webGPU, although this is still under development). If this works well, there might not even be a need for a separate CUDA backend.

MacOS doesn't natively support Vulkan, but it is supported through 3rd party software MoltenVK. Since MacOS is not a large part of our userbase, I feel that's an acceptable concession to make.

https://github.com/realitix/vulkan
https://github.com/DTolm/VkFFT

@dcmvdbekerom dcmvdbekerom added the todo in the short-term roadmap label Aug 31, 2023
@dcmvdbekerom dcmvdbekerom self-assigned this Aug 31, 2023
@dcmvdbekerom
Copy link
Member Author

PR here: #624

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gpu todo in the short-term roadmap
Projects
None yet
Development

No branches or pull requests

1 participant