link
函数功能
在开启CacheManager的场景下,开启方式是在初始化LLMDataDist时设置llm.EnableCacheManager为1,调用此接口通过建立通信域方式建链。
如果要在单机内构造通信域,需要设置hccl_inra_roce_enable=1环境变量。
函数原型
link(comm_name: str, cluster_rank_info: Dict[int, int], rank_table: str) -> int
参数说明
调用示例
from llm_datadist import LLMDataDist, LLMRole, LlmConfig device_id = 0 llm_datadist = LLMDataDist(LLMRole.PROMPT, 1) options = { "ge.exec.deviceId": str(device_id), "llm.MemPoolConfig": "{\"memory_size\": 1073741824}" } llm_config = LlmConfig() llm_config.enable_cache_manager = True options.update(llm_config.generate_options()) llm_datadist.init(options) rank_table = """ { "server_count": "2", "server_list": [ { "device": [ { "device_id": "0", "device_ip": "x.x.x.x", "rank_id": "0" }, ], "server_id": "xxxx" },{ "device": [ { "device_id": "0", "device_ip": "x.x.x.x", "rank_id": "1" }, ], "server_id": "xxxx" } ], "status": "completed", "version": "1.0" }""" comm_id = llm_datadist.link("comm1", {1: 0, 2: 1}, rank_table) print("init link suc:", comm_id)
返回值
返回标识通信域的ID。
约束说明
- 需要开启CacheManager模式。
- 需要通信域内所有集群同时发起。
- 通信域内节点数量最大支持4。
- 通信域数量建议不超过16,最大支持512。建链数量过多存在内存oom及kvcache传输的性能风险。
- 需要先配置内存池或者先注册内存。
- OS内核版本5.10,EulerOS V2R11以上的环境,最大注册50GB的Device内存。注册内存越大,占用的OS内存越多。
父主题: LLMDataDist