当前位置: 首页 > article >正文

NVIDIA Dynamo源码编译

Ref

https://github.com/PyO3/maturin

Rust 程序设计语言

代码库:

https://github.com/ai-dynamo/dynamo

https://github.com/ai-dynamo/nixl

dynamo/container/Dockerfile.vllm

相关whl包

官方提供了4个whl包

ai_dynamo # 这个包ubuntu 22.04也可以用,ubuntu 24.04可以直接安装不用重新编译。包含的是sdk部分。绝大多数是Python,少量bin。

ai_dynamo_runtime # 包含llm和runtime部分

ai_dynamo_vllm # VLLM的修改版本,有DynamoNixlConnector作为kv_connector, 还有KvMetrics的发送。apply container/deps/vllm/vllm_v0.7.2-dynamo-kv-disagg-patch.patch to vLLM[v0.7.2] source code

nixl # 通信库

上述包可以直接基于pip install在pypi上下载和安装。但是需要ubuntu 24.04系统。

构建ai_dynamo

Install uv: uv

curl -LsSf https://astral.sh/uv/install.sh | sh

在顶层目录:

uv build --wheel --out-dir /workspace/dist

构建ai_dynamo_runtime

参考https://github.com/ai-dynamo/dynamo/tree/main/lib/bindings/python

下载rust环境:

国内服务器最好设置环境变量,否则rustup-init.sh运行时的下载极其慢:

export RUSTUP_DIST_SERVER='https://mirrors.ustc.edu.cn/rust-static'
export RUSTUP_UPDATE_ROOT='https://mirrors.ustc.edu.cn/rust-static/rustup'
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
wget https://static.rust-lang.org/rustup/rustup-init.sh
./rustup-init.sh

安装依赖:

这里假设你已经有一个Python conda环境,否则可以安装miniconda设置环境,或者按照推荐使用uv环境。

pip install maturin
apt install protobuf-compiler

下载源码:

git clone --recursive https://github.com/ai-dynamo/dynamo.git
git clone --recursive https://github.com/ai-dynamo/nixl.git

在目录dynamo/lib/bindings/python运行

maturin build

即可在target/wheels/生成whl包。

或者:

uv build --wheel --out-dir /workspace/dist

构建nixl

依赖安装

sudo apt install -y build-essential cmake pkg-config
pip install meson ninja pybind11

在nixl源码目录执行(路径根据你的需求修改):

INSTALL_DIR=/root/nixl
UCX_INSTALL_DIR=/root/ucx./util/build.sh $INSTALL_DIR $UCX_INSTALL_DIR

或者参考readme.md和util/build.sh分别构建ucx和nixl

首先构建ucx

wget https://github.com/openucx/ucx/releases/download/v1.18.0/ucx-1.18.0.tar.gz
tar xzf ucx-1.18.0.tar.gz
cd ucx-1.18.0
./contrib/configure-release --prefix=/root/ucx
make -j8
make install

构建nixl wheel包

在nixl源码路径,设置编译好的ucx路径

ref https://mesonbuild.com/meson-python/how-to-guides/meson-args.html

python -m pip wheel --config-settings=setup-args="-Ducx_path=/root/ucx" .
# or 
pip install build
python -m build -Csetup-args="-Ducx_path=/root/ucx" .

 或者:

uv build --wheel --out-dir /workspace/dist

构建ai_dynamo_vllm

下载VLLM 0.7.2的分支,然后打patch dynamo\container\deps\vllm\vllm_v0.7.2-dynamo-kv-disagg-patch.patch,然后源码编译VLLM。

相当于直接编译VLLM,参考vllm doc和其他博客

Installation — vLLM

https://github.com/vllm-project/vllm/blob/main/.github/workflows/scripts/build.sh 

https://zhuanlan.zhihu.com/p/692200573

