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

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

公众号新闻

作者 | Sabri Bolkar
译者 | 刘雅梦
策划 | 丁晓昀

零拷贝和内存数据管理器 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 客户端接口 IPCClient 和 RPCClient,分别用于操作本地和远程对象。两个客户端 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 API 和 Helm 图表在 Kubernetes 集群上部署 vineyard 操作。官方文档中还提供了更详细的架构概述。

原文链接:

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

声明:本文为 InfoQ 翻译,未经许可禁止转载。

点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

十年“屎山”终重构,但 QQ选用了微软 Teams 放弃的 Electron

开源巨星红帽裁员、瞄准“昂贵”老员工,CEO:最艰难的决定,被裁员工将获得超高额遣散费

ChatGPT写21个程序,16个有漏洞:离取代程序员还远着呢!

华为投入数千人实现自主可控ERP;SpaceX星舰爆炸了,马斯克:祝贺!谷歌合并两大人工智能部门,加速力战ChatGPT|Q资讯

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
自动驾驶,别让数据卡了脖子闺女吃不够的儿童坚果棒全面升级,营养密度/膳食纤维都更高|开团[单车] 为了升级而升级,闪电S-WORKS Tarmac SL7Arm架构升级,v9与v8版本有何差异?【高福利好吗】→ 好食懒做的国度八部门:2025年底IPv6演进技术标准体系基本形成,部分重点方向的技术能力国际领先微软将中国用户数据传输至境外,为什么?GraphPad Prism 如何让数据转化成论文可用的数值和图表?这不,看完直接上手!初识RDMA网络传输技术【科普】想知道伊大毕业生有多成功?让数据来告诉你红毯来了!“大嫂”高叶真空出席,李小冉皱纹抢镜,倪妮白到发光阿娇为什么让陈冠希拍照而不阻止,真相曝光后,让人无语又泪目一次只要0.003美元,比人类便宜20倍!ChatGPT让数据标注者危矣不吃不喝可以,断网坚决不行!!问题是海底电缆的数据传输安全吗?技术革新与产业升级,开启未来能源新范式|真格精酿·新能源圆桌派回顾GraphPad Prism 如何让数据转化成论文可用的数值和图表?学着,导师赞不绝口!别再同环比,这五步让数据分析更深入APA超声波雷达前装标配同比增长超20%,技术升级新周期英伟达新方法入选CVPR 2023:对未知物体的6D姿态追踪和三维重建大模型让数据库行业撕起来了:Databricks和Snowflake让开发者选边站美日要跟台军搞战场情报联网?歼-16D防的就是这一天腾讯PAG动画组件技术,8K内容生产和传输应用实践,xR虚拟拍摄技术探索,影视生产与互联网音视频欧美跨大西洋数据传输困境及混合模式的应对新型芯片,有望彻底改变数据传输蔡天凤头七!现任丈夫及亲友携祭祀品,前往凶案现场为其“招魂”“荷尔蒙”分泌旺盛的女人,有哪些突出“特征”?不妨对照自查【要闻】加快建设更高水平、更高质量的法治政府!市法治政府建设工作领导小组会议今天召开【纽约打卡图鉴】想穿越霓虹吃小食?日本美食节别错过啦~ - 拷贝 - 拷贝大模型让数据库行业先撕起来了,Databricks和Snowflake:开发者们你们现在必须选边站了计算机内核态、用户态和零拷贝技术微软将用户数据传输至境外?确实如此吗?会计师Accountant (General)拿下澳大利亚186DE绿卡签证成功案例,移民方案选得好生活没烦恼!三大“利器”持续升级,锐捷实力参展CHIMA 2023技术盛宴如何让数据驱动制造——到工厂,去找答案!闺女吃不够的儿童坚果棒全面升级,营养密度/膳食纤维都更高(明10点开团)
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。