Altifigence Academy

18 / 20 · 概念

設計有號與邊界測試

結合算術、形狀與控制邊界,超越單一正常範例。

選擇能區分錯誤的輸入

正值 2×2 範例揭露錯時與索引問題,但不測符號延伸或飽和。全一矩陣有助檢查計數,卻可能掩蓋轉置。使用非對稱值、負數、零,以及不同的列與欄。

A=[[2,−1],[0,3]]、B=[[4,5],[−2,1]] 產生 [[10,9],[−6,3]]。包含正負輸出與有效零。B 為單位矩陣必須重現 A。B 為零矩陣必須產生零輸出,而各 PE 仍消費 K 項。

W=8、K=4 時,重複最小值×最小值得到 65536;重複最小值×最大值得到 −65024;重複最大值×最大值得到 64516。皆可容納於 AW=18。只測最大的正運算元,會漏掉最大正乘積。

A 列 [−128,−128,127,127] 與 B 欄 [−128,127,−128,127] 的乘積為 [16384,−16256,−16256,16129]。總和為一,前綴總和為 [16384,128,−16128,1]。小的最終結果不能合理化窄的中間累加器。

涵蓋形狀與控制邊界

N=1,K=1 在 E0 後完成。N=3,K=1 仍需到 E4 後才完成,因運算元穿越網格。N=1,K=5 是五邊緣內積,沒有空間錯時。測試 K=1,2,3,4 會跨越計數器寬度邊界,尤其是儲存 K−1 與儲存 K 的差異。

在第一個 MAC 前、歸約中途與最後 MAC 前插入暫停。完成後阻塞輸出。在 clear 後、工作中途與有效結果待處理時重設。重設後的舊工作輸出是失敗。比較可整除的分塊形狀與剩一列或一欄的形狀;按座標驗證遮罩。

對各通過案例,指定矩陣、精確消費項目清單、advance 邊緣數、暫停數與交付輸出座標。負向測試需要預期錯誤類別。精確累加器檢查應與輸出量化分離。固定邊界測試資料加上有種子的隨機測試,可擴大單一範例以外的涵蓋範圍,同時讓失敗可重現。

自己試試看

N=3,K=1 時,求最後邊緣編號與邊緣數。另求 W=8,K=4 時,四項最小值×最大值總和。

查看解說

最後邊緣編號為 1+6−3=4,E0..E4 共五個邊緣。一次最小值×最大值為 −16256;四項總和為 −65024。

此選擇適用於本瀏覽器,隨時可從頁尾變更。