?通義萬相 2.1(Wan2.1)環境搭建指南:基于 CUDA 12.4 + Python 3.11 + PyTorch 2.5.1 GPU加速實戰

🚀【超詳細】基于 CUDA 12.4 + Python 3.11 構建 Wan2.1 項目的集成推理環境(含 PyTorch 2.5.1 GPU 安裝教程)

本文將一步一步帶你搭建一個可用于構建和運行 Wan2.1 的深度學習環境,完全兼容 CUDA 12.4,并基于官方鏡像 nvidia/cuda:12.4.0-devel-ubuntu22.04 和 Python 3.11。包括 PyTorch 安裝、依賴處理、環境驗證和常見問題解決,全程使用國內清華鏡像加速。🚀


📦 基礎環境說明

環境項
鏡像nvidia/cuda:12.4.0-devel-ubuntu22.04
Python3.11(自定義安裝)
包管理pip(使用清華鏡像)
加速工具包torch, flash-attn, packaging, 等
用途構建并運行 Wan2.1 模型項目(適配 GPU)

🔧 一、安裝系統依賴 + Python 3.11

apt update && apt install -y \python3.11 python3.11-venv python3.11-dev python3-pip \build-essential cmake git curl wget# 設置默認 python/pip(可選)
ln -sf /usr/bin/python3.11 /usr/bin/python
ln -sf /usr/bin/pip3 /usr/bin/pip

? 這樣就完成了 Python 和基本構建工具的配置。


?? 二、升級 pip 和 setuptools

升級安裝工具,防止后續編譯或安裝失敗:

pip install --upgrade pip setuptools -i https://pypi.tuna.tsinghua.edu.cn/simple

🔥 三、安裝 PyTorch 2.5.1(支持 CUDA 12.4)

? 官方推薦安裝命令如下:

pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 \--index-url https://download.pytorch.org/whl/cu124 \--extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple

📌 解釋

  • --index-url: 從 PyTorch 官方 CUDA 12.4 倉庫拉取核心庫;
  • --extra-index-url: 其余依賴包走清華鏡像,加速飛起🚄

? 四、驗證 PyTorch 安裝是否成功

執行下面命令確認版本 & GPU 支持:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

預期輸出(只要 True 就代表 GPU 可以用了🔥):

2.5.1
True

📁 五、安裝項目依賴(requirements.txt)

?? 注意:一定要先裝好 PyTorch 再執行這步!

# 先補裝一些構建時依賴,防止報錯
pip install packaging -i https://pypi.tuna.tsinghua.edu.cn/simple# 然后安裝項目依賴
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

?? 六、關于 flash_attn 安裝卡住問題詳解(極其重要)

你可能遇到的問題是:

在執行 flash_attnsetup.py bdist_wheel 階段時卡住,構建過程一直沒有繼續。

這通常是因為 FlashAttention 的源碼編譯依賴 CUDA 環境、編譯器、內存資源 等多個條件,導致它在本地構建 .whl非常耗時甚至卡死


🔍 可能的卡住原因

  1. CUDA 環境不匹配或未安裝
    FlashAttention 強依賴 CUDA。若本地未正確配置 CUDA(或版本與 PyTorch 不匹配),編譯時會卡住或失敗。

  2. 沒有 NVIDIA GPU 或未啟用 GPU 驅動
    無 GPU 的機器通常會直接卡死或失敗。

  3. 內存/資源不足
    編譯 FlashAttention 需要大量 RAM 和 CPU 資源,資源不足時會卡住。

  4. 編譯器問題(gcc 版本不兼容)
    構建時使用 setuptools 和系統編譯器,不兼容時可能無錯誤提示但構建失敗。


? 推薦解決方案(優先級順序)

方案一:手動安裝預編譯的 .whl 文件(強烈推薦)
  1. 訪問預編譯包頁面:

    https://github.com/Dao-AILab/flash-attention/releases

  2. 找到與你環境匹配的版本,例如:

    flash_attn-2.8.0.post2+cu12torch2.5cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
    

    匹配內容包括:

    • cp311 → Python 3.11
    • cu12 → CUDA 12.x
    • torch2.5 → PyTorch 2.5
    • linux_x86_64 → 64 位 Linux
  3. 下載該 .whl 文件并安裝:

    pip install ./flash_attn-xxx.whl
    
方案二:臨時切換為官方 PyPI 源安裝(避免清華鏡像導致源碼安裝)
pip install flash-attn --index-url https://pypi.org/simple

說明:清華鏡像不緩存 GitHub 上的預編譯 wheel,導致退回源碼編譯,容易卡住。

方案三:如果 FlashAttention 不是強依賴,嘗試禁用或降級

如果某些包自動依賴 flash_attn,你也可以選擇忽略或使用不依賴它的版本。

方案四(專業用戶):手動源碼編譯

確保滿足:

  • Python 3.10/3.11
  • CUDA 11.8/12.x
  • PyTorch 2.5 且 torch.cuda.is_available() 返回 True
  • 安裝 ninjagccnvcc

