Bubu Blog: ~/misc $ ls

背景

指令也是数据。指令会占用内存,使用带宽,并且可以被变换,加载,保存,构建。对于开发者,自然不会认为指令是数据。

需要考虑的问题

  1. 哪些数据需要捆绑在一起,是一个概念还是有隐藏的含义
  2. 你的数据布局是如何设计的?AOS/SOA?支持 SIMD?
    • AoS 更符合人类直觉,但设计上没有 SOA 好
  3. 目标平台内存最小访问单位是多少,CPU 各级缓存多大
  4. 数据多久需要一次、一帧一次还是一帧多次,还是几乎不更新
  5. 如何访问数据?随机/连续还是 stride 或是其他 burst 方式
  6. 总是修改数据还是读取数据,修改所有内容还是只修改部分
  7. 那些数据设计对带宽与延迟影响大