Altifigence Academy

7 / 20 · 概念

有效标志、标签与清空

区分数值零、气泡和来自其他任务的令牌。

令牌携带的不只是数值

参考令牌包含 value、valid、job 和 k。无效令牌是气泡。value 为零的有效令牌是真实矩阵操作数。job 标识事务;k 标识归约项。布线为每个 PE 固定 A 的行和 B 的列,封装逻辑则记住分块坐标。

两个输入都有效时,相乘之前应验证 job 和 k 标签相等。A(0,1)=2 与 B(0,0)=5 配对会得到十,但它不是合法项。匹配的 k=1 输入对是二和七,乘积为十四。应将标签不匹配报告为可见的验证错误,而不是悄悄当成普通气泡丢弃。

统计项数,而不是时钟数

clear 使 acc=0、count=0。每个匹配输入对都必须满足 k=count,然后递增 count。在某个时钟沿使用 k=K−1 后,本地结果立即完成。气泡和暂停不增加 count。这个简单控制器要求 k 有序。若支持任意顺序,则需要已接收项位图以及重复检测。

K=2 时,使用一和五后得到 acc=5、count=1。气泡使两者保持不变。使用 k=1 的二和七后得到 acc=19、count=2,并完成。即使下游已经接收结果,重复的 k=1 仍然是错误。

排空与清零目的不同

最后一个边界输入进入时,阵列还没有空。内部转发寄存器中仍保留令牌。继续推进,并在边界输入无效令牌,直到最后一个 PE 使用其最后一项。排空期间,应保留已完成的累加器,直到收集其结果。如果要开始新任务,则必须一起清除累加器、计数、valid 和标签状态。

本课程的封装逻辑一次运行一个任务。先完成任务、收集结果、清零,再重新开始。任务重叠需要额外状态或累加器,以及输出协议;只有标签并不能提供这种能力。测试必须包括标签不匹配、项遗漏或重复、清零后的残留有效状态,以及仍会增加项计数的有效零操作数。

自己试试

K=3 的 PE 依次使用 k=0 输入对 (2,4)、一个气泡、k=1 输入对 (0,9) 和 k=2 输入对 (−1,3)。求 acc 和 count。如果最后的 job 标签不匹配,应怎样处理?

阅读解释

标签匹配时,acc=5、count=3,因此结果完成。气泡不计数;有效零计数。job 不匹配时必须报告验证错误,不能报告成功完成。

你的选择适用于此浏览器,可随时在页脚更改。