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 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律