代码拉取完成,页面将自动刷新
功能:通过LLM-DataDist接口实现分离部署场景下KvCache的管理功能。
目录名称 | 功能描述 |
---|---|
basic_api_samples | LLM-DataDist基础接口样例 |
multiple_device_samples | LLM-DataDist单进程多卡样例 |
cache_manager_api_samples | LLM-DataDist cache manager接口样例 |
代码中使用了torchair将kv_cache的tensor地址转为torch tensor并赋值,所以需要安装torch_npu相关包。
以下所有用例运行均需正确设置Ascend环境变量,所有双机示例需尽量保证同步执行。
运行basic_api_samples样例:
执行前准备:
for i in {0..7}; do hccn_tool -i $i -ip -g; done
执行样例程序:
分别在Prompt主机与Decoder主机,执行prompt.py与decoder.py,执行样例程序, 其他样例只需要替换程序中对应的py即可:
# Prompt主机:
python prompt.py
# Decoder主机:
python decoder.py
如果需要使用多卡,则需分别拉起多个进程执行,并提供rank_id参数,以分别使用2个device为例:
# Prompt主机:
python prompt.py --rank_id=0 > prompt.log.0 2>&1 &
python prompt.py --rank_id=1 > prompt.log.1 2>&1 &
# Decoder主机:
python decoder.py --rank_id=0 > decoder.log.0 2>&1 &
python decoder.py --rank_id=1 > decoder.log.1 2>&1 &
运行multiple_device_samples样例:
执行前准备:
本样例在一个机器上启动两个进程,前4卡作为Prompt, 后4卡作为Decoder, 首先配置numa_config.json和numa_config_1.json中的ipaddr为对应卡的真实IP。
执行样例程序:
python pull_cache_multiple_devices_sample.py --cluster_id 1
python pull_cache_multiple_devices_sample.py --cluster_id 2
运行cache_manager_api_samples样例:
for i in {0..7}; do hccn_tool -i $i -ip -g; done
# Prompt主机:
python pull_cache_sample.py --device_id 0 --cluster_id 1
# Decoder主机:
python pull_cache_sample.py --device_id 0 --cluster_id 2
# Prompt主机:
python pull_blocks_sample.py --device_id 0 --cluster_id 1
# Decoder主机:
python pull_blocks_sample.py --device_id 0 --cluster_id 2
# Prompt主机:
python pull_from_cache_to_blocks.py --device_id 0 --cluster_id 1
# Decoder主机:
python pull_from_cache_to_blocks.py --device_id 0 --cluster_id 2
# Prompt主机:
LOCAL_COMM_RES='{"status": "completed", "version": "1.0", "server_list": [{"server_id": "node_1", "device": [{"device_id": "0", "device_ip": "10.10.10.1"}]}]}' GLOO_SOCKET_IFNAME=enp67s0f5 HCCL_INTRA_ROCE_ENABLE=1 python switch_role_sample.py --device_id 0 --role p --local_host_ip 10.170.10 --remote_host_ip 10.170.10
# Decoder主机:
LOCAL_COMM_RES='{"status": "completed", "version": "1.0", "server_list": [{"server_id": "node_1", "device": [{"device_id": "1", "device_ip": "10.10.10.2"}]}]}' GLOO_SOCKET_IFNAME=enp67s0f5 HCCL_INTRA_ROCE_ENABLE=1 python switch_role_sample.py --device_id 1 --role d --local_host_ip 10.170.10 --remote_host_ip 10.170.10
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。