亮网络解锁器,解锁网络数据的无限可能 了解详情
写点什么

零拷贝技术升级,V6D 让数据传输更高效

  • 2023-04-27
    北京
  • 本文字数:1512 字

    阅读完需:约 5 分钟

零拷贝技术升级,V6D让数据传输更高效

零拷贝和内存数据管理器Vineyard(v6d) 最近发布了0.13.2版本,为 Python/C++开发和 Kubernetes 部署带来了改进的功能。它是作为CNCF沙箱项目来进行维护的,并提供了分布式操作符,可用于在集群节点内或跨集群节点共享不可变数据。V6d 特别适用于大型(分片)数据集上(例如大语言和图模型)的深度网络训练。它的开发目前由阿里巴巴的一个工程团队领导。

 

零拷贝内存数据分布是许多实时应用程序的核心问题。从图像处理管道到深度学习模型,如 LLM 和图挖掘算法等,许多数据处理应用程序都需要从许多独立的进程中获取大量数据。在机器学习工程中,随着深度网络变得越来越大,模型参数的分布要求访问共享状态和数据,这一瓶颈变得越来越明显了。作为一个早期项目,V6d 旨在为此类用例提供一个高级 API。

 

实时应用程序的架构通常利用内存中的键-值存储/缓存(例如 etcd、Memcached、Redis)来存储和交换频繁访问的数据。根据服务类型,工程团队必须考虑这些工具带来的相关权衡。V6d 由两个主要组件组成:Apache Arrow Plasma派生共享内存数据管理器(在一个节点内)和由etcd支持的元数据服务器(在不同节点之间)。虽然 Plasma 派生服务允许零拷贝数据传输,但 etcd 服务处理数据属性的全局分布(可能是分区的)。

 

V6d 将自己置于 Python 社区中。在某种程度上,可以考虑将 Python 原生的多进程shared_memory扩展到多台机器,以实现不可变的 blob。V6d 提供了两个不同的 Python 客户端接口IPCClientRPCClient,分别用于操作本地和远程对象。两个客户端 API 都允许基于对象 ID 的统一数据插入和检索模式。然而,v6d不会在集群节点之间自动移动数据,除非被指示这样做,因为这种操作的高网络成本很高。

 

我们可以提供了一个可以在本地机器上运行的简单示例,让我们先从创建本地 v6d 实例开始:

 

python -m vineyard --socket /tmp/vineyard.sock --size 16733650944
复制代码

 

作为第一步,让我们展示如何利用 Python 的原生 API。为此,我们将使用 NumPy 创建一个 10k 分辨率的虚拟 RGB 图像,并使用 shared_memory()接口来快速共享它:

 

import numpy as npfrom multiprocessing import shared_memoryshape_, dtype_ = (3, 10000, 10000), np.uint8array_to_share = np.random.randint(0, high=255, size=shape_, dtype=dtype_)#创建共享内存shm = shared_memory.SharedMemory(create=True, size=array_to_share.nbytes)array_shm = np.ndarray(shape_, dtype=array_to_share.dtype, buffer=shm.buf)array_shm[:] = array_to_share[:] # Here we need to copy as we use existing array# 在另一个过程中使用共享内存名称、大小和类型信息来检索数据existing_shm = shared_memory.SharedMemory(name=shm.name)array_retrieved = np.ndarray(shape=shape_, dtype=dtype_, buffer=existing_shm.buf)

复制代码

 

在这里,我们可以使用 v6d 执行相同的操作:

 

import vineyardclient = vineyard.connect('/tmp/vineyard.sock')array_id = client.put(array_to_share)# 在另一个进程中检索之前的array_to_sharearray_retrieved = client.get(array_id)
复制代码

 

如上所示,该 API 非常易于使用,并将数据类型和数组形状传播到检索到的对象中。由于是通用数组协议(又名缓冲协议),NumPy 接口还接受对 PyTorch、TensorFlow 和 MxNet 张量的零拷贝操作。除此之外,v6d 在 Pandas/Arrow 数据框架上进行了相同的操作。有关该库集成的更多详细信息,请访问相关的文档页面。 也可以在网页中找到机器学习培训教程的示例。

 

