Cuda 5.0 链接问题

2023-12-05

我只是想使用 cuda 5.0 预览版构建我的一个旧项目。 链接时出现错误,告诉我找不到某些 cuda 函数。例如:

undefined reference to 'cudaMalloc'.

我的链接命令包括以下 cuda 选项:

-L/usr/local/cuda/lib64 -L/home/myhome/NVIDIA_CUDA_Samples/C/lib -L/home/myhome/NVIDIA_CUDA_Samples/C/common/lib/linux -lcudart

ls -lah /usr/local/cuda/lib64/给了我 8 个 cuda 库,包括 libcudart.so.5.0.7,其符号链接仅使用 .so 文件结尾。

ls /home/myhome/NVIDIA_CUDA_Samples/C/lib/给我一个空目录,这有点奇怪?

ls /home/myhome/NVIDIA_CUDA_Samples/C/common/lib/linux/给我两个目录:i686 和 x86_64 都只包含 libGLEW.a

我不知道该以哪种方式寻找解决方案。任何帮助表示赞赏!

EDIT:

这是我的完整链接命令(TARGET_APPLICATION 是我的二进制文件,x86_64/Objectfiles.o 代表所有(23)个对象文件,包括使用 nvcc 编译的对象文件):

/home/myhome/nullmpi-0.7/bin/mpicxx -CC=g++ -I. -I/home/myhome/nullmpi-0.7/src -I/usr/lib/openmpi/include -L/usr/local/cuda/lib64 -L/home/myhome/NVIDIA_CUDA_Samples/C/lib -L/home/myhome/NVIDIA_CUDA_Samples/C/common/lib/linux -lcudart -o TARGET_APPLICATION x86_64/Objectfiles.o /usr/lib/liblapack.so /usr/lib/libblas.so /home/myhome/nullmpi-0.7/lib/libnullpmpi.a -lm

I use nullmpi用于编译和链接(项目使用 MPI 和 CUDA),其内部使用g++可以看出-CC=g++,我想把这些东西排除在外。

我的 cuda 目标文件的编译命令:

/usr/local/cuda/bin/nvcc -c -arch=sm_21 -L/home/myhome/NVIDIA_CUDA_Samples/C/lib -O3 kernelwrapper.cu -o x86_64/kernelwrapper.RELEASE.2.o

echo $LD_LIBRARY_PATH结果是:

/usr/local/cuda/lib64:/usr/local/cuda/lib:

echo $PATH结果是:

其他选项:/usr/local/cuda/bin:/home/myhome/nullmpi-0.7/bin

我正在构建 64 位。为了完整起见,我在 Ubuntu 12.04 上构建。 (64 位)。构建 CUDA 示例效果很好。

SOLUTION(感谢 talonmies 向我指出):

这是正确的链接命令:

/home/myhome/nullmpi-0.7/bin/mpicxx -CC=g++ -I. -I/home/myhome/nullmpi-0.7/src -I/usr/lib/openmpi/include -L/usr/local/cuda/lib64 -L/home/myhome/NVIDIA_CUDA_Samples/C/lib -L/home/myhome/NVIDIA_CUDA_Samples/C/common/lib/linux -o TARGET_APPLICATION x86_64/Objectfiles.o /usr/lib/liblapack.so /usr/lib/libblas.so /home/myhome/nullmpi-0.7/lib/libnullpmpi.a -lcudart -lm


您的链接语句的顺序不正确。它应该更像是这样的:

/home/myhome/nullmpi-0.7/bin/mpicxx -CC=g++ -I. -I/home/myhome/nullmpi-0.7/src \
    -I/usr/lib/openmpi/include -L/usr/local/cuda/lib64  \
    -L/home/myhome/NVIDIA_CUDA_Samples/C/lib \ 
    -L/home/myhome/NVIDIA_CUDA_Samples/C/common/lib/linux \ 
    -o TARGET_APPLICATION x86_64/Objectfiles.o \
     /home/myhome/nullmpi-0.7/lib/libnullpmpi.a -llapack -lblas -lm -lcudart

