首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cuda_runtime_api.h、cuda.h、cuda.h之间的区别

cuda_runtime_api.h、cuda.h、cuda.h之间的区别
EN

Stack Overflow用户
提问于 2011-06-10 14:24:03
回答 2查看 24.7K关注 0票数 39

我开始使用CUDA编程,在一些示例中,我发现代码中包含了包含文件cuda.hcuda_runtime.hcuda_runtime_api.h。有人能给我解释一下这些文件之间的区别吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-10 15:04:07

用非常宽泛的术语:

  • cuda.h定义了CUDA 驱动程序的公共主机函数和类型,API.
  • cuda_runtime_api.h定义了CUDA 运行时的公共主机函数和类型,API
  • cuda_runtime.h定义了cuda_runtime_api.h执行的所有操作,以及CUDA语言扩展和设备内部函数的内置类型定义和函数覆盖。

如果您正在编写要使用包含API调用的主机编译器进行编译的主机代码,则需要包含cuda.hcuda_runtime_api.h。如果您需要其他CUDA语言内置组件,如类型,并且使用运行时应用编程接口并使用主机编译器进行编译,则可以包含cuda_runtime.h。如果您正在编写将使用nvcc编译的代码,那么这一切都是无关紧要的,因为nvcc会自动包含所有必需的头文件,而无需程序员干预。

票数 48
EN

Stack Overflow用户

发布于 2020-01-23 00:48:51

除了@talonmies之外,还有一些观察结果:

  • cuda_runtime.h在内部包含cuda_runtime_api.h,但不包含相反的内容。所以:"runtime includes all of API“是remember.
  • cuda_runtime_api.h的助记符,它没有你可以在官方文档中找到的完整的runtime runtime_api函数,而cuda_runtime.h将拥有所有的函数(例如:cudaEventCreate())。但是,所有定义为cuda_runtime.h的API调用实际上都是在头文件中使用对cuda_runtime_api.h中的函数的调用来实现的。这些是“函数覆盖”,即@talonmies mentioned.
  • cuda_runtime_api.h是一个只有C语言函数声明的C语言头文件;cuda_runtime.h是一个带有一些模板化函数implemented.

的C++头文件

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6302695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档