介绍
扶摇/Fuyao 是一个开源的服务器无感知计算框架,结合新型硬件DPU(Data Processing Unit),提供了一套适用于节点内外的亚毫秒级中间数据传输方案。
扶摇 继承了Nightcore的IPC方案,并且还实现了另外三种函数间数据传输方案,详见下表:
数据传输方式
适用范围
延迟
对数据大小的限制
说明
IPC
节点内
亚毫秒级
无
利用数据局部性
DRC_OVER_IPC
节点内
亚毫秒级(极速)
无
基于函数间动态创建的RDMA直连通道
Fabric
节点间
毫秒级
有
利用DPU实现节点间无CPU开销数据传递
DRC_OVER_Fabric
节点间
亚毫秒级(极速)
无
基于函数间动态创建的RDMA直连通道
软件架构
项目结构
Fuyao
|---asserts
|---deps
|---examples
|---00
|---01
|---lib
|---base
|---common
|---ipc
|---rdma
|---runtime
|---server
|---utils
|---src
|---dpu
|---agent
|---gateway
|---host
|---engine
|---launcher
|---worker
|---cpp
|---python
安装教程
(推荐)安装要求:
硬件要求: 安装Nvidia BlueField-2 DPU的服务器集群
系统要求: ubuntu 20.04
安装依赖
# 安装verbs依赖库,可能还有一些其他依赖需求,按需安装
sudo apt update
sudo apt install libibverbs-dev
编译项目
(推荐)使用Jetbrains Clion远程部署到安装有DPU的集群进行编译
在服务器上,使用终端编译
git clone --recursive https://gitee.com/anolis/fuyao.git
cd fuyao/
# 创建目录
mkdir /tmp/fuyao
/usr/bin/cmake -DCMAKE_BUILD_TYPE=Debug -B /tmp/fuyao
# 与框架相关
/usr/bin/cmake --build /tmp/fuyao --target gateway engine agent launcher worker_cpp -- -j 8
# 与实验一相关
/usr/bin/cmake --build /tmp/fuyao --target exp01_fn_a exp01_fn_b exp01_fn_c exp01_fn_d exp01_fn_e exp01_fn_f -- -j 8
使用说明
在examples/ 目录下,提供一个测试用例,参考
|