编写CUDA应用程序时,您可以在驱动程序级别或运行时级别工作,如此图像所示(库是CUFFT和CUBLAS用于高级数学运算):

(来源:tomshw.it)
我假设两者之间的权衡是低级API的性能提升,但代价是代码的复杂性增加.有什么具体的差异,是否有任何重要的事情,你不能用高级API?
我正在使用CUDA.net与C#进行互操作,它是作为驱动程序API的副本构建的.这鼓励在C#中编写许多相当复杂的代码,而使用运行时API的C++等效代码更简单.这样做有什么可以赢的吗?我能看到的一个好处是,将智能错误处理与其余的C#代码集成起来更容易.