为什么我应该使用CUDA驱动程序API,在哪些情况下我不能使用CUDA Runtime API(比Driver API更方便)?
运行时API是驱动程序API的更高抽象级别,通常更容易使用(性能差距应该最小).驱动程序API是基于句柄的,并提供更高程度的控制.相反,运行时API更易于使用(例如,您可以使用kernel<<<>>>启动语法).
" 更高程度的控制 "意味着使用驱动程序API,您必须以更详细的方式处理模块初始化和内存管理,但这允许您执行更多操作,例如禁用内核代码的驱动程序JIT优化:
CU_JIT_OPTIMIZATION_LEVEL - 应用于生成代码的优化级别(0 - 4),其中4是默认和最高级别的优化.选项类型:unsigned int
目前,通过运行时API的代码无法实现.更好的控制程度意味着您可能会使事物变得破碎或变慢,如果您不知道它们是什么,请不要使用它.
您通常应该只在应用程序中使用运行时API或驱动程序API,但是,对于较新的CUDA版本,运行时API代码可以与驱动程序API代码和平共存(http://docs.nvidia.com/cuda/pdf/CUDA_C_Programming_Guide. pdf)
应用程序可以将运行时API代码与驱动程序API代码混合.