cuda加速的头文件_如何从C ++头文件调用CUDA文件?
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文件?相关推荐
- qt 快速按行读取文件_这是知识点之Linux下分割文件并保留文件头
点击上方"开发者的花花世界",选择"设为星标"技术干货不定时送达! 这是一个知识点 方便快捷的给结构化数据文件分割大小并保留文件的表头,几十个G的结构化文件不仅 ...
- linux怎样自动检查link文件_怎样理解和识别 Linux 中的文件类型 | Linux 中国
众所周知,在 Linux 中一切皆为文件,包括硬盘和显卡等.在 Linux 中导航时,大部分的文件都是普通文件和目录文件.但是也有其他的类型,对应于 5 类不同的作用.因此,理解 Linux 中的文件 ...
- 如何恢复录音删除的录音文件_硬盘分区数据误删除如何恢复?文件删除不用急...
硬盘分区数据误删除如何恢复?相信很多人在安装系统或者重装电脑时,往往也都会对电脑原有数据的卷大小进行调整,以此来满足我们日常使用的需求.然而对于一些新手来说,在操作时也都容易不小心把整个硬盘的分区给删 ...
- .f90文件批量转为dll文件_办公必备神器DropIt V8.5.1Portable文件整理分类工具
文件混乱用这1款神器就够了 目录 [url=]DropIt 的使用思路[/url] [url=]快捷调用 DropIt 的两种方式[/url] [url=]配合 IrfanView 对图片进行操作[/ ...
- c++读取utf8文件_经常在日常工作中处理统一码文件(or其他编码)?这篇必读
全文共2717字,预计学习时长5分钟 对于那些经常在日常工作中处理统一码文件(也适用于其他编码)的人来说,这篇文章是必读的.对于自然语言处理的从业者,处理统一码文件是一场噩梦,尤其是使用Windows ...
- 生成drl文件_我如何通过编程方式生成.drl文件。任何示例对我都将有所帮助
我搜索了很多站点,但找不到有关.drl文件生成的任何特定相关示例. .drl文件生成方面的文档也不值得. 解决方案 //- ---- package部分------- PackageDescr pkg ...
- linux加密文件_如何在Linux上使用Gocryptfs加密文件
linux加密文件 Gocryptfs是安装在用户空间(FUSE)中的文件系统文件级加密程序. FUSE安装意味着将加密文件存储在使用FUSE接口安装的单个目录树中,就像USB密钥一样. 这样一来,任 ...
- c++ 写入文件_利用Python把数据存储在csv文件中
鼠年第一天开盘,很多股票跌停,太闹心了!今天再找点开心的事情做吧.人生最幸福的事情莫过于看到自己写的程序调试通过了! 前面我们介绍了,如何用Python做一个串口通讯的上位机.用这个上位机我们可以从E ...
- jupyter调用py文件_解决Jupyter notebook中.py与.ipynb文件的import问题
在jupyter notebook中,因为其解析文件的方式是基于json的,所以其默认保存的文件格式不是.py而是.ipynb.而.ipynb文件并不能简单的import进.py或者.ipynb文件中 ...
- 群晖自动删除重复文件_在群晖中批量删除重复文件(零基础手把手图文)
在群晖中批量删除重复文件(零基础手把手图文) 2020-03-26 14:51:01 24点赞 229收藏 39评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击 ...
最新文章
- 高端华为笔记本敲代码就是爽!!包邮送!
- Ie html button消失,input 按钮在IE下显现不一致的兼容问题
- NMAP扫描技巧:TCP空闲扫描
- 实习生招聘 | TEG 2019年暑期实习生招聘正式启动
- 20200301:快乐数(leetcode202)
- IOS6.0与IOS7.0屏幕适配
- python调用matlab绘图_python初步调用MATLAB及网址存档
- Python之面向对象 私有属性和私有方法
- static用法报错解决:cannot declare member function to have static linkage [-fpermissive]
- php批量修改怎么实现,PinPHP购物分享系统2.2后台批量采集修改实现方法
- 对大学的规划 计算机专业,对计算机专业的认识及你大学四年的规划与设想
- 知识图谱基础代码构建(医疗向)
- 利用 yEd 软件做元数据管理
- linux系统bcast,关于linux的Bcast的疑问.请大家帮忙看看,谢谢啦
- Ubuntu18.04卸载并重新安装Ubuntu及
- 爬虫出现UnicodeEncodeError: ‘latin-1‘ codec can‘t encode character *** in position 8328: Body***问题
- 小白如何利用短视频做引流推广
- 声网高纯:领域和方向要聚焦,用最专业的方法做最专业的事丨人物专访
- vue 生命周期(详解)
- 影响搜索引擎排名因素包括几个