GPU Structure and Programing

Todo

  • L2 cache gpgpu-sim 源码分析
  • Bank conflict 的题目分析
  • warp occupancy 概念和计算
  • 由broadcast式访问global memory引申的对于constant memory的理解和使用
  • 并行化+访存优化,并行化中有一个branch divergence的问题
  • 查找 DRAM burst突发传送官方文档说明
  • 发现矩阵乘法是一个结合各种并行算法以及CUDA硬件架构知识的好的入手点,create一门课程 “从矩阵乘法入门并行计算-CUDA版”
  • 需要验证如果shared memory中的元素大小和bank大小不一致时,访问其中更小的数据是否会造成bank conflict。需要借助nvprof,但是nvprof在选择检测bank事件时无法正常工作
  • CUDA C只是对标准C进行了语言级的扩展,通过增加一些修饰符使编译器可以确定哪些代码在主机上运行,哪些代码在设备上运行
  • GPU计算的应用前景很大程度上取决于能否从问题中发掘出大规模并行性

宏观视角

高性能计算的第一性原理:访存优化。所有的努力(优化硬件设计,优化算法)都是在试图解决内存墙。

Latex Grammar Summary

  1. 单个点 ($\cdot$) : $\cdot$
  2. 横向多个点 ($\cdots$) : $\cdots$
  3. 竖向多个点 ($\vdots$) : $\vdots$
  4. 斜向多个点 ($\ddots$) : $\ddots$

数学字体

mathbb:blackboard bold(黑板粗体),用于期望 mathbf:math boldface,用于矩阵、向量 mathrm:math roman,罗马体(整体),用于微分符号d、二项式系数C、等号上的def、自然常数e、虚数单位i mathcal:math calligraphy(美术字),用于集合,分布

0%