为什么我应该使用 CUDA Driver API,在哪些情况下我不能使用 CUDA Runtime API(这比 Driver API 更方便)?
运行时 API 是比驱动程序 API 更高级别的抽象,并且通常更易于使用(性能差距应该很小)。驱动程序 API 是基于句柄的 API,提供更高程度的控制。相反,运行时 API 更容易使用(例如,您可以使用kernel<<<>>>
启动语法)。
That "更高程度的控制”意味着使用驱动程序 API,您必须以更详细的方式处理模块初始化和内存管理,但这允许您做更多的事情,例如禁用内核代码的驱动程序 JIT 优化:
CU_JIT_OPTIMIZATION_LEVEL - 应用于生成代码的优化级别 (0 - 4),其中 4 是默认且最高的优化级别。
选项类型:无符号整型
From http://developer.download.nvidia.com/compute/cuda/4_1/rel/toolkit/docs/online/group__CUDA__TYPES_gfaa9995214a4f3341f48c5830cea0d8a.html
目前无法通过使用运行时 API 的代码实现这一点。更精细的控制意味着您可能会使事物损坏或变慢,如果您不知道它们是什么,请不要使用它。
尽管您通常应该在应用程序中只使用运行时 API 或驱动程序 API,使用较新的 CUDA 版本,运行时 API 代码可以与驱动程序 API 代码和平共存 (http://docs.nvidia.com/cuda/pdf/CUDA_C_Programming_Guide.pdf)
应用程序可以将运行时 API 代码与驱动程序 API 代码混合在一起。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)