Vulkan Compute's semantics are limited by SPIR-V and thus cannot implement all of the features CUDA provides (ex. there is no proper notion of a "pointer")
Also it's much more convenient to use plain C++ rather than a custom shading language, especially if you're writing complex numerical code or need some heavy templated abstractions to do powerful stuff. And the CUDA tooling itself is just much easier to use compared to Vulkan, with its seamless integration of host / device code.
Also it's much more convenient to use plain C++ rather than a custom shading language, especially if you're writing complex numerical code or need some heavy templated abstractions to do powerful stuff. And the CUDA tooling itself is just much easier to use compared to Vulkan, with its seamless integration of host / device code.