執行:

git clone https://github.com/Dao-AILab/flash-attention.git
cd flash-attention
pip install packaging
python setup.py install

🐳 七、使用 Docker 啟動 Wan2.1 環境(鏡像標簽:wan2.1:1.0)

說明:wan2.1:1.0 鏡像是基于上文步驟搭建好的環境,通過 Docker 容器提交生成的新鏡像。
也就是說,你先在基礎鏡像中完成所有環境配置后,執行 docker commit 創建了這個鏡像,后續可以直接用它啟動容器,避免重復配置。

下面命令基于該鏡像啟動容器:

docker run -it --name wan2.1 --runtime=nvidia --gpus all --network=host \-v /data02/YangXian/code/Wan2.1-main:/Wan2.1-main \-v /data01/YangXian/models/Wan-AI:/Wan-AI \-w /Wan2.1-main wan2.1:1.0 bash

或者增加共享內存的啟動命令(避免顯存分配問題):

docker run -it --name wan2.1.1 --runtime=nvidia --gpus all --network=host --shm-size=50g \-v /data02/YangXian/code/Wan2.1-main:/Wan2.1-main \-v /data01/YangXian/models/Wan-AI:/Wan-AI \-w /Wan2.1-main wan2.1:1.0 bash

🛠 八、容器內環境初始化及依賴安裝示例

apt update
apt install python3-pip libgl1-mesa-glx -y
ln -s /usr/bin/pip3 /usr/bin/pippip install --upgrade pip setuptools -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install packaging modelscope "xfuser>=0.4.1" -i https://pypi.tuna.tsinghua.edu.cn/simple# PyTorch 安裝(示例)
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu124# 安裝項目依賴
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

?? 九、檢測 GPU 設備(判斷是否為 GPU 機器)

lspci | grep -i nvidia

🚀 十、示例命令:運行 Wan2.1 生成任務

CUDA_VISIBLE_DEVICES=4,5,6,7 python3 generate.py --task flf2v-14B --size 1280*720 --ckpt_dir /Wan-AI/Wan2___1-FLF2V-14B-720P --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage."
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 torchrun --nproc_per_node=8 generate.py --offload_model True --task flf2v-14B --size 1280*720 --ckpt_dir /Wan-AI/Wan2___1-FLF2V-14B-720P --first_frame examples/flf2v_input_first_frame.png --last_frame examples/flf2v_input_last_frame.png --dit_fsdp --t5_fsdp --ulysses_size 8 --ring_size 1 --prompt "CG animation style, a smallchest. The background shows a blue sky with white clouds under bright sunshine. The camera follows the bird upward, capturing its flight and the vastness of the sky from a close-up, low-angle perspective."

? 最終總結

🚀 完成以上所有步驟,你的 Wan2.1 項目環境就搭建完成了,可以放心訓練和測試了!

遇到 flash_attn 卡住問題,務必優先選擇預編譯 .whl 安裝,避免源碼編譯坑。

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

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

相關文章

PROFIBUS DP轉ETHERNET/IP在熱電項目中的創新應用

在熱電項目中,多種設備的高效協同是保障能源穩定供應的關鍵。PROFIBUS DP與ETHERNET/IP兩種工業通信協議因特性不同而應用場景各異。通過協議轉換技術實現JH-PB-EIP疆鴻智能PROFIBUS DP轉ETHERNET/IP,可整合西門子PLC與電力儀表、變頻器等設備&#xff0…

精準把脈 MySQL 性能!xk6-sql 并發測試深度指南

在數據庫性能測試領域,xk6-sql憑借其強大的功能和靈活性,成為眾多開發者和測試人員的得力工具。它能夠模擬高并發場景,精準測試數據庫在不同負載下的性能表現。然而,在一些網絡受限的環境中,實現xk6-sql的離線安裝以及…

【文件】Linux 內核優化實戰 - fs.inotify.max_user_instances

目錄 一、參數作用與原理1. 核心功能2. 應用場景 二、默認值與影響因素1. 默認配置2. 影響因素 三、調整方法與示例1. 查看當前值2. 臨時修改(生效至系統重啟)3. 永久修改(修改配置文件)4. 合理值建議 四、常見報錯與解決方案1. 報…

c++系列之特殊類的設計

💗 💗 博客:小怡同學 💗 💗 個人簡介:編程小萌新 💗 💗 如果博客對大家有用的話,請點贊關注再收藏 🌞 僅在堆上創建對象的類 將類的構造函數,拷貝構造私有,防止在棧上生…

SpringBoot的國際化

國際化(internationalization)是設計容易適應不同區域要求的產品的一種方式。它要求從產品中抽離所有地域語言元素。換言之,應用程序的功能和代碼設計考慮了在不同地區運行的需要。開發這樣的程序的過程,就稱為國際化。 那么當我…

prometheus+grafana+Linux監控

