CUDA 与 GPU 札记

Kernels

CUDA C++ 引入了一个新定义“核函数”(Kernels)。与常规的 C++ 函数不同,当调用核函数时,其会被 N 个不同的 CUDA 线程并行执行 N 次。

你可以使用 __global__ 标识符来定义一个核函数,同时使用一个新的 <<<...>>> 配置语法来指定核函数中线程的数量。

核函数中的每个线程都有一个独一无二的 ID,你可以使用核函数中的内建变量来计算得到线程 ID,内建变量我会稍后介绍。

下面代码中定义了一个名为 VecAdd 的核函数,该核函数中的线程数为 N。

// Kernel definition
__global__ void VecAdd(float* A, float* B, float* C)
{
    int i = threadIdx.x;
    C[i] = A[i] + B[i];
}

int main()
{
    ...
    // Kernel invocation with N threads
    VecAdd<<<1, N>>>(A, B, C);
    ...
}

线程架构#

作者:Esofar

出处:https://www.cnblogs.com/yinhaofei/p/18423316

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Yin-SHT  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示