18 / 20 · 概念
符号付きと境界のテストを設計する
正常例1つを超え、算術、形状、制御の境界を組み合わせます。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
不具合を区別する入力を選ぶ
正の2×2例はスキューと添字を明らかにしますが、符号拡張や飽和は試しません。全1行列は項数の検査に役立ちますが、転置を隠すことがあります。非対称な値、負数、ゼロ、異なる行と列を使います。
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]です。和は1、途中の累積和は[16384,128,−16128,1]です。最終結果が小さくても中間アキュムレータを狭くしてよい根拠にはなりません。
形状と制御の境界を網羅する
N=1,K=1はE0後に完了します。N=3,K=1はオペランドが格子を通るためE4後です。N=1,K=5は空間スキューなしの5エッジ内積です。K=1,2,3,4のテストはカウンタ幅の境界、特にK−1とKを保存する違いをまたぎます。
最初のMAC前、縮約途中、最後のMAC前に停止を挿入します。完了後に出力をブロックします。クリア後、ジョブ途中、有効結果待機中にリセットします。リセット後の旧ジョブ出力は失敗です。タイル寸法の完全な倍数と、1行または1列残る形状を比較し、座標でマスクを検証します。
成功ケースごとに、行列、厳密な消費項一覧、advanceエッジ数、停止数、引き渡した出力座標を指定します。異常テストには期待するエラー種別が必要です。正確なアキュムレータ検査と出力量子化は別にします。固定境界例とシード付き乱数テストにより、再現可能性を保って1例以上の範囲を調べられます。
自分で考えてみましょう
N=3,K=1の最終エッジ番号と回数を求めてください。またW=8,K=4で最小×最大を4項加えた和を求めてください。
解説を見る
最終番号は1+6−3=4で、E0..E4の5エッジです。最小×最大の1積は−16256、4個の和は−65024です。