prometheusgrafanaLinux監控 環境說明 操作前提: 先去搭建Docker部署prometheusgrafana...這篇文章的系統 Docker部署prometheusgrafana...的參考文章: Docker部署prometheusgrafana…-CSDN博客 Linux部署docker參考文章: 02-Docker安裝_doc…

文檔處理控件Aspose.Words教程:在.NET中將多頁文檔轉換為單個圖像

在Aspose.Words for .NET 25.6版本中,我們引入了一項新功能,允許您將多頁文檔導出為單個光柵圖像。當您需要將文檔作為單個可視文件共享或顯示時,此功能非常有用。 Aspose.Words for .NET 25.6 的新功能 在 25.6 版之前,將多頁文…

vuex4.0用法

VUEX 狀態管理,多個組件有共享數據的時候,就叫狀態管理 什么情況下會用到vuex , 如果你不知道vuex的情況也能完成你的需求,就說你的項目中不需要用到狀態管理。 組件層級比較復雜的時候,還是用組件傳值的方式來傳值,…

2025.6.24總結

今天發生了兩件事,這每件事情都足以影響我的工作狀態。 1.團隊中有人要轉崗 這算是最讓我有些小震驚的事件了。我不明白,那個同事干得好好的,為啥會轉崗,為啥會被調到其他團隊。雖然團隊有正編,有od,但我自始自終覺得…

狀態模式詳解

概述 結構設計類似責任鏈模式,但是在各個狀態進行遍歷的過程中,更注重的是條件的判斷,只有符合條件的狀態才能正常匹配進行處理。條件不成功的會立即切換到下一個狀態。 有限狀態機 狀態機一般指的是有限狀態機(FSM&#xff1a…

Lua 調試(Debug)

Lua 調試(Debug) 引言 Lua 是一種輕量級的編程語言,廣泛應用于游戲開發、嵌入式系統、腳本編寫等領域。在 Lua 開發過程中,調試是確保程序正確運行的重要環節。本文將詳細介紹 Lua 調試的基本方法、常用工具以及調試技巧,幫助開發者提高編程…

Windows安裝Emscripten?/emsdk(成功)

安裝git安裝python 不要自行下載版本,先卸載其他版本的python。 使用管理員打開cmd,輸入python3,直接跳轉到應用商店,安裝即可。 為什么一定要這么安裝?好像是跟路徑有關。 下載emsdk git clone https://github.c…

AI網頁部署在本地_windows

用bolt.new寫了一個網頁,下載ZIP至本地 以下是在 Windows 上本地運行你用 Node.js 搭建的網頁服務,并在瀏覽器中訪問的常見流程: 1、安裝 Node.js 訪問官網 Node.js — Run JavaScript Everywhere ,下載適合 Windows 的 LTS 版本…

Linux sudo命令

sudo是一個常用的Linux命令,用于以超級用戶的權限執行命令。下面是對sudo命令的介紹: sudo命令的作用: sudo允許普通用戶以超級用戶(root)的身份執行特定命令或訪問特定文件。它提供了一種安全且可控制的方式&#xf…

郵件合并----批量從excel表中導出數據到word中

文章目錄 前言一、操作流程1. 打開word,開始郵件合并->郵件合并分布向導2. 開始郵件合并,一共6步3. 選擇全部,點擊確認,即可生成Excel表中244條記錄,也就是244頁。 總結 前言 涉及到將學生的姓名、學號、檔案編號、…

活動安排貪心算法

輸入說明 n??????—— 活動數量 s[1…n]??— 第 i 個活動的開始時間 (start) f[1…n]??— 第 i 個活動的結束時間 (finish) 前置要求:數組已按 f 從小到大排好序 (若沒排,先調用 sortByFinishTime(),復雜度 O(n log …

Mysql8啟用日志審計插件

概述 等保要求,數據庫啟用日志審計。Mysql8上面使用開源插件audit-plugin-for-mysql(MariaDB的審計插件不用折騰了,無論直接使用還是編譯使用,在Mysql8上都不行) 插件下載 日志審計插件下載地址: https:…

機器學習-線性模型

目錄 線性模型 1、線性回歸: 2、對數幾率回歸: 3、線性判別分析: 4、多分類學習: 5、類別不平衡問題: 基本數理知識補充: 損失函數: 凹凸函數 梯度下降 線性模型 線性模型形式簡單、易…

Git上傳代碼如何解決Merge沖突

示例 解決方案 1、第一步切到本地的主分支 git checkout master2、拉取線上最新的代碼 git pull3、切到本地自己的分支 gco feat-xx4、將代碼從master變基&#xff08;移動/合并&#xff09;過來 git rebase master5、手動解決沖突 <<<<<<< HEAD 本…

fluentd + elasticsearch + grafana 不能顯示問題

fluentd中配置log 源文件后&#xff0c;再配置elasticsearch后&#xff0c; elasticsearch pod中查詢日志記錄正常。 修改log 文件 后&#xff0c; elasticsearch pod中查詢日志記錄更新也正常。 但是在grafana中添加elasticsearch data source后&#xff0c; 連接正常&#…