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 - 什么时候有必要? 的相关文章

  • 加速Cuda程序

    要更改哪一部分来加速此代码 代码到底在做什么 global void mat Matrix a Matrix b int tempData new int 2 tempData 0 threadIdx x tempData 1 blockI
  • 在 __device/global__ CUDA 内核中动态分配内存

    根据CUDA 编程指南 http developer download nvidia com compute cuda 3 2 prod toolkit docs CUDA C Programming Guide pdf 第 122 页 可
  • 在 cudaFree() 之前需要 cudaDeviceSynchronize() 吗?

    CUDA 版本 10 1 帕斯卡 GPU 所有命令都发送到默认流 void ptr cudaMalloc ptr launch kernel lt lt lt gt gt gt ptr cudaDeviceSynchronize Is th
  • CUDA 中指令重放的其他原因

    这是我从 nvprof CUDA 5 5 获得的输出 Invocations Metric Name Metric Description Min Max Avg Device Tesla K40c 0 Kernel MyKernel do
  • 如何运行和理解CUDA Visual Profiler?

    我已经设置了 CUDA 5 0 并且我的 CUDA 项目运行良好 但我不知道如何使用 Visual Profiler 分析我的 CUDA 项目 如何运行它 我还需要安装更多吗 又该如何做呢 我的电脑使用Window 7 64位 CUDA 5
  • cuda-gdb 错误消息

    我尝试使用 cuda gdb 调试我的 CUDA 应用程序 但遇到了一些奇怪的错误 我设置了选项 g G O0构建我的应用程序 我可以在没有 cuda gdb 的情况下运行我的程序 但没有得到正确的结果 因此我决定使用 cuda gdb 但
  • 云或烟雾的粒子系统

    我正在尝试使用 OpenGL 和 CUDA 制作一个简单的用于云和烟雾模拟的粒子系统 如何使粒子系统中的粒子表现得像真正的云或烟雾在低湍流风中的表现 我现在遇到的一些问题是 颗粒聚集成一个大球 粒子扩散到无限远 粒子突然弹射离开 我已经完成
  • Bank 在字长方面存在冲突

    我读过一些关于共享内存的好文章 但我对银行冲突有初步疑问 据说 如果线程 1 和线程 2 从存储体 0 访问字 0 则不存在存储体冲突 但如果他们访问不同的单词 就会出现银行冲突 但我的问题是不同的单词如何可以驻留在一个银行中 由于bank
  • 为什么 cuCtxCreate 返回旧上下文?

    我已经安装了 CUDA SDK 4 2 64 CUDA工具包4 2 64 CUDA 驱动程序 4 2 64 我检查了 windows 中的每个 nvcuda dll 所有这些都是 4 2 版本 但是当我使用驱动程序 api 创建上下文并使用
  • CUDA计算能力2.0。全局内存访问模式

    CUDA 计算能力 2 0 Fermi 全局内存访问通过 768 KB L2 缓存进行 看起来 开发人员不再关心全局内存库 但全局内存仍然非常慢 因此正确的访问模式很重要 现在的重点是尽可能多地使用 重用 L2 我的问题是 如何 我将感谢一
  • CUDA 的嵌套循环

    我想将我的 C 代码移植到 CUDA 主要计算部分包含3个for嵌套循环 for int i 0 i lt Nx i for int j 0 j
  • 摆脱异步 cuda 流执行期间的忙等待

    我正在寻找一种方法 如何摆脱以下代码中主机线程中的忙等待 不要复制该代码 它仅显示我的问题的想法 它有许多基本错误 cudaStream t steams S N for int i 0 i lt S N i cudaStreamCreat
  • 为什么 cudaGLSetGLDevice 失败,即使它是在 main 函数的第一行中调用的

    我想使用 OpenGL 和 CUDA 之间的互操作性 我知道 正如一些教程所说 第一步是选择设备 但是 当我在主函数的第一行中调用 cudaGLSetGLDevice 0 时 程序退出并显示信息 cudaSafeCall 运行时 API 错
  • 直接在主机上访问设备向量元素的最快方法

    我请您参考以下页面http code google com p thrust wiki QuickStartGuide Vectors http code google com p thrust wiki QuickStartGuide V
  • CUDA 和 Eigen 的成员“已声明”错误

    我只是 CUDA 和 Nsight 的初学者 希望利用出色的 GPU 性能进行线性代数运算 例如 CUBLAS 我在以下人员的帮助下编写了很多自定义代码Eigen http eigen tuxfamily org index php tit
  • 如何在没有 nvcc 的情况下在编译时获取 CUDA 工具包版本?

    我在 cpp 文件中对 cuSPARSE 库进行了一些调用 这些调用在旧工具包中不可用 为了支持使用旧工具包的系统 我想使用编译器指令编译不同的代码部分 特别是 我想使用旧工具包的 CSR 格式矩阵和新工具包的 BSR 格式矩阵来求解稀疏三
  • 对 CUDA 操作进行计时

    我需要计算 CUDA 内核执行的时间 最佳实践指南说我们可以使用事件或标准计时函数 例如clock 在Windows中 我的问题是使用这两个函数给出了完全不同的结果 事实上 与实践中的实际速度相比 事件给出的结果似乎是巨大的 我实际上需要这
  • 如何从尖点库矩阵格式获取原始指针

    我需要从尖点库矩阵格式获取原始指针 例如 cusp coo matrix
  • CUDA cutil.h 在哪里?

    有谁知道包含 cutil h 的 SDK 工具包在哪里 我尝试了 CUDA toolkits3 2 和 toolkits5 0 我知道这个版本已经不支持 cutil h 我还注意到一些提到的如何在 Linux 中包含 cutil h htt
  • 将 cuda 数组传递给 Thrust::inclusive_scan

    我可以对 cpu 上的数组使用包容性扫描 但是否可以对 gpu 上的数组执行此操作 注释是我知道有效但我不需要的方式 或者 是否有其他简单的方法可以对设备内存中的数组执行包含扫描 Code include

随机推荐

  • 如何在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