CLI 첫 실행
간단한 XLS 요청을 CPU에서 평가하고, 필요하면 오프라인 작업 요청과 소스 범위를 검증하세요.
개요
먼저 검증과 설치를 완료하세요. 아래 명령은 설치된 PREFIX/bin의 alti를 사용합니다. root가 아닌 일반 사용자로 실행하세요.
간단한 CPU XLS 평가 실행
이 요청은 8비트 값 두 개를 더합니다. 제한된 네이티브 XLS 엔진을 사용하며 Google 도구 모음, GPU, Cloud 세션이 필요하지 않습니다. 오버플로도 결과에서 확인할 수 있습니다.
alti capabilities
alti xls eval --request - <<'JSON'
{
"schema": "altifigence.xls.operation-request.v1",
"operation": "eval",
"input_kind": "xls-ir",
"source": "package demo\ntop fn compute(x: bits[8], y: bits[8]) -> bits[8] { ret sum: bits[8] = add(x, y) }",
"top": "compute",
"backend": "cpu",
"vectors": [["255", "1"], ["0x10", "0b11"]]
}
JSON
종료 코드 0과 두 벡터의 엔진 결과 bits[8]:0x0, bits[8]:0x13을 확인하세요. 이 결과는 해당 입력이 평가됐다는 사실만 증명합니다. 더 넓은 DSLX 언어 지원은 별도의 Google XLS 경로를 사용하세요.
선택적인 오프라인 작업 사전 검사
다음 흐름은 액션 manifest를 읽고 작업 요청과 로컬 소스 파일 하나를 검증합니다. 자격 증명 읽기, 서버 연결, 소스 업로드, 작업 제출, RTL 엔진 실행은 수행하지 않습니다. 영수증은 로컬 검증만 설명하며 제출과 서버 권한은 false로 유지됩니다.
1. 제공된 액션 매니페스트 확인
alti commands
성공하면 stdout에 JSON 배열 하나를 쓰고 stderr에는 아무것도 쓰지 않습니다. 각 항목에는 name, description, inputSchema, executes, class가 있습니다. 현재 공개 CLI는 25개 항목을 반환합니다. executes는 실행형 액션인지 나타낼 뿐이며 실제 명령에는 로컬 엔진, 계정 권한, 호스팅 서비스가 필요할 수 있습니다.
2. 로컬 소스 준비
현재 사용자 소유 작업 디렉터리에 비공개 워크스페이스를 만드세요.
ALTI_WORKSPACE="$(mktemp -d -p "$PWD" alti-first-success.XXXXXX)"
mkdir -p "$ALTI_WORKSPACE/inputs/rtl"
이 무해한 소스를 $ALTI_WORKSPACE/inputs/rtl/top.sv로 저장:
module top(input logic clock, output logic value);
always_ff @(posedge clock) value <= ~value;
endmodule
소스를 소유자만 읽을 수 있도록 작성합니다:
chmod 600 "$ALTI_WORKSPACE/inputs/rtl/top.sv"
사전 검사은 작업공간 외부에 있거나, 두 번 이상 연결되었거나, 현재 사용자가 소유하지 않았거나, 그룹 또는 다른 사용자가 쓸 수 있는 소스를 거부합니다. 권한 검사를 완화하지 마세요.
$ALTI_WORKSPACE/job.json로 다음 저장:
{
"schema": "altifigence.engine.job.v1",
"job_id": "offline-job-1",
"operation": {
"engine_id": "rtl-engine",
"operation_id": "analyze",
"contract_id": "rtl-analysis-request.v1"
},
"execution_placement": "cloud",
"device_preference": {
"selection": { "mode": "class", "value": "cpu" },
"fallback": "deny"
},
"resources": {
"cpu_slots": 1,
"memory_bytes": 536870912,
"device_slots": 0,
"device_memory_bytes": 0,
"max_wall_time_ms": 30000
},
"inputs": [
{
"artifact_id": "rtl-source-bundle",
"role": "source_bundle",
"artifact_schema": "rtl-source-bundle.v1",
"uri": "workspace://inputs/placeholder",
"sha256": "0000000000000000000000000000000000000000000000000000000000000000"
}
],
"cancellation": { "cancellation_id": "cancel-offline-job-1" }
}
클라이언트는 메모리에서 검증용 사본을 만든 뒤, 자리표시자 URI와 다이제스트를 선택한 소스의 작업공간 상대 경로와 계산한 SHA-256으로 바꿉니다.
3. 오프라인 리시트 생성
alti --json job validate \
--job "$ALTI_WORKSPACE/job.json" \
--workspace-root "$ALTI_WORKSPACE" \
--source rtl/top.sv
성공적인 결과는이 계약으로 stdout에서 하나의 JSON 객체입니다.
필드 | 필요한 통역 |
|---|---|
|
|
|
|
|
|
|
|
| 로컬에서 확인된 엔벌로프 ID |
| 엔벌로프에 요청된 배치, 제출의 결과 기록이 아닙니다. |
| 정규화된 작업공간 상대 소스 URI |
| 로컬에서 계산한 소스 해시와 크기 |
종료 상태 0는 이 클라이언트가 사전 검사를 통과했음을 의미합니다. 이는 컴파일된 소스, 서버가 작업을 수락했거나 작업이 실행되었음을 의미하지 않습니다.
실패 출력과 종료 상태
--json에서 유효성 검사 실패는 stdout에 성공 리시트를 기록하지 않고 하나의 altifigence.cli.error.v1 개체를 stderr에 기록합니다. 예를 들어, 형식이 잘못된 작업 JSON는 retryable: false로 ENGINE_JOB_JSON_INVALID를 생성하고 상태 1로 종료합니다.
manifest 확인 및 오프라인 사전 검사:
종료 상태 | 의미 |
|---|---|
| 매니페스트가 인쇄되었거나 오프라인 클라이언트 사전 검사이 통과되었습니다. |
| 레지스트리, I/O, 소스 범위 또는 작업 검증 실패 |
| 명령줄 구문 또는 인수 파싱 실패 |
다른 alti 명령은 이 표에 없는 종료 상태도 사용합니다. 3은 CLASS_NOT_ALLOWED, 4는 dispatch 전에 거부된 요청입니다. 이번 릴리스에서 alti whoami와 alti login은 4를 반환합니다. 엔진 명령은 엔진의 종료 상태를 그대로 전달하며 시작할 수 없으면 126, 찾을 수 없으면 127을 반환합니다. 위 두 명령 외에 다른 명령을 스크립트에서 사용한다면 명령 레퍼런스의 전체 규칙을 확인하고 기본적으로 0이 아닌 값을 실패로 처리하세요.
stdout과 stderr를 분리하고 영수증을 파싱하기 전에 종료 상태를 확인하세요. 명시적인 실행이나 제출은 엔진 및 Cloud 명령 페이지를 참조하세요. 오프라인 사전 검사의 부수 효과로 실행되거나 제출되지는 않습니다.
다음 작업 선택
두 벡터의 CPU 결과를 빠른 설치 확인용으로 보관하세요. 자신의 설계를 평가할 때는 입력을 하나씩 바꾸고 전체 요청·결과를 보관합니다. 더 넓은 언어 기능은 별도 Google XLS 경로, CUDA 실행은 명시적 백엔드 선택·사용 가능한 장치가 필요할 수 있습니다.
그래픽 RTL 작업은 DDS 첫 RTL 실행, 스크립트는 엔진 명령으로 이어가세요. 원격 저장 파일은 native Cloud 인증 후 올바른 조직·프로젝트를 선택합니다.