範例
在庫中找到可運行 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.sio、examples/kernel_vec_add.sio和examples/kernel_matmul.sio是目前公開的 GPU 路徑範例。tests/run-pass/和tests/compile-fail/是您在文檔化接受和拒絕語言行為時應該查看的地方。tests/stdlib/是fmri、darwin_pbpk、nn、onn、qnn、snn、spnn、quantnn和math等領域路徑證明自己的地方。docs/research/vancomycin-uncertainty.md將其中最重要的公開範例與更長的敘事聯繫起來。
文檔指導
- 當展示範例時,說明它是從樹中讀取、使用
souc check檢查還是完整執行。 - 當做出強大聲明時,偏好與當前 gate artifact 對齊的範例。
- 如果範例依賴 GPU、LLVM、LSP 或其他受限後端,請明確說明依賴關係。