news 2026/8/30 5:08:09

核函数与线程层次:让每个线程找到自己的位置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
核函数与线程层次:让每个线程找到自己的位置

核心判断只有一句:网格(Grid)组织线程块(Block),Block 组织线程(Thread);全局索引把线程坐标映射到数据位置。


① 从“线程能启动”到“线程知道自己做什么”

上一篇已经让一个内核(kernel)真正运行起来,但只看见"有线程输出"还不够。现在的问题变成:当一个 kernel 启动很多线程时,每个线程怎样知道自己在整个任务中的位置?

CUDA 用Grid → Block → Thread的层次结构组织线程。一次内核启动(kernel launch)对应一个 Grid,Grid 由多个 Block 组成,每个 Block 又包含多个 Thread;Grid 和 Block 都可以是一维、二维或三维的。

下面这张图展示了这个层次的嵌套关系:

图中从上到下依次是 Grid、Block、Thread 三层:Grid 包含多个 Block,每个 Block 包含多个 Thread,Thread 是其中最小的执行单位——你写的每个线程都在这个层次里拥有确定的位置。

一次 kernel launch 会指定一个 Grid,Grid 由多个 Block 组成。Block 是线程的组织和协作单位,Thread 是 CUDA 编程模型中的基本执行单位。这种层次化组织让同一个 kernel 可以用不同规模的 Grid 和 Block 处理不同大小的数据集;线程只需要根据自己的坐标确定要处理的数据位置。

如下图所示,多个 Block 组成一个 Grid,每个 Block 又包含多个 Thread。图中的数量用于说明层次,不代表实际程序必须使用同样的规模:

这张图重点展示的是组织关系,而不是线程执行先后。线程如何获得坐标,接下来用一个一维例子说明。


② 一维坐标:Block 内编号如何变成全局索引

上一篇的<<<2, 4>>>已经启动了 2 个 Block、每个 Block 4 个 Thread。本节让每个线程打印自己的三项信息:所在 Block、Block 内编号,以及我们计算出的全局索引。

#include<cstdio>#include<cuda_runtime.h>// 每个线程计算自己在线性 Grid 中的全局索引__global__voidprint_1d_coordinates(){// blockIdx.x:当前 Block 在 Grid 中的编号// blockDim.x:每个 Block 在 x 方向包含的线程数// threadIdx.x:当前 Thread 在 Block 内的编号intglobal_id=blockIdx.x*blockDim.x+threadIdx.x;printf("block=%d thread=%d global=%d\n",blockIdx.x,threadIdx.x,global_id);}intmain(){// 启动 2 个 Block,每个 Block 包含 4 个 Thread,共 8 个 Threadprint_1d_coordinates<<<2,4
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 5:08:07

多线程绕不开 GIL,多进程凭什么能绕开?一文讲透 multiprocessing

「Python 进阶之路」系列 Day18写在前面 Day16、Day17 反复验证了一个结论&#xff1a;CPU 密集型任务用多线程没有加速效果&#xff0c;因为 GIL 让同一时刻只有一个线程能执行 Python 字节码。那如果真的需要用 Python 做并行计算&#xff0c;出路在哪&#xff1f;答案是 mul…

作者头像 李华
网站建设 2026/8/30 5:05:27

Anthropic与OpenAI同台Disrupt 2026:开发者如何备战API评测与模型选型

Anthropic 和 OpenAI 的高管将同时出现在 TechCrunch Disrupt 2026 的 AI 舞台上&#xff0c;这不只是两个头部 AI 实验室的又一次同框&#xff0c;更像是 2026 年模型能力、API 生态、Agent 化服务和合规策略的一次正面对话。如果你平时就在调 Claude 或 GPT 的接口、做 Agent…

作者头像 李华
网站建设 2026/8/30 5:04:40

AI推荐为何更可信却下单更慢?用户信任与决策时间的数据分析实战

最近在分析推荐系统转化数据时&#xff0c;发现了一个很有意思的现象&#xff1a;用户对 AI 推荐给出的信任评分&#xff0c;明显高于对网红和短视频带货的信任评分&#xff1b;可点击率、加购率都挺正常&#xff0c;唯独从“看到推荐”到“真正下单”的决策时间&#xff0c;AI…

作者头像 李华
网站建设 2026/8/30 5:04:25

Skill.md与Llms.txt:LLM应用配置文件的定位、格式与部署实践

这几年 LLM 应用里的文本配置文件越来越多&#xff0c;最容易让人混淆的两份就是 Skill.md 和 Llms.txt。名字都很短&#xff0c;都跟 AI 有关系&#xff0c;但定位完全不同&#xff1a;Skill.md 是给 Agent 看的“操作手册”。它告诉 AI 某个技能该怎么触发、分几步执行、输出…

作者头像 李华
网站建设 2026/8/30 5:02:42

Cloudflare Workers+Pages+D1:构建无服务器边缘应用完整方案

Cloudflare WorkersPagesD1&#xff1a;构建无服务器边缘应用完整方案 本教程通过制作一个简单的“留言板”&#xff0c;学习 Cloudflare 三个核心产品&#xff1a; Cloudflare Pages&#xff1a;部署前端页面Cloudflare Workers&#xff1a;编写后端 APICloudflare D1&#xf…

作者头像 李华
网站建设 2026/8/30 5:00:39

基于MATLAB的植保无人机全覆盖路径规划与遗传算法优化

简介&#xff1a;本资源是一套面向农业自动化与智能控制领域的MATLAB实践项目&#xff0c;专为具备基础编程与优化算法知识的高校学生、科研人员及农业无人机开发者设计&#xff0c;聚焦多无人机协同农药喷洒路径规划这一典型工程问题。压缩包共含10个文件&#xff08;9个.m脚本…

作者头像 李华