问题的根源是你指定了CUDA运行时库before包含对其依赖项的目标文件。链接器简单地丢弃libcudart.so从链接中删除,因为在处理它时不存在对其的依赖性。 POSIX 风格编译语句中的黄金法则:链接语句从左到右解析;因此首先包含外部依赖项的对象,然后是满足这些依赖项的库。

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

Cuda 5.0 链接问题 的相关文章

  • 使用内置显卡,没有NVIDIA显卡,可以使用CUDA和Caffe库吗?

    使用内置显卡 没有 NVIDIA 显卡 可以使用 CUDA 和 Caffe 库吗 我的操作系统是 ubuntu 15 CPU为 Intel i5 4670 3 40GHz 4核 内存为12 0GB 我想开始学习深度学习 CUDA 适用于 N
  • libstdc++.so.6 与 cuda 相关的链接器问题

    今天我在链接我编译的 cuda 内容时遇到了问题 我有一个最新的 debian 测试 w 2 6 32 3 amd64 我整天都在写我的代码 不时编译 没有问题 但在进行了较小的代码更改后 我收到以下错误 gcc o pa CUDA o h
  • iOS - 架构 i386 的 3 个重复符号

    我在理解链接器命令错误时遇到问题 我收到以下信息 duplicate symbol OBJC IVAR XYZAddToDoItemViewController toDoItem in Users Library Developer Xco
  • cudaMemcpyToSymbol 的问题

    我正在尝试复制到恒定内存 但我不能 因为我对 cudaMemcpyToSymbol 函数的用法有误解 我正在努力追随this http developer download nvidia com compute cuda 4 1 rel t
  • 使用 QuasirandomGenerator (对于傻瓜来说)

    我是 CUDA 的新手 我正在努力在内核中生成随机数 我知道有不同的实现 而且 在 SDK 4 1 中有一个 Niederreiter 拟随机序列生成器的示例 我不知道从哪里开始 我有点悲伤 感觉自己像个傻瓜 有人可以制作一个使用 Nied
  • cuda 共享内存 - 结果不一致

    我正在尝试并行缩减以对 CUDA 中的数组求和 目前我传递一个数组来存储每个块中元素的总和 这是我的代码 include
  • MPI+CUDA 与纯 MPI 相比有何优势?

    加速应用程序的常用方法是使用 MPI 或更高级别的库 例如在幕后使用 MPI 的 PETSc 并行化应用程序 然而 现在每个人似乎都对使用 CUDA 来并行化他们的应用程序或使用 MPI 和 CUDA 的混合来解决更雄心勃勃 更大的问题感兴
  • 如何在 Visual Studio 2010 中设置 CUDA 编译器标志?

    经过坚持不懈的得到error identifier atomicAdd is undefined 我找到了编译的解决方案 arch sm 20旗帜 但是如何在 VS 2010 中传递这个编译器标志呢 我已经尝试过如下Project gt P
  • Nvcc 的版本与 CUDA 不同

    我安装了 cuda 7 但是当我点击 nvcc version 时 它打印出 6 5 我想在 GTX 960 卡上安装 Theano 库 但它需要 nvcc 7 0 我尝试重新安装cuda 但它没有更新nvcc 当我运行 apt get i
  • 如何在 CUDA 中执行多个矩阵乘法?

    我有一个方阵数组int M 10 以便M i 定位第一个元素i th 矩阵 我想将所有矩阵相乘M i 通过另一个矩阵N 这样我就收到了方阵数组int P 10 作为输出 我看到有不同的可能性 分配不同元素的计算M i 到不同的线程 例如 我
  • Apple Mach-O 链接器警告“未找到选项目录...”

    我只是想摆脱像这样弹出的警告 ld warning directory not found for option F Users m Desktop FacebookSDK ld warning directory not found fo
  • 解决源自 .lib 文件的“本地定义的符号”和“未解析的外部符号”

    我正在尝试在 Windows 7 64 位上的 Visual C 2010 上使用开源库 GDCM 编译我的项目 我已在我的项目中包含了所需的 lib 文件 gdcmDSED lib 和 gdcmMSFF lib 但是 编译器抱怨超过 10
  • 使用 CUDA 进行逐元素向量乘法

    我已经在 CUDA 中构建了一个基本内核来执行逐元素两个复向量的向量 向量乘法 内核代码插入如下 multiplyElementwise 它工作正常 但由于我注意到其他看似简单的操作 如缩放向量 在 CUBLAS 或 CULA 等库中进行了
  • cudaMemcpy() 与 cudaMemcpyFromSymbol()

    我试图找出原因cudaMemcpyFromSymbol 存在 似乎 symbol func 可以做的所有事情 nonSymbol cmd 也可以做 symbol func 似乎可以轻松移动数组或索引的一部分 但这也可以使用 nonSymbo
  • 如何使用 CUDA/Thrust 对两个数组/向量根据其中一个数组中的值进行排序

    这是一个关于编程的概念问题 总而言之 我有两个数组 向量 我需要对一个数组 向量进行排序 并将更改传播到另一个数组 向量中 这样 如果我对 arrayOne 进行排序 则对于排序中的每个交换 arrayTwo 也会发生同样的情况 现在 我知
  • C++ 私有静态成员变量

    此 C 代码在编译时产生链接器错误 A h class A public static void f private static std vector
  • 无法在内存位置找到异常源:cudaError_enum

    我正在尝试确定 Microsoft C 异常的来源 test fft exe 中 0x770ab9bc 处的第一次机会异常 Microsoft C 异常 内存位置 0x016cf234 处的 cudaError enum 我的构建环境是 I
  • Xcode 10 Beta 5 — clang:错误:链接器命令失败,退出代码为 1

    有人可以帮我吗 我的项目一切正常 但更新到 Xcode10 Beta5 后 尝试在 iPhone 上运行该应用程序时出现此错误 然而模拟器可以工作 请帮助我 我已经对这个问题进行了网络搜索并发现this https stackoverflo
  • 无法链接 Boost 正则表达式

    我目前正在尝试编译一个KIT 的收缩层次实现 http algo2 iti kit edu english routeplanning php这需要 Boost Regex 提供的 Makefile 已经确保 并且我还手动仔细检查了这一点
  • CUDA 中指令重放的其他原因

    这是我从 nvprof CUDA 5 5 获得的输出 Invocations Metric Name Metric Description Min Max Avg Device Tesla K40c 0 Kernel MyKernel do

