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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里中间件开源组件:Sentinel 0.2.0正式发布

Sentinel 是阿里中间件团队开源的&#xff0c;面向分布式服务架构的轻量级流量控制组件&#xff0c;主要以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。 关联阅读&#xff1a;阿里巴巴宣布 Sentinel 开源&#xff0c;进…

IDEA的基本使用:让你的IDEA有飞一般的感觉 | CSDN 博文精选

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 琦彦责编 | 阿秃转自 &#xff5c; CSDN 博客1.设置maven在File->settings->搜索maven Mavan home directory--设置maven安装包的bin文件夹所在的位置 User settings file--设置setting文件所在的位置 Local repo…

c语言库函数手册pdf百度云,C语言库函数手册.pdf

C语言库函数手册C 语言库函数手册目录A. 分类函数 [函数库为 ctype.h] 1B. 数学函数 [函数库为 math.h、stdlib.h、string.h、float.h] 2C. 目录函数 [函数库为 dir.h、dos.h] 3D. 迕程函数 [函数库为 stdlib.h、process.h] 4E. 转换子程序 [函数库为 math.h、stdlib.h、ctype.…

Apache JMeter 测试webservice接口

文章目录Apache JMeter 测试webservice接口流程一、设置基础组件1. 添加一个线程组2. HTTP信息头管理器3. HTTP请求4. 添加一个察看结果树5. 添加一个聚合报告二、配置基础组件2.1. 找到SoapUI 请求头信息2.2. 设置http头管理器2.3. 接口信息同步三、发送测试3.1. 发送请求3.2.…

函数计算搭建 Serverless Web 应用(三)- 三分钟搭建 Web 应用

简介 阿里云 函数计算(Function Compute) 是事件驱动的全托管计算服务&#xff0c;是阿里云的 Serverless 计算平台。基于函数计算构建应用&#xff0c;您无需管理服务器等基础设施&#xff0c;而是专注于应用逻辑的开发&#xff0c;大幅提高开发效率。 函数计算搭建 Serverl…

什么叫做罗列式_极简罗列法怎么写作文

极简罗列法怎么写作文以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;1. 作文罗列式怎么开头列举式案例一&#xff1a;“争渡&#xff0c;争渡&#xff0c;惊起一滩鸥鹭。”李清照争的是一种…

备战双 11!蚂蚁金服万级规模 K8s 集群管理系统如何设计?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 沧漠责编 | 阿秃导读&#xff1a;Kubernetes 的出现使得广大开发同学也能运维复杂的分布式系统&#xff0c;它大幅降低了容器化应用部署的门槛&#xff0c;但运维和管理一个生产级的高可用 Kubernetes 集群仍十分困难。本文…

移动互联网+智能运营体系搭建=你家有金矿啊!

每个企业都有许多的数据&#xff0c;但能否将数据转化成商业价值&#xff0c;是企业非常关心的问题。阿里巴巴曾自嘲是一家坐在数据的金矿上啃着馒头的企业&#xff0c;前几年集团积累了很多的数据&#xff0c;但这些数据并没有真正应用起来&#xff0c;受限于几个原因&#xf…

厦门理工C语言实验报告8,厦门理工c语言数据结构实验

《厦门理工c语言数据结构实验》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《厦门理工c语言数据结构实验(15页珍藏版)》请在人人文库网上搜索。1、数据结构实验报告 实验序号&#xff1a;6 实验项目名称&#xff1a;树和二叉树的操作 学 号 姓 名专业、班实验地点指…

Apache JMeter 测试webservice接口 中文乱码

文章目录1. http请求编码设置utf-82. jmeter.properties修改默认编码1. http请求编码设置utf-8 2. jmeter.properties修改默认编码 找到apache-jmeter-5.2.1\bin\jmeter.properties文件 在jmeter.properties文件中找到 #sampleresult.default.encodingISO-8859-1 替换为 samp…

elementui 按钮 表单_element UI实现表格中添加开关控制按钮

我使用的是element ui V1.4.3如下图是我要实现的效果&#xff1a;点击显示 Dialog:data"gridData"borderheight"300">on-text "是"off-text "否"on-color"#5B7BFA"off-color"#dadde5"v-model"scope.row.…

【实操手册】如何把一场直播录制下来?

许多用户使用直播服务时&#xff0c;需要把正在直播的视频录制下来进行存储或方便后续的回看。为了满足用户需求&#xff0c;阿里云视频直播服务提供了直播录制功能&#xff0c;本文将对这两种形式的录制方法进行简单介绍。 一、按场景录制 针对不同的场景进行录制配置 • 按…

搞不清边缘计算几款产品差异?动动小手点这里!

最近阿里云新上了一款产品&#xff0c;边缘节点服务&#xff08;简称ENS&#xff09;&#xff0c;随着产品运营推广不断深入&#xff0c;偶尔会遇到用户关于ENS产品与其他几款产品的疑惑&#xff0c;典型问题比如&#xff1a; ENS是部署在CDN位置&#xff0c;用户是不是可以直…

Apache JMeter 压测webservice接口

文章目录一、压测设置和参数说明二、服务台控制监控三、查看结果树四、查看聚合报告一、压测设置和参数说明 压测设置说明线程数并发数量&#xff0c;能跑多少量。具体说是一次存在多少用户同时访问。Rame-Up Period(in seconds)表示JMeter每隔多少秒发动并发。理解成准备时长…

c语言switch caseh(op),switch语句求教

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼c:\program files\visual c\text4.cpp(7) : error C2001: newline in constantc:\program files\visual c\text4.cpp(8) : error C2143: syntax error : missing ) before switchc:\program files\visual c\text4.cpp(9) : error C…

阿里云自研新一代企业云数据库POLARDB背后的技术

从2008年到2018年&#xff0c;阿里巴巴的数据库技术已经发展了10年的时间&#xff0c;10年的时间从AliSQL到RDS&#xff0c;再到自研POLARDB&#xff0c;阿里巴巴数据库技术得到了极大的提升。那么在阿里云自研新一代企业云数据库POLARDB背后有哪些技术呢&#xff1f;本文中&am…

python wxpython radiobutton 能不能默认不选择_Python啥都行_Robot自动化测试

文章目录Robot介绍与环境搭建Robot特性初探Robot 技术架构WxPython GUI工具箱Robot FrameworkRIDE安装第一个案例启动RIDE自定义一个函数新建项目及测试用例导入自定义库函数使用自定义函数运行测试用例及查看其报告Robot介绍与环境搭建Robot特性初探Robot Framework是一个基于…

为什么嫁人就选程序员!

本文的重点是&#xff1a;“为什么年轻漂亮的小姑娘都瞄准了程序员小哥哥”“理发38&#xff1f;太奢侈了&#xff01;淘宝20买套剪刀自己可以用好几年。”“衣服太贵了&#xff0c;我觉得优衣库的那件打折就已经很好了”“上个月的一千块钱的零花钱没花完&#xff0c;这个月先…

数字化转型 移动化先行 云栖大会上发布了哪些移动研发新利器?

随着企业使用互联网技术的不断深入&#xff0c;企业在产品研发、供应链管理、市场运营及企业内部的场景当中&#xff0c;生产效率得到大幅度提升。随着移动互联网技术在社会层面深度普及&#xff0c;移动设备的普及性使得企业成为数字化转型的最佳载体。本文以2018年云栖大会杭…