当前位置:网站首页>CUDA中的函数执行空间说明符
CUDA中的函数执行空间说明符
2022-07-02 06:12:00 【扫地的小何尚】
函数执行空间说明符
函数执行空间说明符表示函数是在主机上执行还是在设备上执行,以及它是可从主机调用还是从设备调用。
1 __global__
__global__
执行空间说明符将函数声明为内核。 它的功能是:
- 在设备上执行,
- 可从主机调用,
- 可在计算能力为 3.2 或更高的设备调用(有关更多详细信息,请参阅 CUDA 动态并行性)。
__global__
函数必须具有 void 返回类型,并且不能是类的成员。
对 __global__
函数的任何调用都必须指定其执行配置,如执行配置中所述。
对 __global__
函数的调用是异步的,这意味着它在设备完成执行之前返回。
2 __device__
__device__
执行空间说明符声明了一个函数:
- 在设备上执行,
- 只能从设备调用。
__global__
和__device__
执行空间说明符不能一起使用。
3 __host__
__host__
执行空间说明符声明了一个函数:
- 在主机上执行,
- 只能从主机调用。
相当于声明一个函数只带有__host__
执行空间说明符,或者声明它没有任何__host__
、__device__
或__global__
执行空间说明符; 在任何一种情况下,该函数都仅为主机编译。
__global__
和 __host__
执行空间说明符不能一起使用。
但是, __device__
和 __host__
执行空间说明符可以一起使用,在这种情况下,该函数是为主机和设备编译的。 Application Compatibility 中引入的 __CUDA_ARCH__
宏可用于区分主机和设备之间的代码路径:
__host__ __device__ func()
{
#if __CUDA_ARCH__ >= 800
// Device code path for compute capability 8.x
#elif __CUDA_ARCH__ >= 700
// Device code path for compute capability 7.x
#elif __CUDA_ARCH__ >= 600
// Device code path for compute capability 6.x
#elif __CUDA_ARCH__ >= 500
// Device code path for compute capability 5.x
#elif __CUDA_ARCH__ >= 300
// Device code path for compute capability 3.x
#elif !defined(__CUDA_ARCH__)
// Host code path
#endif
}
边栏推荐
- Web page user step-by-step operation guide plug-in driver js
- Compte à rebours de 3 jours pour l'inscription à l'accélérateur de démarrage Google Sea, Guide de démarrage collecté à l'avance!
- Sudo right raising
- Frequently asked questions about jetpack compose and material you
- Network related knowledge (Hardware Engineer)
- 利用传统方法(N-gram,HMM等)、神经网络方法(CNN,LSTM等)和预训练方法(Bert等)的中文分词任务实现
- Cookie plugin and localforce offline storage plugin
- LeetCode 27. 移除元素
- RestTemplate请求时设置请求头,请求参数,请求体。
- I/o impressions from readers | prize collection winners list
猜你喜欢
Deep learning classification network -- alexnet
Lucene Basics
ROS2----LifecycleNode生命周期节点总结
Current situation analysis of Devops and noops
Support new and old imperial CMS collection and warehousing tutorials
LeetCode 78. 子集
Common means of modeling: combination
Contest3147 - game 38 of 2021 Freshmen's personal training match_ F: Polyhedral dice
穀歌出海創業加速器報名倒計時 3 天,創業人闖關指南提前收藏!
稀疏数组(非线性结构)
随机推荐
LeetCode 39. Combined sum
Picture clipping plug-in cropper js
Sumo tutorial Hello World
In depth understanding of JUC concurrency (II) concurrency theory
Flutter 混合开发: 开发一个简单的快速启动框架 | 开发者说·DTalk
LeetCode 77. combination
New version of dedecms collection and release plug-in tutorial tool
社区说|Kotlin Flow 的原理与设计哲学
LeetCode 283. 移动零
Contest3145 - the 37th game of 2021 freshman individual training match_ H: Eat fish
LeetCode 27. 移除元素
Verifying downloaded files using sha256 files
经典文献阅读之--Deformable DETR
MySQL的10大经典错误
Mock simulate the background return data with mockjs
LeetCode 39. 组合总和
Ti millimeter wave radar learning (I)
LeetCode 40. Combined sum II
亚马逊aws数据湖工作之坑1
深入学习JVM底层(四):类文件结构