# 环境变量与编译选项 Triton-distributed-ascend 环境变量与编译选项均来自 **Triton Ascend** 与 **shmem(aclshmem)**,开发 Triton 算子时可直接使用,详细清单见对应官方文档: - **Triton Ascend**:调试/日志、编译控制、运行/调度等环境变量,见 [Triton Ascend 环境变量与编译选项参考](https://triton-ascend.readthedocs.io/zh-cn/latest/environment_variable_and_compiler_options_reference.html)。 - **shmem(aclshmem)**:初始化、日志、多实例、Profiling 等环境变量,见 [shmem 日志与调试文档](https://shmem-doc.pages.dev/debug/log_debug)。 ## 环境变量 Triton-distributed-ascend 的环境变量分为以下两类: - **运行时环境变量**:程序运行期间设置。 - **构建期环境变量**:编译安装 Python 包(`pip install -e ./python`)时生效的构建配置,由本项目构建流程使用;详细的构建步骤与前置依赖(CANN、torch_npu、LLVM)见 [README.md](../../../../README.md) 与 [build.md](../../../build.md)。 ### 环境变量用法示例 环境变量需在运行 Python 程序前设置,例如: ``` export SHMEM_UID_SESSION_ID=192.168.1.100:1234 python run_distributed_kernel.py ``` ## 编译选项 编译选项用于控制单个 Triton kernel 的编译策略,可通过 kernel launch 时传入的 meta-parameter、`triton.Config` 或 Autotune 参数传入。 ### 编译选项用法示例 本项目 Ascend 侧通过 `triton_dist.language`(`dl`)的分布式原语在 kernel 内控制通信行为,例如: ```python import triton import triton.language as tl import triton_dist.language as dl from triton.language.extra.cann.extension import sub_vec_id @triton.jit def notify_kernel(signal_ptr, rank): if sub_vec_id() == 0: # 向 rank 0 发送信号通知:set 1 dl.notify( signal_ptr, 0, signal=1, sig_op="set", comm_scope="intra_node", ) @triton.jit def wait_kernel(signal_ptr, world_size): if sub_vec_id() == 0: # 等待所有其他 rank 的通知(barrier 按 64 字节步长扫描) token = dl.wait( signal_ptr, world_size - 1, scope="gpu", _semantic="acquire", waitValue=1, ) data_ptr = dl.consume_token(signal_ptr, token) ``` ### 编译选项说明 Triton distributed Ascend kernel 的 NPU 编译选项(通过 `triton.Config` / launch meta-parameter 传入)由 **Triton Ascend** 定义,开发 Triton 算子时可直接使用,详细清单见 [Triton Ascend 环境变量与编译选项参考](https://triton-ascend.readthedocs.io/zh-cn/latest/environment_variable_and_compiler_options_reference.html)。 ---