# for cuda12.1, pytorch 2.5.1
# v0.0.28.post3 build for PyTorch 2.5.1
pip3 install -U xformers==v0.0.28.post3 --index-url https://download.pytorch.org/whl/cu121
git clone --recursive -b v0.7.2 https://github.com/vllm-project/vllm.git
git apply dynamo/container/deps/vllm/vllm_v0.7.2-dynamo-kv-disagg-patch.patchpython setup.py bdist_wheel

注意事项

需要确保你的网络通畅,否则编译过程下载各种代码库和软件包失败导致编译失败。

相关文章:

NVIDIA Dynamo源码编译

Ref https://github.com/PyO3/maturin Rust 程序设计语言 代码库: https://github.com/ai-dynamo/dynamo https://github.com/ai-dynamo/nixl dynamo/container/Dockerfile.vllm 相关whl包 官方提供了4个whl包 ai_dynamo # 这个包ubuntu 22.04也可以用&…...

【前端】Canvas画布实现在线的唇膏换色功能

【前端】Canvas画布实现在线的唇膏换色功能 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 【前端】Canvas画布实现在线的唇膏换色功能背景概述以下是我们的实现方法!第一步 — 找…...

arcgispro加载在线地图

World_Imagery (MapServer)https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer添加arcgis server WMTS 服务 by xdcxdc.at xdc的个人站点。博客请转至 http://i.xdc.at/ http://xdc.at/map/wmts 添加WMTS服务器...

华为网路设备学习-16 虚拟路由器冗余协议(VRRP)

VRRP是针对干线上三层网络设备(如:路由器、防火墙等)的网络虚拟化技术,提供冗余和状态监测等功能。确保在网络中的单点故障发生时,能够快速切换到备份设备,从而保证网络通信的连续性和可靠性。‌ VRRP通过…...

使用请求调用本地部署的stable-diffusion接口