随机推荐

  • 如何使用 Open XML SDK 获取 SdtBlock 元素中的形状列表?

    如何使用 Open XML SDK 获取广告块元素中的形状 文本框 列表 Regards 为了抓取一个图中的所有形状WordProcessingDocument您可以使用 linq 遍历 body 的所有后代 using Wordproce
  • 将 Java 字符串传递给 Javascript

    我正在尝试通过使用 JSON 格式的字符串初始化 Javascript 变量来加载数据表 如果我声明
  • 自动完成文本框控件

    我想要一个文本框控件 它可以使用 C 2008 和 LINQ 在 Windows 应用程序中建议和附加数据库中的值 我用组合框来做到这一点 但我不能用文本框来做到这一点 我该怎么做 这可能不是最好的方法 但应该有效 this textBox
  • Android GSON反序列化删除空数组

    我正在使用 GSON 和 Retrofit 我想禁用空数组字段反序列化 DTO public class Entity implements Serializable SerializedName body Expose private B
  • QT QItemSelectionModel 忽略列?

    我试图将树的选择限制为特定列 我大量使用委托来创建自定义的每项每列行为 编辑器等 我希望我可以通过阻止事件或类似的事情从委托中以某种方式完成此操作 问题是 我认为我必须创建一个完全自定义的解决方案来模仿扩展选择 然而 经过大量搜索和很少的示
  • 如何找到列末尾的最后一个单元格的值比 Google 表格中的其他列短?

    我试图弄清楚如何将值添加到 Google 表格中特定列的最后一行 并非电子表格 表格中的所有列都具有相同的长度 因此我不能简单地查找最后一行并添加到列中 我需要找到列中的下一个空单元格并在其中添加新值 浏览文档我认为涉及getRange a
  • GPX 文件无法加载 iOS Xcode

    我正在尝试使用 gpx 文件来模拟位置 该文件在 Xcode 中不起作用 也不显示任何错误 文件大小为 1 1 MB 具有从起始点 A 到起始点 B 的跟踪数据 这会引起任何问题吗 有什么建议吗 Ref 将 GPX 文件添加到 Xcode
  • 在滚动上绘制弯曲(响应式)SVG 路径

    在阅读了所有关于使用 strokeDashArray 技巧对 SVG 进行动画处理的讨论后 我终于找到了一些代码来将此功能连接到用户在屏幕上的滚动位置 电缆代码 blog 这个想法很棒 但我有一条波浪形的 弯曲的路径 实际上在某一点上循环
  • 为什么 Java 的 % 运算符对于负股息给出的结果与我的计算器不同?

    为什么在计算器上 1 mod 26 25 但是在 C 或 Java 中 1 26 1 我需要一个像计算器一样解决这个问题的程序 两者有区别吗 两个答案 25 和 1 都是有效的 只是不同的系统有不同的约定 我看到最常见的 数学 是 quot
  • 如何在NamedQuery中编写NamedQuery半正弦公式?

    我想将半正矢公式的查询作为 NamedQuery 运行 但我不知道如何纠正它 set orig lat 37 334542 set orig lon 121 890821 set dist 10 select 3956 2 ASIN SQR
  • ASP.NET Core razor 页面应用程序中左侧的导航菜单带有关闭和打开按钮

    我正在为我的应用程序使用剃刀页面 我尝试将导航菜单从顶部移动到左侧 我按照此链接中提到的步骤操作如何在引导程序中创建保留的侧边栏菜单 因为我希望我的菜单与该链接中显示的完全一样 但我无法达到结果 链接中提到了有关 simple sideba
  • Objective-c 是否遵循操作顺序(Bedmas)?

    我只是想知道 因为我构建的应用程序做了一个相当长的方程 并且结果与在 Excel 电子表格上完成的结果不同 我在 Excel 电子表格上得到了方程 输入数字越大 差异越大 这是我在 xcode 中输入的等式 360 num1 num3 1
  • svg animateMotion 偏离路径

    I have this svg 我的目标是让盒子沿着路径移动 同时保持旋转 为了实现这一点 我添加了一个
  • PHP XML 实体编码问题

    经过几个小时的研究 我无法找到这个问题的答案 我正在尝试将 XML 字符串发送给第三方 因此我需要对一些字符进行编码 在本例中是单引号 也许还有双引号 我使用 PHP XML Dom 来实现此目的 但 saveXML 函数似乎总是对引号进行
  • 如何找到图像像素值的众数(统计数据)?

    我正在使用 opencv 并且可以通过下面的代码获取图像的像素 一个 3 维元组 但是 我不太确定如何计算图像中像素值的模式 import cv2 import numpy as np import matplotlib pyplot as
  • White Line 不断阻止 Android Studio 中的代码

    已经有一段时间了 我是 Android Studio 的新手 这条非常白的线或其他任何东西一直挡住我的视线 因为代码的可见性不断降低 迫使我继续重建我的项目 但什么也没有发生 请建议我一种可以帮助我的方法或原因 None
  • ASP.NET MVC网站从磁盘读取文件问题

    我正在阅读一个文本文件 其中包含在我正在处理的 MVC 网站中使用 C 的 SQL 插入语句 调试我正在使用的函数时工作正常并且插入发生 但是 一旦我发布该网站并在本地计算机上运行它 甚至将 IIS 设置为使用 asp net 4 0 它似
  • Shopify 中的内容安全违规

    我正在使用 Shopify 并向不同的服务器发出 ajax get 请求 我刚刚实现了它 所以我正在控制台上测试它 请求正在通过 我得到了我想要的响应 但我也收到以下消息 仅限报告 拒绝连接到 https myurl com ApiClie
  • s3- boto- 按上传时间列出存储桶内的文件

    我需要每小时从 s3 服务器下载 100 个最新文件 bucketList bucket list PREFIX 上面的代码创建了文件列表 但它不依赖于文件的上传时间 因为它是按文件名列出的 我对文件名无能为力 它是随机给出的 Thanks
  • Cuda 5.0 链接问题

    我只是想使用 cuda 5 0 预览版构建我的一个旧项目 链接时出现错误 告诉我找不到某些 cuda 函数 例如 undefined reference to cudaMalloc 我的链接命令包括以下 cuda 选项 L usr loca