cudart_static - 什么时候有必要?

2024-02-23

由于较新的驱动程序附带 CUDA 运行时(我可以在驱动程序下载页面中选择 9.1 或 9.2),我的问题是:我的库(内部使用 CUDA 内核)是否应该附带-lcudart_static?

我在使用 9.1 CUDA 驱动程序的系统上启动使用 9.2 编译的内核时遇到问题。确保我的库在安装了最新 CUDA 驱动程序的任何地方运行的最“兼容”的方法是什么? (我已经在为虚拟架构进行编译)


由于较新的驱动程序附带 CUDA 运行时(我可以在驱动程序下载页面中选择 9.1 或 9.2)

不,那是不正确的。驱动程序下载页面中的该选择与每个 CUDA 版本都具有以下事实有关:与其关联的最低所需驱动程序版本 https://stackoverflow.com/questions/30820513/what-is-version-of-cuda-for-nvidia-304-125/30820690#30820690。这并不意味着该驱动程序附带了 CUDA 运行时(换句话说,该驱动程序不会在 Linux 上安装 libcudart.so,并且从未安装过 - 通过对全新安装进行一些仔细的实验​​,您可以向自己证明这一点。)

一些补充意见:

-lcudart_static实际上是default对于当前/最新版本nvcc。您可以通过阅读发现这一点NVCC 手册 https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#file-and-path-specifications。因此,默认情况下,您的可执行文件在编译/构建时使用nvcc应该已经静态链接到对应版本的 CUDA 运行时库nvcc您用于编译的。您可能需要指定此或类似内容的原因是,如果您正在使用例如构建应用程序gnu 工具链(在 Linux 上)而不是nvcc.

正如您猜测的那样,静态链接到 CUDA 运行时库的目的是让应用程序能够以不需要安装 CUDA 工具包即可正常运行的方式构建。它只需要一台安装了正确 GPU 驱动程序的机器。

确保应用程序在安装了一系列 GPU 驱动程序的一系列计算机上运行的最兼容方法是使用oldest需要 CUDA 工具包来满足您想要涵盖的范围内最早的 GPU 驱动程序的需求。再次,你可以参考表格here https://stackoverflow.com/questions/30820513/what-is-version-of-cuda-for-nvidia-304-125/30820690#30820690.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cudart_static - 什么时候有必要? 的相关文章