stable-diffusion-webui项目地址 具体部署教程请去B站寻找或者直接使用整合包 这里直接编写工具类 public class StableDiffusionUtil {private static final String BASE_URL "http://127.0.0.1:7860";private static final OkHttpClient CLIENT new OkHttpClien…...

封装一个分割线组件

最终样式 Vue2代码 <template><div class"sep-line"><div class"sep-label"><span class"sep-box-text"><slot>{{ title }}</slot> <!-- 默认插槽内容&#xff0c;如果没有传递内容则使用title -->&…...

网络HTTPS协议

Https HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是 HTTP 协议的加密版本&#xff0c;它使用 SSL/TLS 协议来加密客户端和服务器之间的通信。具体来说&#xff1a; • 加密通信&#xff1a;在用户请求访问一个 HTTPS 网站时&#xff0c;客户端&#x…...

CMake 函数和宏

CMake 函数 CMake 函数定义语法如下, 其中 name 为函数名, <arg1> 为参数名, <commands> 为函数体. 函数定义后, 可以通过 name 调用函数. 函数名允许字母数字下划线, 不区分大小写. function(name [<arg1> ...])<commands> endfunction()如下的样例…...

OSASIS(One-Shot Structure-Aware Stylized Image Synthesis)

文章目录 摘要abstract论文摘要方法损失函数实验结论 总结 摘要 本周阅读了一篇关于新型图像风格化的论文《One-Shot Structure-Aware Stylized Image Synthesis》&#xff0c;旨在解决现有GAN模型在风格化过程中难以保持输入图像结构的问题。通过分离图像的结构和语义信息&am…...

C++学习之网盘项目单例模式

目录 1.知识点概述 2.单例介绍 3.单例饿汉模式 4.饿汉模式四个版本 5.单例类的使用 6.关于token的作用和存储 7.样式表使用方法 8.qss文件中选择器介绍 9.qss文件样式讲解和测试 10.qss美化登录界面补充 11.QHTTPMULTIPART类的使用 12.文件上传协议 13.文件上传协议…...

Leetcode—15. 三数之和(哈希表—基础算法)

题目&#xff1a; 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的…...

Apache Flink技术原理深入解析:任务执行流程全景图

前言 本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 思维导图 📌 引言 Apache Flink 作为一款高性能的分布式流处理引擎,其内部执行机制精妙而复杂。本文将…...

DeepBI:重构流量逻辑,助力亚马逊广告实现高效流量增长

在日益激烈的跨境电商竞争环境中&#xff0c;广告投放早已从“粗放撒网”走向“精细化运营”。尤其是在亚马逊这样一个成熟且竞争白热化的平台&#xff0c;如何在广告预算有限的前提下实现高效曝光、精准触达、稳定转化&#xff0c;成为众多卖家和运营团队面临的核心挑战。 De…...

RAG(Retrieval-Augmented Generation)基建之PDF解析的“魔法”与“陷阱”

嘿&#xff0c;亲爱的算法工程师们&#xff01;今天咱们聊一聊PDF解析的那些事儿&#xff0c;简直就像是在玩一场“信息捉迷藏”游戏&#xff01;PDF文档就像是个调皮的小精灵&#xff0c;表面上看起来规规矩矩&#xff0c;但当你想要从它那里提取信息时&#xff0c;它就开始跟…...

C语言【文件操作】详解中(会使用fgetc,fputc,fgets,fputs,fscanf,fprintf,fread,fwrite函数)

引言 介绍和文件操作中文件的顺序读写相关的函数 看这篇博文前&#xff0c;希望您先仔细看一下这篇博文&#xff0c;理解一下文件指针和流的概念&#xff1a;C语言【文件操作】详解上-CSDN博客文章浏览阅读606次&#xff0c;点赞26次&#xff0c;收藏4次。先整体认识一下文件是…...

【Python Cookbook】字符串和文本(一)

字符串和文本&#xff08;一&#xff09; 1.使用多个界定符分割字符串2.字符串开头或结尾匹配3.用 Shell 通配符匹配字符串4.字符串匹配和搜索5.字符串搜索和替换 1.使用多个界定符分割字符串 你需要将一个字符串分割为多个字段&#xff0c;但是分隔符&#xff08;还有周围的空…...

GpuGeek:破解算力难题,赋能AI创新与普及

文章目录 一、引言二、填补算力资源供需缺口&#xff0c;降低使用门槛三、提升算力资源利用率&#xff0c;推动高效协作四、满足多样化需求&#xff0c;支持AI技术落地五、推动算力市场创新&#xff0c;促进生态良性发展六、助力AI人才培养&#xff0c;推动行业长远发展七、结语…...

扣子平台知识库不能上传成功

扣子平台知识库不能上传成功 目录 扣子平台知识库不能上传成功查看模板复制头部到自己的excel中json数据转为excel或者csv&#xff08;一定使用excel&#xff0c;csv总是报错&#xff09; 查看模板复制头部到自己的excel中 json数据转为excel或者csv&#xff08;一定使用excel&…...

蓝桥杯 R格式

问题描述 小蓝最近在研究一种浮点数的表示方法&#xff1a;R 格式。 对于一个大于 0 的浮点数 d&#xff0c;可以用 R 格式的整数来表示。 给定一个转换参数 n&#xff0c;将浮点数转换为 R 格式整数的做法是&#xff1a; 将浮点数乘以 2^n&#xff1b;将结果四舍五入到最接…...

计算机视觉的多模态模型

计算机视觉的多模态模型 是指能够同时处理和理解 多种类型数据&#xff08;模态&#xff09; 的模型。这些模态可以包括图像、文本、音频、视频、深度信息等。多模态模型的核心目标是利用不同模态之间的互补信息&#xff0c;提升模型的性能和泛化能力。 1. 多模态模型的核心思想…...

JVM的组成--运行时数据区

JVM的组成 1、类加载器&#xff08;ClassLoader&#xff09; 类加载器负责将字节码文件从文件系统中加载到JVM中&#xff0c;分为&#xff1a;加载、链接&#xff08;验证、准备、解析&#xff09;、和初始化三个阶段 2、运行时数据区 运行时数据区包括&#xff1a;程序计数…...

c++进阶之------红黑树

一、概念 红黑树&#xff08;Red-Black Tree&#xff09;是一种自平衡二叉查找树&#xff0c;它在计算机科学的许多领域中都有广泛应用&#xff0c;比如Java中的TreeMap和C中的set/map等数据结构的底层实现。红黑树通过在每个节点上增加一个颜色属性&#xff08;红色或黑色&am…...

《鸿蒙原生应用开发:掌控Ability生命周期的艺术》

在鸿蒙原生应用开发的广袤天地中&#xff0c;Ability作为构建应用的基本单元&#xff0c;其生命周期的有效管理宛如基石之于高楼&#xff0c;是打造稳定、高效且用户体验卓越应用的关键所在。随着鸿蒙生态的蓬勃发展&#xff0c;深入理解并巧妙运用Ability生命周期&#xff0c;…...

ubuntu22.04安装搜狗输入法保姆教程~

一、添加中文语言支持 1.首先打开设置,找到Language and Region 2.点击Manage Installed Languages 3.点击 Install/Remove Languages... 4.选中Chinese (simplified),点击Apply...

《数据库原理》SQLServer期末复习_题型+考点

目录 题型&#xff1a; 一. 概况分析题&#xff08;5小题&#xff0c;每小题2分&#xff0c;共10分&#xff09; 二. 计算题&#xff08;3小题&#xff0c;每小题5分&#xff0c;共15分&#xff09; 三. 数据库设计&#xff08;2小题&#xff0c;每小题10分&#xff0c;共2…...

Zstd(Zstandard)压缩算法

要压缩的数据量越小&#xff0c;压缩的难度就越大。这个问题对所有压缩算法都是通用的&#xff0c;原因是压缩算法从过去的数据中学习如何压缩未来的数据。但是&#xff0c;在新数据集开始时&#xff0c;没有“过去”可以构建。 官网 为了解决这种情况&#xff0c;Zstd 提供了一…...

烧结银技术赋能新能源汽车超级快充与高效驱动

烧结银技术赋能新能源汽车超级快充与高效驱动 在新能源汽车领域&#xff0c;高压快充技术的突破与高功率密度驱动系统的创新正成为行业竞争的焦点。比亚迪于 2025 年发布的超级 e 平台&#xff0c;通过整合全域千伏高压架构、兆瓦级闪充技术及碳化硅&#xff08;SiC&#xff0…...

本地部署 browser-use

本地部署 browser-use 0. 引言1. 核心功能与优势2. 快速上手3. 部署 Gradio UI4. 更多示例0. 引言 Browser-Use 是一个强大的工具,旨在让 AI Agent 能够控制浏览器,从而实现各种自动化任务。它简化了 AI 与浏览器的交互,让开发者能够轻松构建能够执行网页操作的智能应用。本…...

笔记:代码随想录算法训练营day59:110.字符串接龙 、105.有向图的完全可达性、106.岛屿的周长

学习资料&#xff1a;代码随想录 110. 字符串接龙 卡码网题目链接&#xff08;ACM模式&#xff09; 还是有些许复杂&#xff0c;要把字符串从begin开始遍历&#xff0c;然后把每一个字母都换一下&#xff0c;看能否在字典里找到&#xff0c;如果能找到就入队列并记录&#x…...

电力和冷却管理:如何让数据中心“高效降温”同时节能增效

电力和冷却管理:如何让数据中心“高效降温”同时节能增效 数据中心作为现代信息技术基础设施的核心,承担着处理、存储和传输海量数据的重任。然而,这些庞大的服务器和存储设备在高速运转时,不仅需要大量电力供应,还产生了大量热量。如何平衡电力消耗与有效冷却,成为了数…...