LLM-DataDist接口列表
LLM-DataDist:大模型分布式集群和数据加速组件,提供了集群KV数据管理能力,以支持全量图和增量图分离部署。
- 支持的产品形态如下:
Atlas 800I A2 推理产品 /A200I A2 Box 异构组件。Atlas A3 训练系列产品 /Atlas A3 推理系列产品 ,该场景下采用HCCS传输协议时,不支持Host内存作为远端Cache。
- 当前仅支持Python3.9与Python3.11。安装方法请参考Python官网https://www.python.org/。
- 最大注册50GB的Device内存,20GB的Host内存。注册内存越大,占用的OS内存越多。
LLM-DataDist接口列表如下。
LLM-DataDist
接口名称 |
简介 |
---|---|
构造LLMDataDist。 |
|
初始化LLMDataDist。 |
|
释放LLMDataDist。 |
|
单边建链,由Client单侧发起建链。是Client还是Server与角色prompt或者decoder无关。设置listen_ip_info标识端口监听,即为Server端。 |
|
单边断链,可以由Client单侧发起,通知Server进行断链;也可以Client和Server均发起强制断链,只清理本地链路。 |
|
切换当前LLMDataDist的角色,同时可通过配置switch_options切换Client或者Server。 |
|
双边建链场景下,调用此接口通过建立通信域方式建链。 |
|
双边建链场景下,调用此接口进行断链。 |
|
双边建链场景下,调用此接口查询注册内存状态。 |
|
获取CacheManager实例。 |
LLMConfig
接口名称 |
简介 |
---|---|
构造LLMConfig。 |
|
生成配置项字典。 |
|
设置当前进程Device ID,对应底层ge.exec.deviceId配置项。 |
|
配置拉取kv等接口超时时间,对应底层llm.SyncKvCacheWaitTime配置项。 |
|
配置额外的GE配置项。 |
|
PROMPT侧设置集群侦听信息,对应底层llm.listenIpInfo配置项。 |
|
配置是否开启CacheManager模式,对应底层llm.EnableCacheManager配置项。需配置为True。 |
|
在开启CacheManager场景下,配置内存池相关配置项。 |
|
在开启CacheManager场景下,配置Host内存池相关配置项。 |
|
在开启CacheManager场景下,配置是否开启远端Cache可直接访问功能。 |
|
在开启CacheManager场景下,用于配置RDMA网卡的traffic class。 |
|
在开启CacheManager场景下,用于配置RDMA网卡的service level。 |
|
在开启CacheManager场景下,用于配置本地通信资源。 |
|
用于配置HCCL建链失败的总超时时间。 |
|
用于配置HCCL建链失败的重试次数。 |
CacheManager
接口名称 |
简介 |
---|---|
介绍CacheManager的构造函数。 |
|
分配Cache,Cache分配成功后,会同时被cache_id与cache_keys引用,只有当这些引用都解除后,cache所占用的资源才会实际释放。 |
|
释放Cache。 如果该Cache在Allocate时关联了CacheKey,则实际的释放会延后到所有的CacheKey被拉取或执行了remove_cache_key。 |
|
移除CacheKey。 移除CacheKey后,该Cache将无法再被pull_cache拉取。 |
|
根据CacheKey,从对应的对端节点拉取到本地Cache。 |
|
拷贝Cache。 |
|
PagedAttention场景下,分配多个blocks的Cache,Cache分配成功后,可通过deallocate_blocks_cache释放内存。 |
|
PagedAttention场景下,释放allocate_blocks_cache申请的Cache。 |
|
PagedAttention场景下,根据BlocksCacheKey,通过block列表的方式从对端节点拉取Cache到本地Cache。 |
|
PagedAttention场景下,拷贝block。 |
|
对cpu_cache和npu_cache进行换入换出。 |
|
注册一个自行申请的内存。 |
|
PagedAttention场景下,调用此接口注册一个自行申请的内存。 |
|
异步分层传输Cache。 |
|
PagedAttention场景下,根据BlocksCacheKey,通过block列表的方式从本地节点推送Cache到远端Cache。 |
|
根据CacheKey,从本地节点推送Cache到远端Cache。 |
|
大模型推理过程中,如果发生内存UCE故障,即返回错误码ACL_ERROR_RT_DEVICE_MEM_ERROR,上层框架需要先判断发生该故障的内存是否为KV Cache内存,如果不是,请参考《Ascend Extension for PyTorch 自定义API参考》中的torch_npu.npu.restart_device接口的说明获取并修复内存UCE的错误虚拟地址。如果是KV Cache内存,还需要再调用该接口修复注册给网卡的KV Cache内存。 本接口为预留接口,暂不支持。 |
|
解除注册一个自行申请的内存。 |
Cache
接口名称 |
简介 |
---|---|
构造Cache。 |
|
获取Cache的id。 |
|
获取Cache描述。 |
|
获取Cache的地址。 |
|
创建cpu cache。 |
LLMClusterInfo
接口名称 |
简介 |
---|---|
构造LLMClusterInfo。 |
|
设置对端集群ID。 |
|
添加本地集群IP信息。 |
|
添加远端集群IP信息。 |
CacheTask
接口名称 |
简介 |
---|---|
构造CacheTask。 |
|
等待所有层传输完成,并获取整体执行结果。 |
|
等待所有层传输完成,并获取每个TransferConfig对应执行结果。 |
其他
接口名称 |
简介 |
---|---|
LLMRole的枚举值。 |
|
RegisterMemStatus的枚举值。 |
|
CacheDesc的字段,表示cache所在的设备类型。 |
|
构造CacheDesc。 |
|
表示地址所在位置,通常作为MemInfo的mem_type参数的类型。 |
|
构造MemInfo,通常在CacheManager的remap_registered_memory接口中作为参数类型使用。 |
|
构造CacheKey。 |
|
构造CacheKeyByIdAndIndex,通常在CacheManager的pull_cache、push_cache接口中作为参数类型使用。 |
|
PagedAttention场景下,构造BlocksCacheKey。 |
|
等待模型指定层执行完成,用户需要继承LayerSynchronizer并实现该接口。 该接口会在执行transfer_cache_async时被调用,当该接口返回成功,则开始当前层cache的传输。 |
|
构造TransferConfig。 |
|
构造TransferWithCacheKeyConfig。 |
|
获取异常的错误码。错误码列表详见LLMStatusCode。 |
|
LLMStatusCode的枚举值。 |
|
DataType的枚举类。 |