Runtime API? Driver API?

I am studying CUDA with CUDA Programming Guide.

I understand that there are two kinds of APIs in CUDA (i.e. Runtime API and Driver API) and I noticed that, although different names in each API, many functions perform similar (if not same) tasks.

My question is…

  1. “What are the MAIN difference between Runtime API and Driver API?”
  2. “Which API should I (as a novice) take a careful look at for the programming?”

Thanks in advance.

I think this question was asked previously here.

If you call Runtime, Runtime calls Driver. But Runtime works partially
even without driver and hardware present. Thus, you can check during runtime
whether you can use CUDA, rather than crashing on lack of driver library.
So, you can emulate.

Runtime has more “syntactic sugar”. Higher level. Driver is closer to metal. :)

I would start with Runtime. (Oh wait, I am novice and I did.)

Thank you so much!