儲存、列出並重新開啟本機XLS結果

將原生XLS請求執行到專案的結果儲存區,列出已儲存的結果,並依內容ID重新開啟其中一個。

在Linux上使用Altifigence CLI 0.1.9,將原生XLS結果保留在本機專案中。每個已儲存的結果,在儲存、列出與重新開啟時,都會在CPU上重播其內嵌請求來檢查。

儲存結果

請使用本機專案的絕對路徑。此範例使用$HOME/alti-projects/demo-project。儲存原生操作請求:

set -euo pipefail
PROJECT="$(cd "$HOME/alti-projects/demo-project" && pwd -P)"
WORK="$(mktemp -d)"
cat > "$WORK/eval.json" <<'JSON'
{
  "schema": "altifigence.xls.operation-request.v1",
  "operation": "eval",
  "input_kind": "dslx",
  "source": "fn compute(x: u8, y: u8) -> u8 { x + y }",
  "top": "compute",
  "backend": "cpu",
  "vectors": [["1", "2"]]
}
JSON
alti xls artifact store --project "$PROJECT" --request "$WORK/eval.json" > "$WORK/ref.json"
jq '{schema, result_schema, replay_verified}' "$WORK/ref.json"
ID="$(jq -r .id "$WORK/ref.json")"

store會執行請求中指定的操作、重播結果並加以儲存。請確認結束狀態為0。所選參照欄位如下:

{
  "schema": "altifigence.xls.artifact-ref.v1",
  "result_schema": "altifigence.xls.operation-result.v1",
  "replay_verified": true
}

id與sha256的值相同:已儲存結果的SHA-256,為64個小寫十六進位字元。結果會儲存為--project所指定資料夾內的.altifigence/xls/artifacts/<id>.json。未使用--project時,會使用目前的資料夾。Optimize與codegen請求會儲存含compilation的altifigence.xls.operation-result.v2結果。再次儲存相同的請求會傳回相同的id。

列出已儲存的結果

alti xls artifact list --project "$PROJECT" > "$WORK/list.json"
jq '{schema, limit, replay_verified, ids}' "$WORK/list.json"

ids依排序順序存放已儲存的ID。列出之前,會依ID檢查並重播每個已儲存的結果。清單最多涵蓋256個項目。沒有已儲存結果的專案會傳回空的ids陣列。由alti xls run發布的結果也保存在同一個儲存區,並出現在同一份清單中。

重新開啟結果

alti xls artifact show --project "$PROJECT" "$ID" > "$WORK/result.json"
jq '{schema, status, outputs}' "$WORK/result.json"

結束狀態為0後,所選欄位如下:

{
  "schema": "altifigence.xls.operation-result.v1",
  "status": "succeeded",
  "outputs": [
    "bits[8]:0x3"
  ]
}

show會傳回完整的已儲存結果,包括request、source_sha256、request_sha256與parameters。它會先檢查檔案的SHA-256是否等於ID,以及檔案是否在65536位元組以內,然後重播內嵌的請求並比對每個欄位。

處理錯誤

當XLS引擎拒絕儲存操作時,命令會以結束狀態2結束,並將altifigence.xls.error.v1物件寫入標準輸出。請讀取其代碼與訊息:

alti xls artifact show --project "$PROJECT" "$ID" > "$WORK/show.json" || true
jq -r '.error.code + ": " + .error.message' "$WORK/show.json"

CLI會在標準錯誤中以error:前綴回報XLS artifact id must be 64 lowercase hexadecimal characters,並在執行引擎前以結束狀態1結束。請在標準錯誤中讀取此訊息。請原封不動複製store的id,或list中ids的值。

若出現artifact-not-found: XLS store does not exist,請傳入與store相同的--project。

若show出現artifact-io: cannot access local XLS artifact store,請以相同的--project執行list,並使用ids中的ID。

若出現resource-limit: store listing exceeds 256 entries; use artifact-show with a known id,請以show和store所儲存的ID重新開啟結果。

使用原生XLS檢查、求值及產生RTL