来源书籍

Vulkan 应用开发指南

GPU/并行计算类

速查手册(低浓度 + 低稳定性)

类别清单覆盖

6/7

已覆盖 6 补充生成 0 未覆盖 1

全书概览

Vulkan 应用开发指南

类别:GPU/并行计算类

四象限结论:速查手册(低浓度 + 低稳定性)

类别清单核对(GPU/并行计算类)

必答维度 覆盖状态 已有卡片/说明
硬件执行模型 已覆盖 [[命令记录与命令执行是两个独立的时间点]]
内存层级与访问模式 已覆盖 [[内存分配策略没有放之四海而皆准的答案]]、[[多子通道加输入附件让延迟渲染的中间数据留在片上]]
并行算法映射策略 已覆盖 [[副命令缓冲区用继承状态换取并行录制]]
同步与通信机制 已覆盖 [[三种同步原语,按等待双方和代价分层]]、[[三种内存读写危险:RAW/WAR/WAW]]
性能剖析方法论 未覆盖 当前卡片未覆盖剖析工具或指标。
编程模型的抽象与限制 已覆盖 [[显式API用错误检查换性能]]、[[管线对象化:把最贵的编译工作做一次、存起来]]
与 CPU 协作的开销 已覆盖 [[多份栅栏实现CPU与GPU的流水线重叠]]

作者:[美] 格拉汉姆·塞勒斯(Graham Sellers) [美] 约翰·克赛尼希(John Kessenich) 出版社:人民邮电出版社

评级结论:速查手册(第四级别,低浓度 + 低稳定性)

判断依据

全书绝大部分篇幅是 Vulkan 1.0 API 的结构体字段、函数原型、标志位枚举的逐条说明(如 VkInstanceCreateInfoVkMemoryBarrierVkImageMemoryBarrier 等每个字段是什么、 该设成什么值),属于强绑定特定 API 版本的操作性内容——低浓度、低稳定性。

书中穿插了少量设计动机说明,例如: - 1.5 节讲 Vulkan 多线程模型的”外部同步”设计哲学(不在内部加锁,把同步责任交给应用层, 换取无锁的高性能) - 4.1 节讲内存屏障要解决的 RAW/WAR/WAW 三种读写危险,这是并行编程中可迁移的通用概念 - 6.3 节讲管线对象化的设计动机(把状态打包成一个对象,避免驱动运行时重新编译着色器) - 13.1~13.3 节讲输入附件和副命令缓冲区背后的动机——利用移动 GPU 的 tile-based 渲染 架构做带宽优化

但这些内容占比很小,且很快又转入具体标志位/字段罗列,因此整体定级为速查手册。

章节进度追踪表

章节号 章节标题 精读/略读 状态 卡片数
1 Vulkan概述 精读 done 4
2 内存和资源 略读 done 0
3 队列和命令 精读 done 2
4 移动数据 精读 done 1
5 展示 略读 done 0
6 着色器和管线 精读 done 4
7 图形管线 精读 done 2
8 绘制 略读 done 0
9 几何体处理 略读 done 0
10 片段处理 略读 done 0
11 同步 精读 done 2
12 回读数据 略读 done 0
13 多通道渲染 精读 done 2
附录A Vulkan中的部分函数 略读 done 0
- 词汇表 略读 done 0

精读章节对应文件(spine 顺序)

  • 第1章:chapter001.html, chapter001_0001~0009.html
  • 第3章:chapter003.html, chapter003_0001~0006.html
  • 第4章:chapter004.html, chapter004_0001~0007.html
  • 第6章:chapter006.html, chapter006_0001~0006.html
  • 第7章:chapter007.html, chapter007_0001~0006.html
  • 第11章:chapter011.html, chapter011_0001~0004.html
  • 第13章:chapter013.html, chapter013_0001~0004.html

章节与卡片

01 Vulkan概述

  1. 显式API用错误检查换性能 普通读书笔记卡
  2. 内存分配策略没有放之四海而皆准的答案 普通读书笔记卡
  3. 外部同步:把加锁的决定权还给应用层 普通读书笔记卡
  4. 扩展显式启用换取零意外开销 普通读书笔记卡

03 队列和命令

  1. 命令记录与命令执行是两个独立的时间点 普通读书笔记卡
  2. 复用对象比反复申请释放更高效,但要小心尺寸退化 普通读书笔记卡

04 移动数据

  1. 三种内存读写危险:RAW/WAR/WAW 普通读书笔记卡

06 着色器和管线

  1. SPIR-V中间表示让驱动摆脱语言差异 普通读书笔记卡
  2. 特化常量:把编译期决定推迟到管线创建时刻 普通读书笔记卡
  3. 管线对象化:把最贵的编译工作做一次、存起来 普通读书笔记卡
  4. 资源按变化频率分层,减少状态切换开销 普通读书笔记卡

07 图形管线

  1. 显式声明附件生命周期,让驱动省掉不必要的写回 普通读书笔记卡
  2. 动态状态:给高频变化的属性开一条快速通道 普通读书笔记卡

11 同步

  1. 三种同步原语,按等待双方和代价分层 普通读书笔记卡
  2. 多份栅栏实现CPU与GPU的流水线重叠 普通读书笔记卡

13 多通道渲染

  1. 多子通道+输入附件,让延迟渲染的中间数据留在片上 普通读书笔记卡
  2. 副命令缓冲区:用继承状态换取并行录制 普通读书笔记卡

相关主题

暂无公开主题。