You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
馃挱 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 andOpenCL
's future is far from clear. One alternative would be to go forOpenGL
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
isOpenGL
's successor that has wide vendor support, as well as a good fft library in the form ofVkFFT
. 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 ofwebGPU
, 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 softwareMoltenVK
. 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
The text was updated successfully, but these errors were encountered: