cuda - 为什么 Cuda 内核用 `__global__` 注释而不是 `__kernel__`
问题描述
实际上,标题已经是完整的问题。为什么 Nvidia 决定将其 GPU 入口函数称为内核,但在 Cuda 中它们必须用 注释__global__
而不是__kernel__
?
解决方案
目标是分离实体(内核)及其范围或位置。
与您的问题相关的三种功能:
__device__
函数只能从设备调用,并且只能在设备中执行。__global__
可以从主机调用函数,并在设备中执行。__host__
函数在主机上运行,从主机调用。
如果他们将函数命名为 scope __kernel__
,就无法以上面的分隔方式来区分它们。
这里的__global__
意思是“在主机和设备之间共享的空间”,在这些术语中是“它们之间的全局区域”。
推荐阅读
- windows-installer - 有条件地安装基于安装目录的组件,WiX 安装程序
- java - Java Deque 在多线程环境中的奇怪行为
- docker - 如何在容器内获取 BLOCK I/O 和 NET I/O
- r - 回归的方差分析表
- sql - 在 presto/hive 中将 YYYYMMDD 转换为天
- c# - 如何将数据库中的两列与 LINQ 结合起来?
- python - 用 Python 计算的抛物线 SAR 似乎是反转的
- python - Python pdb模式无法删除
- html - 我可以让一个表格在响应式视图上以与其他表格不同的方式显示吗?
- windows - Gradle bootRun 给出 CreateProcess 错误=206,文件名或扩展名太长