跳转至

灵犀指令集 启动入门

本指南是贡献者加入 灵犀指令集 启动工作区的入口点。

当前 ISA 的机器可读权威源是 isa/v0.58/linxisa-v0.58.json

1.先决条件

平台说明

  • Linux:支持(推荐)。
  • macOS:支持大多数编译器/模拟器/工具工作。
  • Windows
  • 通过 WSL2 支持(推荐),
  • 本机 Windows 可用于编辑 + 一些工具,但大多数门都需要 POSIX shell。

必填

  • git
  • python3
  • 用于运行 *.sh 门的 POSIX shell(Linux/macOS 或 Windows+WSL2)
  • clang + ld.lld 用于 灵犀 交叉构建(来自固定的 LLVM 子模块构建或外部工具链)

推荐

  • gh(GitHub CLI)

2. 克隆子模块

git clone git@github.com:LinxISA/linx-isa.git
cd linx-isa
git submodule sync -- compiler/llvm
git submodule update --init compiler/llvm

子模块图:

  • compiler/llvm -> LinxISA/llvm-project
  • emulator/qemu -> LinxISA/qemu
  • kernel/linux -> LinxISA/linux
  • rtl/LinxCore -> LinxISA/LinxCore
  • tools/pyCircuit -> LinxISA/pyCircuit
  • lib/glibc -> LinxISA/glibc
  • lib/musl -> LinxISA/musl
  • tools/Linx-TileOP-API -> LinxISA/Linx-TileOP-APIlinx 分支)
  • workloads/pto_kernels -> PTO-ISA/pto-kernels

3. 验证基线

从仓库根目录:

bash tools/regression/run.sh

可选覆盖:

# Tool paths can come from:
# - pinned submodules (recommended for reproducibility)
# - external installs (recommended for day-to-day dev if you already have them)
#
# If you built the pinned submodules:
export CLANG=$PWD/compiler/llvm/build-linxisa-clang/bin/clang
export LLD=$PWD/compiler/llvm/build-linxisa-clang/bin/ld.lld
export QEMU=$PWD/emulator/qemu/build/qemu-system-linx64

# Or point to external toolchains:
# export CLANG=/path/to/clang
# export LLD=/path/to/ld.lld
# export QEMU=/path/to/qemu-system-linx64

bash tools/regression/run.sh

运行合约门:

python3 tools/bringup/check_avs_contract.py --matrix avs/linx_avs_v1_test_matrix.yaml
python3 tools/bringup/check_avs_profile_closure.py --matrix avs/linx_avs_v1_test_matrix.yaml --status avs/linx_avs_v1_test_matrix_status.json --tier pr

4.日常工作流程

  1. docs/bringup/phases/ 下选择示波器。
  2. 首先在相关子模块/repo 中实现。
  3. 在本地运行 AVS + 回归门。
  4. 合并生态系统存储库中的上游。
  5. 修改 linx-isa 中的子模块 SHA。

叶子仓修改完成、合入并验证后,只更新对应的固定 gitlink:

git -C compiler/llvm fetch origin <reviewed-commit>
git -C compiler/llvm checkout --detach <reviewed-commit>
git add compiler/llvm
git commit -m "chore(submodules): bump llvm revision"

Agent 工作流不得使用未固定提交的远端更新。

5. 规范路径- AVS 运行时测试:avs/qemu/

  • AVS编译测试:avs/compiler/linx-llvm/tests/
  • AVS 使用的独立 libc 支持:avs/runtime/freestanding/
  • Linux libc 源代码分支:lib/glibc/lib/musl/
  • Linx TileOP API 头文件:tools/Linx-TileOP-API/include/
  • PTO kernels 和 SuperNPU 工作负载:workloads/pto_kernels/
  • 组装样品包:docs/zh/reference/examples/README.md

6. 协调参考

  • 调出进度:docs/bringup/PROGRESS.md
  • 合约检查点:docs/bringup/AVS_CONTRACT.md
  • 渲染用户空间启动:docs/bringup/rendering_vulkan_bringup.md
  • 规范门注册表:docs/bringup/gate_registry.json
  • 导航指南:docs/project/navigation.md