Sadly, Vulkan is really painful way of learning graphics programming. Doing almost anything requires large amounts of boilerplate. Almost everything you need to do, for example to make shadows, requires just 10x more code than the technique fundamentally requires.
For learning graphics programming, in my opinion, writing software renderers is much more enjoyable path. Code is less, the code you write touches fundamental and not boilerplate. Downside is that code will be slower as you will lose HW acceleration.
Sadly you can't access RT cores with CUDA, you need to use a graphics API like Vulkan or D3D12. You can make a fast ray tracing based renderer using pure GPU compute, but it'll still be slower than using RT cores.
And even with GPU compute, you benefit from HW acceleration with the HW texture unit.
I would classify GPU compute based rendering as software rendering though. My original comment was written with that in mind. This is a semantic discussion though which is IMO not super important.
If you do GPU-based software rendering, I would highly advice using RT instead of raster for visibility. It's simpler and likely also faster. But HW acceleration there also beats compute, in both, although you can achieve good results without acceleration too.
For learning graphics programming, in my opinion, writing software renderers is much more enjoyable path. Code is less, the code you write touches fundamental and not boilerplate. Downside is that code will be slower as you will lose HW acceleration.