GPU的硬件架构

SM: streaming Multiprocessor 流多处理器

sm里面有多个(sp)cuda core

32个线程称为一个warp,一个warp是一个基本执行单元

抽象概念:grid 网格 block 块 thread 线程

块中的线程大小是有讲究的,关乎到资源的调度,一般是128,256,512并且是32的倍数

Device:指的是 GPU 芯片。Grid:对应 Device 级别的调度单位,一组block,一个grid中的block可以在多个SM中执行。Block:对应 SM(Streaming Multiprocessor) 级别的调度单位,一组thread,同block中的thread可以协作。Thread:对应 CUDA Core 级别的调度单位,最小执行单元。

一个 thread 一定对应一个 CUDA Core,但是CUDA Core可能对应多个 thread。一个Block内的线程一定会在同一个SM(Streaming Multiprocessor,注意不是后面经常提到的Shared Memory)内,一个SM可以运行多个Block。每一个block内的thread会以warp为单位进行运算,一个warp对应一条指令流,一个warp内的thread是真正同步的,同一个warp内的thread可以读取其他warp的值

c 复制代码
dim3 grid(3, 2);
dim3 block(5, 3);
kernel_fun<<< grid, block >>>(prams...);


cuda的内存模型

典型的CUDA程序的执行流程如下:

  1. 分配host内存,并进行数据初始化;
  2. 分配device内存,并从host将数据拷贝到device上;
  3. 调用CUDA的核函数在device上完成指定的运算;
  4. 将device上的运算结果拷贝到host上;
  5. 释放device和host上分配的内存。

核函数用__global__符号声明,在调用时需要用<<<grid, block>>>来指定kernel要执行的线程数量

在CUDA中,每一个线程都要执行核函数,并且每个线程会分配一个唯一的线程号thread ID,这个ID值可以通过核函数的内置变量threadIdx来获得。

global :在device上执行,从host中调用(一些特定的GPU也可以从device上调用),返回类型必须是void,不支持可变参数参数,不能成为类成员函数。注意用__global__定义的kernel是异步的,这意味着host不会等待kernel执行完就执行下一步。
device :在device上执行,单仅可以从device中调用,不可以和__global__同时用。
host:在host上执行,仅可以从host上调用,一般省略不写,不可以和__global__同时用,但可和__device__,此时函数会在device和host都编译

相关推荐
wei_shuo18 小时前
深度剖析 GpuGeek 实例:GpuGeek/Qwen3-32B 模型 API 调用实践与性能测试洞察
大模型·gpu算力·gpuseek
GpuGeek4 天前
一文走进GpuGeek | conda常用命令
人工智能·conda·gpu算力·云平台
搬砖的小码农_Sky4 天前
人形机器人:主控芯片
人工智能·机器人·硬件架构·硬件工程·gpu算力
九章云极AladdinEdu8 天前
算力经济模型推演:从中心化到去中心化算力市场的转变(区块链+智能合约的算力交易原型设计)
人工智能·机器学习·去中心化·区块链·智能合约·gpu算力·量子计算
乌旭11 天前
AIGC算力消耗白皮书:Stable Diffusion vs Midjourney的架构成本差异
人工智能·深度学习·stable diffusion·架构·aigc·midjourney·gpu算力
乌旭11 天前
算力经济模型研究:从云计算定价到去中心化算力市场设计
人工智能·深度学习·云计算·去中心化·区块链·gpu算力·risc-v
搬砖的小码农_Sky13 天前
AI大模型基础设施:主流的几款开源AI大语言模型的本地部署成本
人工智能·语言模型·开源·gpu算力
乌旭13 天前
RISC-V GPU架构研究进展:在深度学习推理场景的可行性验证
人工智能·深度学习·架构·transformer·边缘计算·gpu算力·risc-v
九章云极AladdinEdu13 天前
存算一体架构下的新型AI加速范式:从Samsung HBM-PIM看近内存计算趋势
人工智能·pytorch·算法·架构·gpu算力·智能电视
九章云极AladdinEdu14 天前
量子机器学习中的GPU加速实践:基于CUDA Quantum的混合编程模型探索
人工智能·分布式·机器学习·ai·ai编程·gpu算力·量子计算