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

注意事項

需要確保你的網絡通暢,否則編譯過程下載各種代碼庫和軟件包失敗導致編譯失敗。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/74133.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74133.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/74133.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Android】安卓原生應用播放背景音樂與音效(筆記)

本文提供完整的音頻管理器代碼,涵蓋了背景音樂(BGM)和短音效的播放控制。無論是游戲中的音效,還是應用中的背景音樂,通過 AudioManager,你可以方便地管理和控制音頻資源。 前言 在 Android 開發中&#xf…

Unity | 游戲數據配置

目錄 一、ScriptableObject 1.創建ScriptableObject 2.創建asset資源 3.asset資源的讀取與保存 二、Excel轉JSON 1.Excel格式 2.導表工具 (1)處理A格式Excel (2)處理B格式Excel 三、解析Json文件 1.讀取test.json文件 四、相關插件 在游戲開發中,策劃…

2025信創即時通訊排行:安全合規與生態適配雙輪驅動

隨著信息技術應用創新(信創)戰略的深化,國產即時通訊工具在政企市場的滲透率顯著提升。2025年作為“十四五”規劃收官之年,信創產業迎來規模化應用關鍵節點。本文將從認證標準、市場表現、技術架構、行業適配四大維度,…

關于TVS管漏電流的問題?

問題描述: 在量產的帶電池故事機生產中,工廠產線測試電流時,有1臺機器電流比正常機器大10mA左右。 原因分析: 1、分析電路原理圖,去除可能出現問題的電壓或器件(不影響系統),發現…

RAG 架構地基工程-Retrieval 模塊的系統設計分享

目錄 一、知識注入的關鍵前奏——RAG 系統中的檢索綜述 (一)模塊定位:連接語言模型與知識世界的橋梁 (二)核心任務:四大關鍵問題的協調解法 (三)系統特征:性能、精度…

Java-servlet(七)詳細講解Servlet注解

Java-servlet(七)詳細講解Servlet注解 前言一、注解的基本概念二、Override 注解2.1 作用與優勢2.2 示例代碼 三、Target 注解3.1 定義與用途3.2 示例代碼 四、WebServlet 注解4.1 作用4.2 示例代碼 五、反射與注解5.1 反射的概念5.2 注解與反射的結合使…

機器學習——分類、回歸、聚類、LASSO回歸、Ridge回歸(自用)

糾正自己的誤區:機器學習是一個大范圍,并不是一個小的方向,比如:線性回歸預測、卷積神經網絡和強化學都是機器學習算法在不同場景的應用。 機器學習最為關鍵的是要有數據,也就是數據集 名詞解釋:數據集中的…

本地AI大模型工具箱 Your local AI toolkit:LMStudio

LMStudio介紹 官網:LM Studio - Discover, download, and run local LLMs LMStudio 是一個面向機器學習和自然語言處理的,旨在使開發者更容易構建和部署AI語言模型的應用軟件。 LMStudio的特點是: 完全本地離線運行AI大模型 可以從Huggi…

[OpenCV】相機標定之棋盤格角點檢測與繪制

在OpenCV中,棋盤格角點檢測與繪制是一個常見的任務,通常用于相機標定。 棋盤格自定義可參考: OpenCV: Create calibration pattern 目錄 1. 棋盤格角點檢測 findChessboardCorners()2. 棋盤格角點繪制 drawChessboardCorners()3. 代碼示例C版本python版本…

redis的典型應用 --緩存

Redis最主要的用途,分為三個方面: 1.存儲數據(內存數據庫) 2.緩存(最常用) 3.消息隊列 緩存 (cache) 是計算機中的?個經典的概念。核?思路就是把?些常?的數據放到觸?可及(訪問速度更快)的地?&…

本地基于Ollama部署的DeepSeek詳細接口文檔說明

前文,我們已經在本地基于Ollama部署好了DeepSeek大模型,并且已經告知過如何查看本地的API。為了避免網絡安全問題,我們希望已經在本地調優的模型,能夠嵌入到在本地的其他應用程序中,發揮本地DeepSeek的作用。因此需要知…

基于ArcGIS和ETOPO-2022 DEM數據分層繪制全球海陸分布

第〇部分 前言 一幅帶有地理空間參考、且包含海陸分布的DEM圖像在研究區的繪制中非常常見,本文將實現以下圖像的繪制 關鍵步驟: (1)NOAA-NCEI官方下載最新的ETOPO-2022 DEM數據 (2)在ArcGIS(…

自動化測試框架pytest+requests+allure

Pytest requests Allure 這個框架基于python的的 Pytest 進行測試執行,并結合 Allure插件 生成測試報告的測試框架。采用 關鍵字驅動 方式,使測試用例更加清晰、模塊化,同時支持 YAML 文件來管理測試用例,方便維護和擴展。 測試…

Retrofit中scalars轉換html為字符串

簡介 在Retrofit中,如果你想直接獲取HTML或其他文本格式的響應內容而不是將其映射到一個模型類,ScalarsConverterFactory 就派上用場了。ScalarsConverterFactory 是一個轉換器工廠,它能夠將響應體轉換為Java基本類型如String、Integer或Byte…

Powershell WSL Windows系統復制數據到ubuntu子系統系統

從本地D盤下拷貝數據到ubuntu子系統下 Powershell 管理員打開執行 /mnt/d 此處是本地Windows系統的路徑表示/opt ubutu 子系統目錄 wsl -d Ubuntu-22.04 -u root -- bash -c cp -rf /mnt/d/nginx.conf /opt/從ubuntu子系統中拷貝數據到本地D盤下 Powershell 管理員打開執行…

【多線程】線程安全集合類,ConcurrentHashMap實現原理

文章目錄 線程安全集合類解決方案多線程環境使用順序表多線程環境使用隊列多線程環境使用哈希表ConcurrentHashMap1. 縮小鎖的粒度2. 充分使用 CAS3. 針對擴容操作 線程安全集合類 ArrayList、Queue、HsahMap… 都是線程不安全的 Vector、Stack、Hashtable 都是線程安全的&am…

spring-tx筆記

編程式事務與聲明式事務的理解 補充:什么是事務? 事務是一個重要概念,尤其在數據庫管理系統中。事務是指一組操作。,這些操作要么全部成功執行,要么全部不執行,確保數據的一致性和完整性 編程式事務 編…

Android第四次面試(Java基礎篇)

一、Java 中的 DCL 單例模式 單例模式是設計模式中最常用的模式之一,其核心目標是確保一個類在程序中僅有一個實例,并提供全局訪問點。在 Java 中,實現單例模式需要兼顧線程安全和性能優化。DCL(Double-Checked Locking&#xff0…

Java-SpringBootWeb入門、Spring官方腳手架連接不上解決方法

一. Spring 官網:Spring | Home Spring發展到今天已經形成了一種開發生態圈,Spring提供了若干個子項目,每個項目用于完成特定的功能(Spring全家桶) Spring Boot可以幫助我們非常快速的構建應用程序、簡化開發、提高效率 。 二. Spring Boot入…

1.7 無窮小的比較

1.定義 2.性質 3.無窮小的比較 3.1等價無窮小的性質 3.2 常見等價無窮小