随机推荐

  • 如何在AWS中创建新用户

    我试图弄清楚如何使用适用于 Java 的 AWS API 创建新用户 但我不知道我需要做什么 到目前为止 我设法编写了这段代码 它为我提供了一个 CreateUserRequest 一个 CreateAccessKeyRequest 和一个
  • 连接字符串中的允许用户变量 - SQL Server Express

    我正在尝试在连接字符串中添加 AllowUserVariables true 以使用 C 访问 SQL Server Express 但一个Keyword not supported allowuservariables 抛出异常 我该如何
  • 在布局 xml 中使用 onClick 属性会导致 Android 对话框中出现 NoSuchMethodException

    我创建了一个自定义对话框和一个布局 xml
  • ExpressJS / NodeJS 重定向图像

    可以吗 img具有 src 值并重定向到另一个页面 看来 我有img img src images fileName 在app js中 app get images fileName subject image 这是我的路线 exports
  • apache httpclient 未设置基本身份验证凭据

    看一下下面的代码 DefaultHttpClient http new DefaultHttpClient http getCredentialsProvider setCredentials new AuthScope AuthScope
  • 列不允许 DBNull.Value - 禁止 KeepNulls - 正确的列映射

    我正在使用 c 和 NET 4 5 2 推送到 SQL Server 2017 14 0 1000 169 在我的数据库中 我有一个带有 DateAdded 字段的表 其类型为DateTimeOffset 我正在尝试使用以下代码进行批量复制
  • C# 和 JavaScript 之间的时间跨度差异说明

    这是基于在 C 中计算 1970 年以来的毫秒数会产生与 JavaScript 不同的日期 https stackoverflow com q 22081128 1346943 and Javascript Date getTime 的 C
  • 简单游戏的 Canvas 与 SVG

    如果我想构建一个简单的游戏 贪吃蛇 西洋跳棋 吃豆人或其他游戏 什么是更好的方法 SVG 还是 Canvas 我感兴趣的事情 易于实施 Canvas 与 SVG 的学习曲线 例如 如果 SVG 的教程和社区支持明显减少 这对我来说至关重要
  • 从 jQuery 加载 symfony 2 目录中的 php 文件

    我在捆绑包内的树枝文件中有这行代码 jQuery BundleDir Bundle views mapname index html twig datacount load getDataCount php 我的问题是我需要将 getDat
  • 如何使用 jquery 操作查询字符串

    我有一个选择下拉列表 其中 id 映射到值 在 onChange 事件中 我想重定向到相同的 url 但将 id value 附加到查询字符串 如何检查此 id 选项是否已存在于查询字符串中 我不需要多个值 并根据需要替换 附加 我如何检查
  • 使用带有用户名和密码的 http 进行 Git 克隆

    我尝试使用 git 克隆http 用户 电子邮件受保护 http user password host com但我在添加用户或密码时遇到一些问题 因为用户使用的电子邮件包含其他 而密码使用感叹号 该命令看起来像http 电子邮件受保护 电子
  • PharData extractTo方法在linux环境下提取.tar.gz失败

    我想将 tar gz 文件提取到特定文件夹中 我使用 cURL 从 MailChimp 批量操作下载 tar gz 文件 我使用下面的代码来提取 tar 文件 phar new PharData upload test tar gz pha
  • 如果调用者返回太早,则异步 AWS Lambda 不会执行

    我正在尝试调用异步 lambda 函数within另一个 lambda 函数 我发现如果调用函数退出得太快 它就不会被执行 换句话说 以下内容永远不会起作用 LambdaFunction2 永远不会被调用 function lambdaFu
  • 在 OpenCV 中更新 Mat 的子矩阵

    我正在使用 OpenCV 和 C 我有一个像这样的矩阵 X Mat X Mat zeros 13 6 CV 32FC1 我只想更新它的一个 4x3 子矩阵 但我对如何有效地访问该矩阵存有疑问 Mat mat43 Mat eye 4 3 CV
  • 恢复备份mysql

    我在 mysql 中有一个 250MB 的数据库备份 如何将其恢复到另一台服务器上的新数据库中 或者只是使用php我的管理员为了恢复海豚
  • 分组数据框中日期范围重叠

    我如何知道两行的日期范围是否重叠 输入数据框 A B Start End Timestamp A1 B1 2022 01 15 2022 02 15 2021 05 17 A1 B1 2021 07 15 2021 10 17 2021 0
  • 在 Excel 中设置文本字符串列表的格式

    我正在尝试将 Excel 中出现的单词列表的字体变成红色 到目前为止 我能够找到一个单词 但我需要搜索整个数组 我是 VBA 新手 正在苦苦挣扎 到目前为止 我已经找到了一个解决方案 但它涉及查找单个字符串 F1 Sub test4Stri
  • 获取隐藏元素的偏移量

    如何获取隐藏元素的坐标 offset 不支持使用隐藏元素 有什么提示吗 如果你的元素有 hide 调用它 或者如果它有display none在CSS中 浏览器根本不费心去渲染它 在这种情况下 答案不是直接的 在最近的jQueries中 你
  • 在 Parse.com Cloud 代码 beforeSave 函数中访问原始字段

    最终目标是使用以下方法检测现有 Parse 对象和传入更新之间的更改beforeSave云代码中的函数 从 parse com 提供的 Cloud Code 日志中 我们可以看到以下内容的输入 beforeSave包含一个名为origina
  • cudart_static - 什么时候有必要?

    由于较新的驱动程序附带 CUDA 运行时 我可以在驱动程序下载页面中选择 9 1 或 9 2 我的问题是 我的库 内部使用 CUDA 内核 是否应该附带 lcudart static 我在使用 9 1 CUDA 驱动程序的系统上启动使用 9