CPU で packed RTL を実行して検証する
上限を設けた組合せ回路ネットリストのリクエストを送信し、保存した結果を独立して再実行します。
このローカルワークフローでは、Linux 上の Altifigence CLI 0.1.9 を使用します。
保存した結果を読む前に、終了ステータスが 0 であることを確認してください。標準エラー出力は別に保存し、以下で説明する結果フィールドを確認します。
完全な CPU リクエストを保存する
以下の完全なドキュメントで packed-request.json を作成します。この例では 1 レーンと 1 フレームを使用します。入力ワードが単一の入力ビットを設定し、バッファーセルがそれを出力にコピーします。バックエンドは明示されています。CPU リクエストでは、デバイスメモリの上限にゼロを使用します。初めてこの例を試す際は、スキーマとネットリスト構造をそのまま維持し、その後、自分の組合せ回路ネットリストに合わせて、上限を設けたスティミュラスを調整してください。
{
"schema": "altifigence.rtl.packed-request.v1",
"backend": "cpu",
"netlist": {
"schema": "logic-netlist-0",
"top": "buffer",
"input_sha256": "ce4c5490bac02643968670ee055c3575a7ed23bad13bd33b1057e8d9b17a1c3a",
"ports": [
{
"name": "a",
"direction": "input",
"bits_lsb0": [
{
"net": 0
}
]
},
{
"name": "y",
"direction": "output",
"bits_lsb0": [
{
"net": 1
}
]
}
],
"nets": [
{
"id": 0
},
{
"id": 1
}
],
"cells": [
{
"id": 0,
"name": "buffer",
"output": 1,
"kind": {
"op": "buf",
"a": {
"net": 0
}
}
}
]
},
"lanes": 1,
"frames": 1,
"stimulus": [
1
],
"timeout_ms": 1000,
"device_memory_bytes": 0
}ネイティブ結果を実行して保存する
alti compute rtl-capabilities
alti compute rtl-simulate --request packed-request.json > packed-result.jsonコマンドが成功したら packed-result.json を読みます。ネイティブ結果には、リクエスト、そのダイジェスト、シミュレーションレポート、output_words、および net_toggle_counts が含まれます。この 1 ビットのバッファーリクエストでは、output_words は [1] です。検証は抜粋ではなく完全なアーティファクトを使用するため、結果ファイル全体を保持してください。CLI の実行レシートは、標準出力に書き込まれるネイティブ JSON とは別に、標準エラー出力に出力されます。
保存した結果を再実行する
alti compute rtl-verify --request packed-result.json{"schema":"altifigence.rtl.packed-verification.v1","valid":true,"cuda_executed":false}表示されている検証ドキュメントは抜粋です。完全なドキュメントには、アーティファクトのダイジェストも含まれます。検証では、保存された数学的な結果を CPU 上で再実行します。別のレビュアーが同じチェックを繰り返せるように、この出力を元のリクエストおよび結果とともに保持してください。
レーン数のエラーを修正する
このリクエストで lanes を 0 に変更すると、エラーコード resource-limit とメッセージ packed request exceeds count, time or explicit device budget limits が出力されます。他の例示フィールドをそのまま維持し、packed-request.json の lanes を 1 に戻してください。その後、以下のコマンドで完全な結果を再生成して検証します。
alti compute rtl-simulate --request packed-request.json > packed-result.json
alti compute rtl-verify --request packed-result.json