将 CUDA 添加到 ROS 包

2023-12-02

我想在 ros 包中使用 cuda。有人给我一个简单的例子吗?

我尝试使用 cuda 函数构建一个静态库并将该库添加到我的包中,但总是出现链接错误:未定义的引用 cuda...

我已经构建了一个可执行文件而不是库并且它可以工作。

请帮忙!


我自己找到了解决方案:

CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.3)
PROJECT (beginner_tutorials)
FIND_PACKAGE(CUDA REQUIRED)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
)

SET(CUDA_NVCC_FLAGS "-arch=sm_13" CACHE STRING "nvcc flags" FORCE)
SET (CUDA_VERBOSE_BUILD ON CACHE BOOL "nvcc verbose" FORCE)
SET(LIB_TYPE STATIC) 
CUDA_ADD_LIBRARY(TestLib ${LIB_TYPE} src/helloWorld.cu)

catkin_package(
)
include_directories(
  ${catkin_INCLUDE_DIRS}
)

ADD_EXECUTABLE(beginner_tutorials_node src/main.cpp)
ADD_DEPENDENCIES(beginner_tutorials_node TestLib)
TARGET_LINK_LIBRARIES(beginner_tutorials_node
   ${catkin_LIBRARIES}
   ${PCL_LIBRARIES}
   TestLib
)

主要.cpp:

int testmain();

int main()
{
testmain();
return 0;
}

你好世界.cu:

#include <stdio.h>

#include <cuda.h>
#include <cuda_runtime.h>

const int N = 7;
const int blocksize = 7;

__global__
void hello(char *a, int *b)
{
  a[threadIdx.x] += b[threadIdx.x];
}

