I know the method of calling the .cu files from .c files. But now I want to call the .cu files from a C header file. Is it possible to do it ? If so how should I make the settings of my project ? please help.....

解决方案

Here's a worked example:

file1.h:

int hello();

file2.h:

#include

#include "file1.h"

int myfunc(){

hello();

return 0;

}

file1.cu:

#include

#include "file1.h"

__global__ void mykernel(){

printf("Hello from mykernel\n");

}

int hello(){

mykernel<<<1,1>>>();

cudaDeviceSynchronize();

return 0;

}

file2.cpp:

#include "file2.h"

int main(){

myfunc();

return 0;

}

build and test:

$ nvcc -arch=sm_20 -c file1.cu

$ g++ -c file2.cpp

$ g++ -o test file1.o file2.o -L/usr/local/cuda/lib64 -lcudart

$ ./test

Hello from mykernel

$

Assuming you are intending to include your file2.h into a cpp file, you cannot call a cuda kernel directly from that header and use it in a cpp file. You must put a wrapper around the cuda kernel, and call the wrapper, as I have indicated. This is because your cpp file will get compiled by the host compiler, which doesn't know anything about cuda syntax (e.g. mykernel<<<1,1>>>();)

Also, as indicated in the comments, it may make more sense to reserve the header file file2.h just for needed prototypes, and put the actual function definition of myfunc into a cpp file somewhere.

cuda加速的头文件_如何从C ++头文件调用CUDA文件?相关推荐

  1. qt 快速按行读取文件_这是知识点之Linux下分割文件并保留文件头

    点击上方"开发者的花花世界",选择"设为星标"技术干货不定时送达! 这是一个知识点 方便快捷的给结构化数据文件分割大小并保留文件的表头,几十个G的结构化文件不仅 ...

  2. linux怎样自动检查link文件_怎样理解和识别 Linux 中的文件类型 | Linux 中国

    众所周知,在 Linux 中一切皆为文件,包括硬盘和显卡等.在 Linux 中导航时,大部分的文件都是普通文件和目录文件.但是也有其他的类型,对应于 5 类不同的作用.因此,理解 Linux 中的文件 ...

  3. 如何恢复录音删除的录音文件_硬盘分区数据误删除如何恢复?文件删除不用急...

    硬盘分区数据误删除如何恢复?相信很多人在安装系统或者重装电脑时,往往也都会对电脑原有数据的卷大小进行调整,以此来满足我们日常使用的需求.然而对于一些新手来说,在操作时也都容易不小心把整个硬盘的分区给删 ...

  4. .f90文件批量转为dll文件_办公必备神器DropIt V8.5.1Portable文件整理分类工具

    文件混乱用这1款神器就够了 目录 [url=]DropIt 的使用思路[/url] [url=]快捷调用 DropIt 的两种方式[/url] [url=]配合 IrfanView 对图片进行操作[/ ...

  5. c++读取utf8文件_经常在日常工作中处理统一码文件(or其他编码)?这篇必读

    全文共2717字,预计学习时长5分钟 对于那些经常在日常工作中处理统一码文件(也适用于其他编码)的人来说,这篇文章是必读的.对于自然语言处理的从业者,处理统一码文件是一场噩梦,尤其是使用Windows ...

  6. 生成drl文件_我如何通过编程方式生成.drl文件。任何示例对我都将有所帮助

    我搜索了很多站点,但找不到有关.drl文件生成的任何特定相关示例. .drl文件生成方面的文档也不值得. 解决方案 //- ---- package部分------- PackageDescr pkg ...

  7. linux加密文件_如何在Linux上使用Gocryptfs加密文件

    linux加密文件 Gocryptfs是安装在用户空间(FUSE)中的文件系统文件级加密程序. FUSE安装意味着将加密文件存储在使用FUSE接口安装的单个目录树中,就像USB密钥一样. 这样一来,任 ...

  8. c++ 写入文件_利用Python把数据存储在csv文件中

    鼠年第一天开盘,很多股票跌停,太闹心了!今天再找点开心的事情做吧.人生最幸福的事情莫过于看到自己写的程序调试通过了! 前面我们介绍了,如何用Python做一个串口通讯的上位机.用这个上位机我们可以从E ...

  9. jupyter调用py文件_解决Jupyter notebook中.py与.ipynb文件的import问题

    在jupyter notebook中,因为其解析文件的方式是基于json的,所以其默认保存的文件格式不是.py而是.ipynb.而.ipynb文件并不能简单的import进.py或者.ipynb文件中 ...

  10. 群晖自动删除重复文件_在群晖中批量删除重复文件(零基础手把手图文)

    在群晖中批量删除重复文件(零基础手把手图文) 2020-03-26 14:51:01 24点赞 229收藏 39评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击 ...

最新文章

  1. 高端华为笔记本敲代码就是爽!!包邮送!
  2. Ie html button消失,input 按钮在IE下显现不一致的兼容问题
  3. NMAP扫描技巧:TCP空闲扫描
  4. 实习生招聘 | TEG 2019年暑期实习生招聘正式启动
  5. 20200301:快乐数(leetcode202)
  6. IOS6.0与IOS7.0屏幕适配
  7. python调用matlab绘图_python初步调用MATLAB及网址存档
  8. Python之面向对象 私有属性和私有方法
  9. static用法报错解决:cannot declare member function to have static linkage [-fpermissive]
  10. php批量修改怎么实现,PinPHP购物分享系统2.2后台批量采集修改实现方法
  11. 对大学的规划 计算机专业,对计算机专业的认识及你大学四年的规划与设想
  12. 知识图谱基础代码构建(医疗向)
  13. 利用 yEd 软件做元数据管理
  14. linux系统bcast,关于linux的Bcast的疑问.请大家帮忙看看,谢谢啦
  15. Ubuntu18.04卸载并重新安装Ubuntu及
  16. 爬虫出现UnicodeEncodeError: ‘latin-1‘ codec can‘t encode character *** in position 8328: Body***问题
  17. 小白如何利用短视频做引流推广
  18. 声网高纯:领域和方向要聚焦,用最专业的方法做最专业的事丨人物专访
  19. vue 生命周期(详解)
  20. 影响搜索引擎排名因素包括几个

热门文章

  1. C语言fscanf函数了解
  2. C/C++中字符串与数字相互转换
  3. 好云推荐官丨飞天加速之星怎样选择云服务器ECS?
  4. 阿里云成为首个通过“虚拟化云平台性能测试(大规模)”的云厂商
  5. 【全观测系列】Elasticsearch应用性能监控实践
  6. 揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿
  7. 社区首款 OAM 可视化平台发布!
  8. 青年PM倪超:想让程序员多一点点幸福感
  9. stack vs heap:栈区分配内存快还是堆区分配内存快 ?
  10. 12306 的技术扒光在你面前,100 万人如何抢 1 万张票