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资讯

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

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