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