呢一頁仲未翻譯。英文版本為準。 睇英文版 →

範例

在庫中找到可運行 Sounio 程式碼的位置。

範例

範例只有在讀者知道哪些可以信任時才有用。在 Sounio 中,這意味著將入門資料、證據性測試、領域固定資料和探索性目錄分開,而不是將 examples/ 下的所有內容視為同等權威。

信任順序

  • tests/run-pass/tests/compile-fail/ 是語言層面行為的最強來源。
  • tests/stdlib/ 和相應的 artifacts 是 stdlib 和科學路徑的主張的最強來源。
  • examples/ 對於入門和瀏覽想法很有價值,但其中一些路徑可能是探索性的或後端依賴的。
  • self-hosted/ 是編譯實現示例和驗證表面的所在,不是終端用戶程式。

可onical 公開範例

export SOUC_BIN="$(pwd)/bin/souc"
export SOUNIO_STDLIB_PATH="$(pwd)/stdlib"

"$SOUC_BIN" check examples/hello.sio
"$SOUC_BIN" check tests/run-pass/covid_2020_kernel.sio
"$SOUC_BIN" check tests/run-pass/vancomycin_propagation.sio
"$SOUC_BIN" check tests/compile-fail/vancomycin_low_conf.sio

自托管的 GPU artifact-template 範例

預設的自托管編譯器編譯 GPU 語法並讓 kretikos 產生預定義的 artifact templates:

# 在自托管的編譯器上檢查 GPU 語法
bin/souc check examples/kernel_source_level.sio

# 產生預定義的 PTX 模板(自托管的,無需 GPU)
kretikos emit-ptx vec_add     -o /tmp/kernel.ptx
kretikos emit-ptx vec_sub     -o /tmp/kernel.ptx
kretikos emit-ptx vec_mul     -o /tmp/kernel.ptx
kretikos emit-ptx vec_div     -o /tmp/kernel.ptx
kretikos emit-ptx vec_add_f64 -o /tmp/kernel.ptx
kretikos emit-ptx fma         -o /tmp/kernel.ptx
kretikos emit-ptx fma_f64     -o /tmp/kernel.ptx
kretikos emit-ptx store_u32_const -o /tmp/kernel.ptx

# 產生預定義的 Metal/MSL 模板(自托管的,無需 macOS)
kretikos emit-metal vec_add          -o /tmp/kernel.metal
kretikos emit-metal ossm_oct_step    -o /tmp/kernel.metal
kretikos emit-metal sedenion_cd_step -o /tmp/kernel.metal

# 產生預定義的 vec_add_f32 CUBIN 模板
kretikos emit-cubin vec_add_f32 -o /tmp/kernel.cubin

# 產生 PTX+CUBIN 加上結構化捆绑主體
kretikos bundle -o /tmp/kretikos-bundle

# 在 CUDA 主機上,向主體添加選項工具鏈/運行時驗證
kretikos bundle -o /tmp/kretikos-validated-bundle --validate-toolchain --validate-runtime

GPU artifact 範例(更廣泛的模式支持)

分離的 GPU artifact 支援更多的 kernel 模式:

export SOUC_GPU_BIN="$(pwd)/artifacts/omega/souc-bin/souc-linux-x86_64-gpu"
export SOUNIO_STDLIB_PATH="$(pwd)/stdlib"

"$SOUC_GPU_BIN" check examples/gpu.sio
"$SOUC_GPU_BIN" check examples/kernel_vec_add.sio
"$SOUC_GPU_BIN" check tests/run-pass/gpu_launch_surface.sio
"$SOUC_GPU_BIN" build examples/kernel_matmul.sio --backend gpu -o /tmp/kernel_matmul.ptx

高價值目錄

  • examples/io/examples/effects/examples/epistemic/ 是放置小型教學程式的好地方。
  • examples/gpu.sioexamples/kernel_vec_add.sioexamples/kernel_matmul.sio 是目前公開的 GPU 路徑範例。
  • tests/run-pass/tests/compile-fail/ 是您在文檔化接受和拒絕語言行為時應該查看的地方。
  • tests/stdlib/fmridarwin_pbpknnonnqnnsnnspnnquantnnmath 等領域路徑證明自己的地方。
  • docs/research/vancomycin-uncertainty.md 將其中最重要的公開範例與更長的敘事聯繫起來。

文檔指導

  • 當展示範例時,說明它是從樹中讀取、使用 souc check 檢查還是完整執行。
  • 當做出強大聲明時,偏好與當前 gate artifact 對齊的範例。
  • 如果範例依賴 GPU、LLVM、LSP 或其他受限後端,請明確說明依賴關係。