置:讓批量換臉快一倍)
FaceFusion線程設(shè)置讓批量換臉快一倍【免費(fèi)下載鏈接】facefusionIndustry leading face manipulation platform項目地址: https://gitcode.com/GitHub_Trending/fa/facefusion跑一批 4K 換臉任務(wù)進(jìn)度條爬得極慢GPU 利用率長期卡在 30%隊列越堆越長。多數(shù)時候原因是一個參數(shù)——執(zhí)行線程計數(shù)。把 FaceFusion 線程設(shè)置調(diào)對批量處理提速是最直接的一步。先搞懂它到底在控制什么想象一個廚房線程數(shù)就是同時點幾個灶臺每個灶臺炒一道菜對應(yīng)處理一幀視頻。灶臺開少了菜排隊等廚師CPU再快也上不了菜全開的話廚師得在各灶臺之間來回跑跑動的工夫就是損失掉的性能。GPU 相當(dāng)于主灶換臉推理主要跑在它上面線程負(fù)責(zé)在 CPU 一側(cè)把幀備好、喂給 GPU。因為備菜和炒菜是并行的所以線程數(shù)跟上核心數(shù)GPU 就不會挨餓超過太多CPU 忙著在任務(wù)間切換喂幀斷檔GPU 利用率反而往下掉。這段代碼在定義可調(diào)參數(shù)的上下限FaceFusion 把線程數(shù)釘死在 1–32 之間見 facefusion/choices.pybenchmark_cycle_count_range : Sequence[int] create_int_range(1, 10, 1) execution_thread_count_range : Sequence[int] create_int_range(1, 32, 1)第二行就是線程數(shù)范圍最小 1最大 32步長 1。UI 里滑塊的上下限從這里讀取你設(shè)置的值會存進(jìn)狀態(tài)管理器整個應(yīng)用之后都從那里取數(shù)滑塊組件的邏輯在 facefusion/uis/components/execution_thread_count.py。三步把參數(shù)調(diào)到位① 先摸硬件打開系統(tǒng)監(jiān)視器看 CPU 物理核心數(shù)不是邏輯線程數(shù)順手記下可用內(nèi)存和有沒有獨顯。因為線程數(shù)要跟核心數(shù)匹配所以這個數(shù)字決定你的起點。② 定起點取核心數(shù)的一半作為起始值拿不準(zhǔn)就先從 4 開始?;瑝K就在界面執(zhí)行設(shè)置區(qū)域拖動后設(shè)置會自動保存。③ 跑對比測試挑一份時長適中的素材按起點值跑一遍記下耗時再加 2 個線程跑同一份素材。因為素材相同所以耗時差直接反映加線程有沒有用哪次快就留哪個值。按硬件分檔給推薦值硬件檔位推薦線程理由核顯 / 無獨顯2–4因為 CPU 身兼推理和編碼線程再多也搶不過核心數(shù)入門獨顯8GB 顯存檔4–8因為 GPU 是主力CPU 只要跟上喂幀4–8 就夠用高端工作站16 核 旗艦 GPU8–16因為核心數(shù)和內(nèi)存帶寬都有富余多開線程能把流水線喂?jié)M為什么不能一律拉滿到 32因為每個線程都要占一份內(nèi)存而且線程數(shù)超過核心數(shù)后CPU 得在它們之間來回上下文切換切換越多反而越慢。拉滿不是更快是更亂。調(diào)完還是慢排查清單磁盤 IO素材在機(jī)械盤或網(wǎng)絡(luò)盤上讀取速度就是天花板先挪到 SSD分辨率與時長先用 1080p 素材驗證流程通了再上 4K顯存模型太大裝不下GPU 算不完只能回落內(nèi)存換小一號的模型CPU 占用已經(jīng)跑滿 100% 的話加線程也無效瓶頸在 CPU 側(cè)執(zhí)行設(shè)備確認(rèn) execution provider決定推理跑在 CPU 還是 GPU 的開關(guān)設(shè)成了 cuda而不是默默跑在 CPU 上一句話收尾記住一行話按核心數(shù)一半起調(diào)每次 2 復(fù)測哪次耗時短就停在哪。線程數(shù)只是換臉性能調(diào)優(yōu)的第一顆旋鈕下期聊聊內(nèi)存管理——顯存不夠時怎么防止任務(wù)跑到一半直接崩掉?!久赓M(fèi)下載鏈接】facefusionIndustry leading face manipulation platform項目地址: https://gitcode.com/GitHub_Trending/fa/facefusion創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考