GPU架构概述

打印 上一主题 下一主题

主题 857|帖子 857|积分 2571

                                   GPU                              \textbf{GPU}                  GPU架构与                                   CUDA                              \textbf{CUDA}                  CUDA编程模型

                                             1.                                                               GPU                              \textbf{1. }\textbf{GPU}                  1. GPU体系结构

   1️⃣计算单位组织架构
  
  结构功能                                                       CUDA                                              \text{CUDA}                              CUDA焦点雷同                                                       ALU                                              \text{ALU}                              ALU(但远没                                                       CPU                                              \text{CPU}                              CPU的灵活),可执行浮点运算/张量运算/光线追踪(高级焦点)                                                       Warp                                              \text{Warp}                              Warp多焦点共用一个取指/译码器,按                                                       SIMT                                              \text{SIMT}                              SIMT工作(全部线程指令雷同/数据可不同)                                                       SM                                              \text{SM}                              SM包含多组                                                       Warps                                              \text{Warps}                              Warps,全部                                                       CUDA                                              \text{CUDA}                              CUDA焦点共用一套执行上下文(缓存)                                                       &                                              \&                              &共享内存  2️⃣存储条理架构:

  

  • 不同                                             SM                                      \text{SM}                        SM可以或许                                             Access                                      \text{Access}                        Access雷同的                                             L2 Cache                                      \text{L2 Cache}                        L2 Cache
  • 显存与缓存之间的带宽极高,但是相比                                             GPU                                      \text{GPU}                        GPU的运算能力仍旧有瓶颈
                                     2.                                                        \textbf{2. }                  2.                                    CUDA                              \textbf{CUDA}                  CUDA编程模型

   1️⃣                                        CUDA                                  \text{CUDA}                     CUDA步伐简述
  

  •                                              CUDA                                      \text{CUDA}                        CUDA步伐的两部门    步伐运行位置主要职责Host步伐                                                                 CPU                                                      \text{CPU}                                    CPU任务管理/数据传输/启动                                                                 GPU                                                      \text{GPU}                                    GPU内核Device步伐                                                                 GPU                                                      \text{GPU}                                    GPU执行内核/处理数据
  •                                              Kernel                                      \text{Kernel}                        Kernel即在                                             GPU                                      \text{GPU}                        GPU上运行的函数,如下简单内审定义示例
    1. //通过__global__关键字声名内核函数
    2. __global__ void VecAdd(float* A, float* B, float* C)
    3. {
    4.    int i = threadIdx.x;
    5.    C[i] = A[i] + B[i];
    6. }
    7. int main()
    8. {
    9.    //通过<<<...>>>中参数指定执行kernel的CUDA thread数量
    10.    VecAdd<<<1, N>>>(A, B, C);
    11. }
    复制代码
  2️⃣线程并行执行架构
  

  • 线程条理:    结构职位功能                                                                 Thread                                                      \text{Thread}                                    Thread并行执行最小单位执行                                                                 Kernel                                                      \text{Kernel}                                    Kernel的一段代码                                                                 Warp(32Threads)                                                      \text{Warp(32Threads)}                                    Warp(32Threads)线程调度的基本单位全部线程以                                                                 SIMD                                                      \text{SIMD}                                    SIMD方式执行雷同指令                                                                 Block                                                      \text{Block}                                    Block                                                                 GPU                                                      \text{GPU}                                    GPU执行线程基本单位使块内线程内存共享/指令同步                                                                 Grid                                                      \text{Grid}                                    Grid并行执行的最大单位执行整个内核(启动内核时必启动整个                                                                 Grid                                                      \text{Grid}                                    Grid)
  • 线程在计算单位的映射:线程条理                                                         ↔                                               条理对应                                                      GPU                                      \xleftrightarrow{条理对应}\text{GPU}                        条理对应                              ​GPU物理架构


    • 留意                                                       SM                                              \text{SM}                              SM和                                                       Block                                              \text{Block}                              Block不必                                                       1v1                                              \text{1v1}                              1v1对应也可                                                       Nv1                                              \text{Nv1}                              Nv1对应

  • 线程在存储单位的映射    线程结构可                                                                 Access                                                      \textbf{Access}                                    Access的内存结构访问速率                                                                 Thread                                                      \text{Thread}                                    Thread每线程唯一的                                                                 Local Memory                                                      \text{Local Memory}                                    Local Memory极快                                                                 Block                                                      \text{Block}                                    Block每块唯一的                                                                 Shared Memory                                                      \text{Shared Memory}                                    Shared Memory(块中每个线程都可访问)较快全部线程唯一且共享的                                                                 Global Memory                                                      \text{Global Memory}                                    Global Memory较慢
                                     3.                                                   CPU                              \textbf{3. CPU}                  3. CPU与                                   GPU                              \textbf{GPU}                  GPU

   
  1️⃣                                        CPU/GPU                                  \text{CPU/}\text{GPU}                     CPU/GPU结构对比
                                                         GPU                                              \text{GPU}                              GPU                                                       CPU                                              \text{CPU}                              CPU                                                       ALU                                              \text{ALU}                              ALU功能强但数量少(只占                                                       GPU                                              \text{GPU}                              GPU小部),时钟频率极高功能弱但数量大,时钟频率低                                                       Cache                                              \text{Cache}                              Cache容量大并分级,缓存后续访问数据容量很小,用于提高线程服务控制复杂串行逻辑,如流水/分支预测/乱序执行简单(但大规模)并行逻辑  3️⃣                                        CPU                                       ↔                                                        数据                                     /                                     指令传输                                                                  PCIe                                                 GPU                                  \text{CPU} \xleftrightarrow[数据/指令传输]{\text{PCIe}} \text{GPU}                     CPUPCIe                            数据/指令传输​GPU交互
  设备逻辑职位                                                       IO                                              \textbf{IO}                              IO模块任务分配                                                       GPU                                              \text{GPU}                              GPU外设                                                       IO Block                                              \text{IO Block}                              IO Block(南桥)控制逻辑和任务调度                                                       CPU                                              \text{CPU}                              CPU主机                                                       Copy Engine                                              \text{Copy Engine}                              Copy Engine执行大量并行计算任务
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

何小豆儿在此

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表