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