美文网首页
GPU中的寄存器文件

GPU中的寄存器文件

作者: 陈成_Adam | 来源:发表于2021-03-01 20:19 被阅读0次

结构

寄存器文件通常划分为多个Bank,4个Register Bank组成的R寄存器文件结构如下,

image.png

每个Register Bank又可以包含两个RAM,

image.png

容量

GPU中,每个执行核中的寄存器的容量和这个核支持的最大线程数息息相关。

假设每个执行核最多支持A个Warp,每个Warp包含B个线程,每个线程可用的寄存器为:通用寄存器C个、特殊寄存器D个,每个寄存器为E个字节,则这个执行核的寄存器文件的大小为:

A \times B \times (C + D) \times E

访问

将Register File拆分成多个Register Bank是为了提高寄存器的访问效率。因为每个Register Bank都有独立的访问端口,这样多个Bank就可以并行访问,这类似于DDR的设计。

如果一条指令里面的源寄存器访问的都是不同的Bank,那么这无疑就提高了寄存器的访问效率。

通常我们可以这样分配寄存器的地址:

  • 寄存器 0、4、8 ... 访问的都是Bank 0;
  • 寄存器 1、5、9 ... 访问的都是Bank1;
  • 寄存器 2、6、10 ... 访问的都是Bank2;
  • 寄存器 3、7、11 ... 访问的都是Bank3;

这样编译器在一条指令中使用寄存器的时候,顺序分配寄存器就可以让一条指令中的寄存器访问不同的Bank,从而提高寄存器的访问效率。

相关文章

  • GPU中的寄存器文件

    结构 寄存器文件通常划分为多个Bank,4个Register Bank组成的R寄存器文件结构如下, 每个Regis...

  • Emacs的书签功能介绍

    Emacs的书签功能介绍 emacs的书签用于记录你在文件中的阅读位置。它有点类似寄存器,跟寄存器一样,因为它也能...

  • OC底层基础:性能优化

    查看oc文件底层结构 支持ARC、指定运行时系统版本 一、CPU和GPU 在屏幕成像的过程中,CPU和GPU起着至...

  • IOS arm64常用的汇编

    导论 生成汇编文件 寄存器 arm64 汇编条件域 arm64 汇编指令 总结 1. 生成汇编文件 2. 寄存器 ...

  • 汇编六、状态寄存器

    CPU内部的寄存器中,有一种特殊的寄存器,这种寄存器在ARM中,被称为状态寄存器,即CPSR(current pr...

  • Vim 中的寄存器

    Vim 中的寄存器 计算机中通常所说的寄存器 Register 一般指的是 CPU 中的寄存器,用来暂存 CPU ...

  • 2019-06-02 深度学习需要知道哪些linux指令?

    系统操作 文件操作 GPU jupyter notebook 安装samba

  • vim 全选并复制到系统剪切板

    Vim 中的复制、删除的内容都会被存放到默认(未命名)寄存器中,之后可以通过粘贴操作读取默认寄存器中的内容。寄存器...

  • PR导入视频绿色

    项目管理中关闭GPU加速即可文件→项目设置→常规→视频渲染和回放改为仅Mercury Playback Engin...

  • cuda全局内存中的“分区冲突”

    CUDA将GPU的内存模型暴露给开发人员,包括全局内存、常量/纹理内存、共享内存、本地内存、寄存器,不同类型内存的...

网友评论

      本文标题:GPU中的寄存器文件

      本文链接:https://www.haomeiwen.com/subject/ngxzfltx.html