转自:

(2条消息) cuda 函数前缀 __host__ __device__ __global__ ____noinline__ 和 __forceinline__ 简介_zdlnlhmj的博客-CSDN博客

global

__global__修饰的函数是核函数,这些函数 在GPU上执行 ,但是需要 在CPU端调用

PS.计算能力3.5以上的引入了 CUDA Dynamic Parallelism机制可以才devices端调用核函数

__global__修饰的函数必须采用void返回值,并且需要在调用时制定 运行的参数 (也就是<<<>>>里的block数和线程数)

同时__global___函数是异步的,这也代表着函数没被执行完就返回了控制权,所以测量核函数的时间需要同步操作才能获得准确的结果。

device

__device__函数是在GPU端调用且在GPU端执行的的函数__global___和__device__不能同时使用

__device__在编译器中会被编译为内联函数

host

__host__定义了主机端的函数,就是在主机端执行,在主机端调用的函数,也就是我们正常的c/c++的函数,如果不加任何的修饰符,默认就是__host__ 函数,这些函数只为主机端编译

__global__和__host__不能同时使用,这是显而易见的

但是__device__和__host__可以同时使用,这个函数会同时为主机端和设备端编译。代码中可以用__CUDA_ARCH__这个宏来区分主机和设备端以及不同架构的代码
————————————————
版权声明:本文为CSDN博主「把我当成一棵树吧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zdlnlhmj/article/details/104896470

CUDA学习-函数前缀__global__相关推荐

  1. 深度学习(三十六)异构计算CUDA学习笔记(1)

    异构计算CUDA学习笔记(1) 原文地址:http://blog.csdn.net/hjimce/article/details/51506207 作者:hjimce 近日因为感觉自己在深度学习工程化 ...

  2. CUDA学习笔记(持续更新——蜗速)

    CUDA学习笔记(持续更新--蜗速) 1.CUDA 程序实现流程如下 2.内存管理 3.核函数 4.全局数据访问唯一索引 5.设备管理 附录代码 1.CUDA 程序实现流程如下 将数据从CPU内存拷贝 ...

  3. 浅析cv::cuda::threshold函数的实现

    我觉得通过阅读优秀开源项目的代码来学习库的使用是一个不错的学习方法,比如通过阅读OpenCV和TensorFlow的源码来学习如何使用CUDA和cuDNN,还可以顺便学习一些编程技巧.所以寻找一个合适 ...

  4. CUDA学习(十一):原子操作实现向量内积

    博主CUDA学习系列汇总传送门(持续更新):编程语言|CUDA入门 文章目录 一.原子操作的概念 二.一次原子操作替换两次归约 三.Block内归约,block间原子操作 本文章为 < GPU编 ...

  5. CUDA学习(四):CUDA编程七个步骤

    博主CUDA学习系列汇总传送门(持续更新):编程语言|CUDA入门 文章目录 一.cudaMalloc.cudaMemcpy和cudaFree 介绍 二.CUDA编程七步曲 本章节学习内容: 1.CU ...

  6. CUDA学习(十):向量内积的多种方法实现

    博主CUDA学习系列汇总传送门(持续更新):编程语言|CUDA入门 文章目录 一.CPU上实现向量内积 二.GPU下单Block分散归约向量内积 三.单Block低线程归约向量内积 四.多block向 ...

  7. cuda学习(3):核函数

    1. 核函数介绍 核函数是cuda编程的关键 通过xxx.cu创建一个cudac程序文件,并把cu交给nvcc编译(nvcc 是nvidia的c++编译器,编译cudac程序,是c++的超集),才能识 ...

  8. CUDA学习(七十一)

    函数参数: __global__函数参数通过常量内存传递给设备,限制为4 KB. __global__函数不能有可变数量的参数. 函数中的静态变量: 在__device__或__global__函数的 ...

  9. CUDA学习笔记之 CUDA存储器模型

    CUDA学习笔记之 CUDA存储器模型 标签: cuda存储bindingcache编程api 2010-12-14 01:33 1223人阅读 评论(0) 收藏 举报 分类: CUDA(26) GP ...

最新文章

  1. Webots ROS
  2. 逸鹏说道:漫漫人生路
  3. NGUI从入门到实战第1章开启NGUI学习之旅
  4. echarts相关的可视化数据
  5. 分页offset格式_Thinkphp5 原生sql分页操作
  6. LeetCode 981. 基于时间的键值存储(哈希+二分查找)
  7. [na]锐起无盘机并发部署多台windows
  8. 对 PInvoke 函数的调用导致堆栈不对称问题
  9. Android 动画系列之 -- 补间动画
  10. 6月15号MOVE PROTOCOL上线测试版,如何参与呢?
  11. 外贸电商:除了paypal,这些支付方式也能帮到你
  12. python 全栈开发,Day128(创建二维码,扫码,创建玩具的基本属性)
  13. SSM-Spring
  14. 导出开发板上的根文件系统,并打包制成img镜像
  15. [乡土民间故事_徐苟三传奇]第卅三回_考学问哄走夺馆人
  16. [编程题]java实现游历魔法王国
  17. java面试笔试资料 百度网盘
  18. 知识文库杂志知识文库杂志社知识文库编辑部2022年第14期目录
  19. ros笔记 URDF仿真 3.joint
  20. 网站服务器安全检查结果表,网站安全检测报告预测(2020年精华篇)

热门文章

  1. 【sublime Text】sublime Text3安装可以使xml格式化的插件
  2. Python框架-pygal之世界地图
  3. 互联网时代,发展物联网是一场机遇与挑战并存的改革
  4. SDL2源代码分析8:视频显示总结
  5. 公司Windows Office升级项目总结
  6. 线性表的链式表示——双链表
  7. ubuntu14.04 下安装jdk1.8
  8. 调用torchtext报错OSError: libtorch_cpu.so: cannot open shared object file: No such file or directory
  9. TensorFlow MNIST最佳实践
  10. linux ubunt 安装软件的前期准备——更新源的更换