附录
附录 A - MUSA 环境变量
目前支持的 MUSA 环境变量如下所示:
| 变量 | 值 | 描述 |
|---|---|---|
| 设备枚举和设备属性 | ||
| MUSA_VISIBLE_DEVICES | 用逗号隔开的 GPU索引序列 | GPU 索引以整数的形式给出。仅索引序列中的 GPU 设备对 MUSA 应用可见,并且这些设备按照序列给出的顺序枚举。如果您给出的序列中有一个索引是无效的,那么只有序列里该无效索引前面的设备对应用可见。例如:MUSA_VISIBLE_DEVICES=2,1,将造成 GPU 0 不可见,而 GPU 2 会排在 GPU 1 前面,并且 app 里的 0 号卡将是 GPU 2。如果MUSA_VISIBLE_DEVICES=0,2,-1,1,将导致 GPU 0 和 GPU 2 可见,而 GPU 1 不可见。说明: MUSA 默认按照性能从高到低排序设备,以便使用最优设备。如果您需要按照 PCIe 总线编号的顺序选择某两个特定的设备,请同时设置 MUSA_DEVICE_ORDER=PCI_BUS_ID。 |
| MUSA_MANAGED_FORCE_DEVICE_ALLOC | 0 或 1 (默认为 0) | 设置为 1 时,驱动将所有托管内存分配在设备显存而不是系统内存中。 |
| MUSA_DEVICE_ORDER | FASTEST_FIRST,PCI_BUS_ID(默认为 FASTEST_FIRST) | FASTEST_FIRST:MUSA 将根据一种简单的算法从快到慢枚举设备。PCI_BUS_ID:驱动按照 PCI 总线顺序 从小到大排列设备。 |
| 任务执行 | ||
| MUSA_LAUNCH_BLOCKING | 0 or 1 (默认为 0) | 指定是否使能异步发起 kernel 的行为。设置为 1 时 不使能,设置为 0 时使能。 |
| 模块加载 | ||
| MUSA_MODULE_LOADING | DEFAULT, LAZY, EAGER | 指定当前程序的模块加载模式。设置为 EAGER 时, 所有来自 fatbin 或 elf 文件的 kernel 将在 muModuleLoad* API 调用时加载。设置为 LAZY 时,加载指定的 kernel 会延迟到用一个 MUfunc 句柄,将 kernel 从 muModuleGetFunction 接口中取出来的时间点。该模式可降低模块初始化加载延迟,减少相关显存的资源消耗。代价是 muModuleGetFunction 接口的延时会更高。DEFAULT 的表现即 EAGER 行为。 |

