CUDA_VERSION 和 CUDART_VERSION 一定是一样的吗?
Are CUDA_VERSION and CUDART_VERSION necessarily the same?
CUDA 驱动程序 API 定义 CUDA_VERSION
(在 cuda.h
中),CUDA 运行时 API 定义 CUDART_VERSION
(在 cuda_runtime_api.h
中).但是 - CUDART_VERSION
未定义为 CUDA_VERSION
而是直接定义为数字。
它们是否总是应该具有完全相同的值,或者在某些情况下它们可能不同?
它们在观察上是相同的,但没有关联。
As at runtime,CUDA 版本可能与 CUDART 版本不同。因此(或者,就该答案所描述的而言)两者之间没有联系。
但是,cuda.h
和 cuda_runtime_api.h
都将由 CUDA 安装程序安装。因此,就安装程序安装的内容而言,它们将匹配。安装程序安装驱动程序和开发环境,其中 CUDA(驱动程序 API)版本和 CUDA 运行时 API 版本匹配。但稍后可能会发生变化(例如,如果您更新驱动程序。)也就是说,运行时版本可能会根据后续安装而变化 activity。但是由 CUDA 工具包安装程序安装的 cuda.h
和由 CUDA 工具包安装程序安装的 cuda_runtime_api.h
将保持原样,与工具包安装程序安装的一样。
cuda_runtime_api.h
不依赖于 cuda.h
。出于这个原因,一个定义不仅仅是另一个的定义。您可以构建不依赖于 cuda.h
的 CUDA 运行时 API 应用程序(deviceQuery
示例代码就是一个示例),因此 cuda_runtime_api.h
没有理由构建一个基于 cuda.h
中的内容进行定义 - 这将要求您在包含 cuda_runtime_api.h
时始终包含 cuda.h
,而 CUDA 设计者无意这样做。
CUDA 驱动程序 API 定义 CUDA_VERSION
(在 cuda.h
中),CUDA 运行时 API 定义 CUDART_VERSION
(在 cuda_runtime_api.h
中).但是 - CUDART_VERSION
未定义为 CUDA_VERSION
而是直接定义为数字。
它们是否总是应该具有完全相同的值,或者在某些情况下它们可能不同?
它们在观察上是相同的,但没有关联。
As
但是,cuda.h
和 cuda_runtime_api.h
都将由 CUDA 安装程序安装。因此,就安装程序安装的内容而言,它们将匹配。安装程序安装驱动程序和开发环境,其中 CUDA(驱动程序 API)版本和 CUDA 运行时 API 版本匹配。但稍后可能会发生变化(例如,如果您更新驱动程序。)也就是说,运行时版本可能会根据后续安装而变化 activity。但是由 CUDA 工具包安装程序安装的 cuda.h
和由 CUDA 工具包安装程序安装的 cuda_runtime_api.h
将保持原样,与工具包安装程序安装的一样。
cuda_runtime_api.h
不依赖于 cuda.h
。出于这个原因,一个定义不仅仅是另一个的定义。您可以构建不依赖于 cuda.h
的 CUDA 运行时 API 应用程序(deviceQuery
示例代码就是一个示例),因此 cuda_runtime_api.h
没有理由构建一个基于 cuda.h
中的内容进行定义 - 这将要求您在包含 cuda_runtime_api.h
时始终包含 cuda.h
,而 CUDA 设计者无意这样做。