int testmain()
{
  char a[N] = "Hello ";
  int b[N] = {15, 10, 6, 0, -11, 1, 0};

  char *ad;
  int *bd;
  const int csize = N*sizeof(char);
  const int isize = N*sizeof(int);

  printf("%s", a);

  cudaMalloc( (void**)&ad, csize );
  cudaMalloc( (void**)&bd, isize );
  cudaMemcpy( ad, a, csize, cudaMemcpyHostToDevice );
  cudaMemcpy( bd, b, isize, cudaMemcpyHostToDevice );

  dim3 dimBlock( blocksize, 1 );
  dim3 dimGrid( 1, 1 );
  hello<<<dimGrid, dimBlock>>>(ad, bd);
  cudaMemcpy( a, ad, csize, cudaMemcpyDeviceToHost );
  cudaFree( ad );

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

将 CUDA 添加到 ROS 包 的相关文章

  • 更改文本框中文本的前景色和背景色

    我正在使用 VB NET 制作 C 代码编辑器应用程序 我想在用户键入关键字时更改关键字的颜色 另外 我正在寻找一种方法来突出显示某些代码行 有没有办法更改文本框或富文本框中一段文本的前景色和背景色 我真的不知道你想做什么 所以这里有一些选
  • 不允许从函数返回函数。我怎么能?

    8 3 5 8 Functions dcl fct says 函数的返回类型不得为 类型数组或function 尽管它们可能具有指针类型的返回类型或对此类事物的引用 为什么规则这么明确 是否有某种语法甚至允许返回函数而不是函数指针 我是否误
  • 为什么 PCRE 正则表达式比 C++11 正则表达式快得多

    一些示例代码 这是使用 cregex iterator 的 c 11 部分 std chrono steady clock time point begin0 std chrono steady clock now regex re
  • WritePrivateProfileString 未在末尾添加属性

    我正在使用以下命令在 ini 文件中写入一些属性WritePrivateProfileString函数并且一切正常 但是当我添加多行文本时 出现了问题 这是代码和输出 WritePrivateProfileString T General
  • 何时在定义上下文或实例化点中发生非依赖名称的重载解析?

    3 4 基本 lookup p1 重载解析 13 3 在名称查找成功后发生 void g long void g int int template
  • 了解子表单何时关闭

    我有一个带有按钮的 Form1 当您单击按钮时 将执行以下代码块 Form2 frm new Form2 frm Name Form musteriNumarasi ToString frm Text Kullan c musteriNum
  • 在 Eclipse 4.4.2 中使用 C 代码中的构建变量

    我有一个之前使用 Eclipse 3 5 2 创建的项目 在其中 我能够在项目属性中设置构建变量 在这种情况下 假设我设置了SW VERSION是 4403 现在这应该是一个十六进制数字 所以在构建设置中 我添加了一个符号 VERSION
  • Mono 和 WebRequest 速度 - 测试

    在 mono 4 6 2 linux 中 我注意到 wget 下载文件的速度与webclient DownloadString 所以我做了一个小测试来调查 为什么 wget 明显比 C 快 根据我自己的实验 使用 wget 下载 手动读取文
  • 单击按钮本地化应用程序

    我在我的项目 mainMaster 页面中找到了 imageButtons
  • 字符串中unicode字符的正则表达式

    我正在使用 C 进行一些 OCR 工作 并提取了我需要使用的文本 现在我需要使用正则表达式解析一行 string checkNum string routingNum string accountNum Regex regEx new Re
  • 如何将整个流读入 std::string ?

    我正在尝试将整个流 多行 读入字符串中 我正在使用这段代码 它有效 但它冒犯了我的风格感 当然有更简单的方法吗 也许使用字符串流 void Obj loadFromStream std istream stream std string s
  • C 中经过的时间

    include
  • WinForms TreeView - 如何手动“突出显示”节点(就像被单击一样)

    我需要知道如何让以编程方式选择的节点以图形方式处于 选定 状态 就像用户单击它一样 SelectedNode 仅使这一节点在内部被选中 非常感谢 它没有显示为突出显示的原因是由于树视图没有焦点 这是我的测试表单上的按钮单击事件 TreeVi
  • 如何检测机器是否加入域?

    如何检测计算机是否已加入 Active Directory 域 相对于工作组模式 如果没有必要的话 不要用 pinvoke 来愚弄 参考System DirectoryServices 然后调用 System DirectoryServic
  • 模板是如何实例化的?

    这是一个练习 来自C 入门第五版 练习 16 27 对于每个带标签的语句 解释什么 如果有 实例化发生 如果实例化了模板 请解释原因 如果 不 请解释为什么不 第677页 template
  • 在C中更改函数内的数组

    我正在学习 C 并且很困惑为什么在 main 中创建的数组不会在函数内部更改 我假设传递的数组是一个指针 并且更改指针应该更改数组 对吧 有人可以解释这种情况下发生了什么吗 谢谢你的帮助 int main int i length 10 i
  • MSAL.Net 没有帐户或登录提示传递到 AcquireTokenSilent 调用

    我见过很多相同或类似的问题 并尝试了他们所有的答案 如果有的话 但这些都不适合我 我在用着这个例子 https github com Azure Samples ms identity javascript angular spa aspn
  • 在 asp.net MVC 控制器中调用异步外部 Web 服务

    在 Asp net MVC 控制器 GET 方法 中 我调用外部 Web 服务 用于 IP 地理定位 返回 IP 位置的 json 数据 如何使调用异步 以便堆栈可以在等待服务响应时继续 当 GEO IP 请求完成后 我希望能够更新数据库
  • 提高批量请求的野兽内存使用率

    我运行这个boost beast 客户端 异步 ssl http www boost org doc libs develop libs beast example http client async ssl http client asy
  • win32 内容已更改,但除非移动窗口,否则不会显示更新

    我的 win32 GUI 内容每秒都会更改 但除非手动移动窗口 否则不会显示更新 我尝试每秒弹出一个消息框来触发窗口刷新 它成功了 因此 这证明我的内容确实发生了变化 但窗口没有更新 我希望刷新窗口而不是每次都弹出消息框 有没有这样的窗口功

随机推荐

  • 动态搜索 TreeSet 中的记录

    我正在使用 swing 和 awt 库用 Java 编写通讯录应用程序 该应用程序由一个 JList 组成 该 JList 使用 TreeSet 作为抽象列表模型 TreeSet 用于名为 Contact 的类 该类具有私有比较器类 可根据
  • Android - 如何压缩或缩小图像?

    ImageButton avatarButton ImageButton findViewById R id ImageButton Avatar avatarButton setImageResource R drawable avata
  • 无法删除 Apple WWDRC 证书

    最近苹果发布公告 据此 中间证书已于 2 月 14 日过期 必须手动下载 并应替换系统钥匙串中较旧的过期证书 I am unable to delete the existing certificate from the Keychain
  • Google 地理编码 - 获取地址和坐标

    这就是我所追求的 有人告诉我这是不可能的 但我还不会放弃 假设用户在我的位置搜索框中输入 伦敦 并单击 地理编码 我可以获得该位置的坐标 类似于此示例 http gmaps samples v3 googlecode com svn tru
  • LINQ to Entities 仅支持无参数构造函数和初始值设定项

    parcelas from docuRec in Dados DOCUREC where docuRec CODALUNO codAluno docuRec CODESCOLA codEscola configBoleto DtVencim
  • Google Places API 相关

    我正在尝试从我的本地主机计算机执行获取请求 并且我的应用程序将保留在本地主机上 以获取有关某个地点的一些信息 但是 由于 CORS Google Places API 和 或我的 Chrome 不允许我执行此请求 XMLHttpReques
  • 如何使用ajax jquery asp.net mvc访问和显示数据库中的数据

    我正在尝试从数据库中获取数据并使用 ajax 和 jquery 将其显示在页面中 我是这个平台的新手 所以任何人都可以帮助我 模型 public class EmployeeModel public int EmpId get set pu
  • 如何从代码中获取PCRE(与PHP捆绑在一起)的版本?

    有什么方法可以获取版本 和发布日期 PCRE从 PHP 代码与 PHP 捆绑并将其存储到变量中 我可以使用它找到它phpinfo 但找不到任何其他方法来直接从代码获取该值 过去几个小时我试图找到解决方案 但毫无希望 到目前为止 我可以在变量
  • 使用 C++/Boost 通过代理执行简单的 HTTP 请求?

    我是 Boost 的新手 我唯一通过使用库的代理进行冲浪的经验是使用 NET 这对于此目的来说非常方便 我现在尝试通过 HTTP 代理执行简单的 HTTP 请求 有没有直接使用 boost 的简洁方法 我的代理使用 NTLM 身份验证 不
  • 占位符在 IE10 中不起作用

    html div class div input div
  • 如何在flutter中使用带有url编码主体的http.post下载文件?

    我想构建一个网络应用程序来使用 http post 方法在 flutter 中下载 pdf 文件 我已经在互联网上搜索了它 但我仍然无法下载该文件 我已经在邮递员中尝试过使用原始 json 然后发送和下载 它可以工作 但不能在颤振中做到这一
  • ASP.NET Web API 仅在某些服务器上为 PUT 返回 404

    我已经编写了一个使用 ASP NET MVC Web API 的网站 一切都运行良好 直到我将其放在临时服务器上 该网站在我的本地计算机和开发网络服务器上运行良好 开发服务器和登台服务器都是 Windows Server 2008 R2 问
  • Caliburn.Micro:如何将 Conductor.Collection.AllActive 的特定项目绑定到 ContentControl

    我的目标是在 ShellView 的网格中显示 4 个不同的活动 ViewModel 问题是我无法弄清楚如何将 ContentControl 连接到 Conductor 项目中的特定项目 他的事怎么办 这是我正在尝试做的事情的简化版本 解决
  • 按值组的连续日期范围对行进行分组

    考虑一些表T 订购Col1 Col2 Date1 Date2 Col1 Col2 Date1 Date2 rate ABC 123 11 4 2014 11 5 2014 90 ABC 123 11 4 2014 11 6 2014 55
  • 用C++制作一个倒计时器

    我有一个控制台应用程序 旨在只在 Windows 上运行 它写在C 有什么办法可以等待60秒 and 显示剩余时间在屏幕上 然后继续代码流 我尝试了互联网上的不同解决方案 但没有一个有效 它们要么不起作用 要么无法正确显示时间 Please
  • Windows 7上Android Studio安装失败,找不到JDK

    我下载了 Android Studio 并尝试启动该程序 它在 Windows 7 64 位和 Java 1 7 上运行 在安装过程中 检测到我的 Java 1 7 安装的其余部分顺利进行 但是 当尝试从桌面图标启动应用程序时 没有任何反应
  • 使用 DotNetZip 从 zip 中提取特定文件夹

    我已经搜索了示例 但似乎找不到涉及提取某个文件夹的 DotNetZip 场景 我正在尝试从 zip 文件中提取一个名为 CSS 的文件夹 它是 zip 文件内的顶级文件夹 这是我到目前为止的代码 using ZipFile zip1 Zip
  • Swift 中如何知道哪个 SKSpriteNode 受到碰撞检测的影响?

    情况 我的 iOS 屏幕上有两艘或更多艘飞船 两者都有不同的属性 如名称 大小 生命值和得分 它们显示为SKSpriteNodes并且每个都添加了一个physicsBody 目前 这些额外的属性是扩展的变量SKSpriteNode clas
  • 在R中的时间间隔后中断readline()

    如何在经过一定时间后中断循环 我有一个从用户收集观察数据的功能 记录数据时 用户应该有一个预定义的时间限制 示例中为 30 秒 目前 如果用户输入晚于时间限制结束 该功能就会中断 record events lt function dura
  • 将 CUDA 添加到 ROS 包

    我想在 ros 包中使用 cuda 有人给我一个简单的例子吗 我尝试使用 cuda 函数构建一个静态库并将该库添加到我的包中 但总是出现链接错误 未定义的引用 cuda 我已经构建了一个可执行文件而不是库并且它可以工作 请帮忙 我自己找到了