首页 > 解决方案 > 为什么 Cuda 内核用 `__global__` 注释而不是 `__kernel__`

问题描述

实际上,标题已经是完整的问题。为什么 Nvidia 决定将其 GPU 入口函数称为内核,但在 Cuda 中它们必须用 注释__global__而不是__kernel__

标签: cuda

解决方案


目标是分离实体(内核)及其范围或位置。

与您的问题相关的三种功能:

  1. __device__函数只能从设备调用,并且只能在设备中执行。
  2. __global__可以从主机调用函数,并在设备中执行。
  3. __host__ 函数在主机上运行,​​从主机调用。

如果他们将函数命名为 scope __kernel__,就无法以上面的分隔方式来区分它们。

这里的__global__意思是“在主机和设备之间共享的空间”,在这些术语中是“它们之间的全局区域”。


推荐阅读