对于多节点设置,V6d 允许通过Python APIHelm图表在 Kubernetes 集群上部署 vineyard 操作。官方文档中还提供了更详细的架构概述。


原文链接:

https://www.infoq.com/news/2023/03/zero-copy-v6d/


相关阅读:

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2023-04-27 08:002302

评论

发布
暂无评论
发现更多内容

Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架

Apache Flink

大数据 flink 实时计算

【新手升级必看】从 TiDB v6.5升级到 v7.5 的实践步骤

TiDB 社区干货传送门

版本升级

【资源汇总】TiDB-TiCDC 源码解读系列最全资源!!!

TiDB 社区干货传送门

TiDB v7.5.0 vs Oceanbase v4.2.1.1 : online ddl 吐血验证测试

TiDB 社区干货传送门

QCN9024|Wallys DR9074-TRIBAND Now Supported by ATH11K for Enhanced Linux Compatibility!

wallyslilly

QCN9074 QCN9024

AI数字人互动大屏支持多种场景交互!

青否数字人

我们不可能永远都在救火 ——Scrum中技术债务“偿还”指南

敏捷开发

项目管理 Scrum 敏捷开发 自动化测试 技术债务

软件测试/测试开发丨常用测试策略与测试手段

测试人

软件测试 测试开发

“Ladies In Tech 闪闪发光的她”分论坛圆满举办

开放原子开源基金会

开源

数字时代B2B订货平台,助力渠道业绩持续增长

赛博威科技

赛博威 经销商管理 订货平台

网站遇到DDOS攻击该怎么解决?

德迅云安全杨德俊

安全 DDoS 网站优化 #web

业务全面重塑,“人”要如何重塑?

用友BIP

人才管理

【教程】使用ipagurd打包与混淆Cocos2d-x的Lua脚本

雪奈椰子

记三次升级 TiDB 集群到 v6.1.5 遇到的案例分析过程&升级收益

TiDB 社区干货传送门

版本升级 管理与运维 6.x 实践

技术写作与内容研究:主题得分、关键词搜索量、社区和论坛策略

小万哥

程序人生 后端开发 技术写作 关键词搜索 社区和论坛

软件测试/测试开发丨Bug生命周期

测试人

软件测试 测试开发

软件测试/测试开发|如何使用因果图法设计测试用例?

霍格沃兹测试开发学社

杭州悦数成立「悦数图技术陆家嘴数据智能研究院」入驻上海「双城辉映」平台

悦数图数据库

图数据库

TiDB在银行业核心系统POC测试应用压测参考手册

TiDB 社区干货传送门

性能调优 性能测评 数据库架构设计 应用适配 OLTP 场景实践

Ubuntu 22.04上安装NFS服务教程。

百度搜索:蓝易云

云计算 Linux ubuntu 运维 NFS

AI数字人互动大屏赋能哪些行业?

青否数字人

数字人

软件测试/测试开发|如何解决pip下载速度慢的问题

霍格沃兹测试开发学社

PON网络应用场景

小齐写代码

半岛铁盒推出22.5W超级快充充电宝:双线快充,超能补量

科技热闻

Git:Rebase和Merge之间的区别

百度搜索:蓝易云

Linux Rebase 云服务器 NFS merge

文心一言专业版年卡来啦!

飞桨PaddlePaddle

人工智能 文心一言

如何使用不同的纹理贴图制作逼真的 3D 图形?

3D建模设计

3D渲染 材质纹理贴图 3D材质编辑

软件测试/测试开发丨Bug概念,定义,判定标准,严重程度,优先级

测试人

软件测试 测试开发

SecGPT:全球首个网络安全开源大模型

云起无垠

软件测试/测试开发|如何使用场景法设计测试用例?

霍格沃兹测试开发学社

基于Flink SQL 和 Paimon 构建流式湖仓新方案

Apache Flink

大数据 flink 实时计算

零拷贝技术升级,V6D让数据传输更高效_大数据_Sabri Bolkar_InfoQ精选文章