← 完整学习路线

UNIT 53 / 78 · W08-1

Reduction 与 scan 保留不同信息

本单元预计 4 核心小时。可以分成多个学习时段,按完整小节推进;停下来时留下输入、命令、结果和下一步。

时间包含阅读、编码与检查,是学习预算而非期限。打开此页只保存阅读位置,不代表通过验收。

01 / READ

先知道自己在观察什么

Reduction、scan 与数值正确性 →

手推奇数长度归约树和inclusive/exclusive scan,区分整数界与浮点重排。

先备不清楚时,沿章节入口补读;不要依赖翻过页数判断进度。

本单元另列的补授

以下时间加在原单元预算之外;完成对应读法后再进入依赖它的任务。

02 / PREDICT & RUN

先留下自己的预测或独立尝试

从[3,1,4,1,5]画出每层归约及每个前缀,再核对sum=14和scan=3,4,8,9,14。

奇数长度树形归约与扫描 →
源码下载与编译入口

下载到自己的练习目录。按本节给出的完整命令编译;多文件与driver要求见原任务。需要时查阅文件保存与编译操作 →

28-a.cpp

先保存预测,再核对正文标明的预期或诊断。完整构建、多文件与设备实验按原任务命令执行。

03 / CHANGE ONE THING

通过一个变动看清原因

在副本将主输入换为[2,-1,4],同步更新该案例的总和与scan检查,保留原边界穷举。

修改后应观察到什么

总和5,inclusive scan为[2,1,5];奇数尾项不能丢。

04 / DO IT YOURSELF

换一组条件,独立解决

独立写exclusive scan的小整数版本,并对[]、[7]、[2,-1,4]逐项验证;不覆盖主项目整数合同。

用这些条件检查自己的实现

  • 结果分别为[]、[0]、[0,2,1];单项输出不含当前位置。
  • 纸上说明浮点加法改变分组可能改变结果;非有限值策略先写合同。
05 / EXPLAIN & CHECK

用证据决定是否进入下一单元

  1. 为什么只检查scan末项不够?
  2. 给无效lane补零适用于哪种运算单位元?

本单元的验收依据

归约树、两类scan与边界检查一致;整数精确验证与浮点容差明确分开。

留下自己的代码或推演、测试输入、真实输出和仍不确定的问题。未达到要求时,下一次继续本单元。