昇腾社区首页
中文
注册
开发者
下载

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

表1 LLM-DataDist接口

接口名称

简介

LLMDataDist构造函数

构造LLMDataDist。

init

初始化LLMDataDist。

finalize

释放LLMDataDist。

link_clusters

单边建链,由Client单侧发起建链。是Client还是Server与角色prompt或者decoder无关。设置listen_ip_info标识端口监听,即为Server端。

unlink_clusters

单边断链,可以由Client单侧发起,通知Server进行断链;也可以Client和Server均发起强制断链,只清理本地链路。

switch_role

切换当前LLMDataDist的角色,同时可通过配置switch_options切换Client或者Server。

link

双边建链场景下,调用此接口通过建立通信域方式建链。

unlink

双边建链场景下,调用此接口进行断链。

query_register_mem_status

双边建链场景下,调用此接口查询注册内存状态。

cache_manager

获取CacheManager实例。

LLMConfig

表2 LLMConfig接口

接口名称

简介

LLMConfig构造函数

构造LLMConfig。

generate_options

生成配置项字典。

device_id

设置当前进程Device ID,对应底层ge.exec.deviceId配置项。

sync_kv_timeout

配置拉取kv等接口超时时间,对应底层llm.SyncKvCacheWaitTime配置项。

ge_options

配置额外的GE配置项。

listen_ip_info

PROMPT侧设置集群侦听信息,对应底层llm.listenIpInfo配置项。

enable_cache_manager

配置是否开启CacheManager模式,对应底层llm.EnableCacheManager配置项。需配置为True。

mem_pool_cfg

在开启CacheManager场景下,配置内存池相关配置项。

host_mem_pool_cfg

在开启CacheManager场景下,配置Host内存池相关配置项。

enable_remote_cache_accessible

在开启CacheManager场景下,配置是否开启远端Cache可直接访问功能。

rdma_traffic_class

在开启CacheManager场景下,用于配置RDMA网卡的traffic class。

rdma_service_level

在开启CacheManager场景下,用于配置RDMA网卡的service level。

local_comm_res

在开启CacheManager场景下,用于配置本地通信资源。

link_total_time

用于配置HCCL建链失败的总超时时间。

link_retry_count

用于配置HCCL建链失败的重试次数。

CacheManager

表3 CacheManager接口

接口名称

简介

CacheManager构造函数

介绍CacheManager的构造函数。

allocate_cache

分配Cache,Cache分配成功后,会同时被cache_id与cache_keys引用,只有当这些引用都解除后,cache所占用的资源才会实际释放。

deallocate_cache

释放Cache。

如果该Cache在Allocate时关联了CacheKey,则实际的释放会延后到所有的CacheKey被拉取或执行了remove_cache_key

remove_cache_key

移除CacheKey。

移除CacheKey后,该Cache将无法再被pull_cache拉取。

pull_cache

根据CacheKey,从对应的对端节点拉取到本地Cache。

copy_cache

拷贝Cache。

allocate_blocks_cache

PagedAttention场景下,分配多个blocks的Cache,Cache分配成功后,可通过deallocate_blocks_cache释放内存。

deallocate_blocks_cache

PagedAttention场景下,释放allocate_blocks_cache申请的Cache。

pull_blocks

PagedAttention场景下,根据BlocksCacheKey,通过block列表的方式从对端节点拉取Cache到本地Cache。

copy_blocks

PagedAttention场景下,拷贝block。

swap_blocks

对cpu_cache和npu_cache进行换入换出。

register_cache

注册一个自行申请的内存。

register_blocks_cache

PagedAttention场景下,调用此接口注册一个自行申请的内存。

transfer_cache_async

异步分层传输Cache。

push_blocks

PagedAttention场景下,根据BlocksCacheKey,通过block列表的方式从本地节点推送Cache到远端Cache。

push_cache

根据CacheKey,从本地节点推送Cache到远端Cache。

remap_registered_memory

大模型推理过程中,如果发生内存UCE故障,即返回错误码ACL_ERROR_RT_DEVICE_MEM_ERROR,上层框架需要先判断发生该故障的内存是否为KV Cache内存,如果不是,请参考Ascend Extension for PyTorch 自定义API参考中的torch_npu.npu.restart_device接口的说明获取并修复内存UCE的错误虚拟地址。如果是KV Cache内存,还需要再调用该接口修复注册给网卡的KV Cache内存。

本接口为预留接口,暂不支持。

unregister_cache

解除注册一个自行申请的内存。

Cache

表4 Cache接口

接口名称

简介

Cache构造函数

构造Cache。

cache_id

获取Cache的id。

cache_desc

获取Cache描述。

tensor_addrs

获取Cache的地址。

create_cpu_cache

创建cpu cache。

LLMClusterInfo

表5 LLMClusterInfo接口

接口名称

简介

LLMClusterInfo构造函数

构造LLMClusterInfo。

remote_cluster_id

设置对端集群ID。

append_local_ip_info

添加本地集群IP信息。

append_remote_ip_info

添加远端集群IP信息。

CacheTask

表6 CacheTask

接口名称

简介

CacheTask构造函数

构造CacheTask。

synchronize

等待所有层传输完成,并获取整体执行结果。

get_results

等待所有层传输完成,并获取每个TransferConfig对应执行结果。

其他

表7 其他

接口名称

简介

LLMRole

LLMRole的枚举值。

RegisterMemStatus

RegisterMemStatus的枚举值。

Placement

CacheDesc的字段,表示cache所在的设备类型。

CacheDesc

构造CacheDesc。

MemType

表示地址所在位置,通常作为MemInfo的mem_type参数的类型。

MemInfo

构造MemInfo,通常在CacheManager的remap_registered_memory接口中作为参数类型使用。

CacheKey

构造CacheKey。

CacheKeyByIdAndIndex

构造CacheKeyByIdAndIndex,通常在CacheManager的pull_cachepush_cache接口中作为参数类型使用。

BlocksCacheKey

PagedAttention场景下,构造BlocksCacheKey。

LayerSynchronizer

等待模型指定层执行完成,用户需要继承LayerSynchronizer并实现该接口。

该接口会在执行transfer_cache_async时被调用,当该接口返回成功,则开始当前层cache的传输。

TransferConfig

构造TransferConfig。

TransferWithCacheKeyConfig

构造TransferWithCacheKeyConfig。

LLMException

获取异常的错误码。错误码列表详见LLMStatusCode

LLMStatusCode

LLMStatusCode的枚举值。

DataType

DataType的枚举类。