780m上的AI环境搭建

Posted by Hsz on February 7, 2025

780m上的AI环境搭建

780m这颗核显在笔记本平台基本已经证明了它的实力–默频约等于1050ti,小超约等于1650,极限超可以摸到1060屁股.我们且不考虑性能.先让它可以被机器学习相关工具调用起来.这也算是一窥amd的AI相关生态.

我们的验证平台是8700g,ubuntu 24.04,现在正式开始探索之旅.

核显ai生态的基础–GTT[2026-01-15]

我们都知道核显的显存就是内存,一般正常的主板bios最多给你分配16g内存作为核显的显存.当然16g并不算少,但对于跑AI来说其实不够.好在linux在内核版本6.10开始允许为核显分配更多的内存作为GTT内存参与核显运算

这里解释下现代核显的内存模型.对于核显来说,它并没有自己的显存(vram),因此只能从物理内存中”划一块”当作显存使用.因此我们的物理内存就有了两块组成vram(核显显存)和ram(内存).这两块虽然在物理层面是一样的,但使用时井水不犯河水–vram是核显专用,ram是cpu专用,这两者由于运作机制不同,数据封装等都不相同,因此即便是想也无法直接混用.但很多时候显存并不够用,这时我们就会希望要是能从ram(内存)再分点显存用用就好了.这个再分点给显存的部分就是GTT内存.GTT实际还是ram,只是它只会被核显当作vram使用而已.GTTvram在使用时大体上是没有区别的,他们之间的区别主要是

区别 VRAM GTT
来源 由bios设置划分 由操作系统划分
性能 显示需要的内存性能会更好 由于无法直达Framebuffer因此会略差些

linux内核的这一特性默认会为vramGTT一共划分一半的内存,而且这个容量是可以设置的,比如假如我们有96g的内存,我们想划分64g给GTT.如何操作呢?

  1. 重启电脑,进入bios设置界面,在Advanced->Graphics Configuration->UMA Frame Buffer Size中设置核显的初始显存大小为1G.这里的1G只是为了满足日常使用,我们后面会用GTT来补足AI使用的显存的不足.
  2. 进入ubuntu,编辑/etc/default/grub

     sudo nano /etc/default/grub
    

    找到GRUB_CMDLINE_LINUX_DEFAULT这一行,在其后面添加如下参数

     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amd_iommu=off ttm.pages_limit=16777216 ttm.page_pool_size=16777216 amdttm.pages_limit=16777216 amdttm.page_pool_size=16777216"
    

    这里面和设置GTT相关的的实际是amd_iommu=off ttm.pages_limit=16777216 ttm.page_pool_size=16777216 amdttm.pages_limit=16777216 amdttm.page_pool_size=16777216这些,其中16777216是以4k为单位的页数,也就是16777216*4k=64g,也就是说我们这里划分了64g给核显作为GTT使用.这里的换算公式如下:

     ttm.pages_limit = 目标GTT大小(gb) * 1024 * 1024 / 4
    

    之后执行sudo update-grub更新grub配置并重启电脑即可.

重启后我们就可以查看到GTT尺寸了,查看的方法可以使用命令行工具rocm-smi任务中心(Mission Center)应用查看.

核显本质上还是在物理内存上划一块给显卡用,这种方案天然有缺陷:

  1. 内存追求的是低延迟,显存追求的是高带宽,两者的设计目标不同,因此用内存当显存性能上远远不及专用显存的显卡.现在消费级主流的双通道的6000c30ddr5内存来说,理论峰值带宽约为96 GB/s,消费级天花板设备比如amd的strix halo 用的板载内存苹果的m4 pro通常是等效4通道内存,理论带宽峰值在200GB/s左右,而即便是steam上用户最多的独显(上上代独显)rtx 3060其显存带宽(GDDR6)也有360 GB/s,差距还是非常大的.因此核显的性能天花板是非常低的.
  2. 现在amd的apu和最早的愿景–统一内存寻址还是有很大区别的.最早amd的愿景是cpu和gpu可以无缝共享内存,但现在的实现是cpu和gpu各自有各自的内存空间,只是gpu的内存空间可以划分一部分物理内存作为显存使用而已.这就导致了频繁的数据拷贝和同步,这也是性能瓶颈之一.

但相比起apple的黄金内存,英伟达的振金显存,这个方案成本太低了.如果你只是想玩玩轻量级的ai应用,780m这样的核显其实也能满足需求.

780m的先天不足[2026-01-15]

780m毕竟只是一个核显,它的主战场还是便携设备在低功耗下的游戏性能.因此它有几个先天的缺陷

  1. 原生数据类型缺失 780m主要是打游戏用的,因此只支持fp32和fp16.这也就意味着它做训练用不了bf16,做推理用不了fp8.

  2. 缺少专用的AI加速单元 780m没有类似英伟达的tensor core或amd的matrix core这样的专用AI加速单元,因此它只能靠通用计算单元做AI运算,这也就导致了它虽然用来打游戏还不错,但AI算力远远不及同级别独显.

  3. 缺少计算库支持 780m并没有被amd官方rocm支持,因此很多基于rocm的计算库在不做额外适配的情况下是无法使用的.这也就导致了很多AI工具要在780m上跑起来需要大量的额外适配工作.这显然不适合大众用户.(780m作为amd铺的最广的核显,官方不支持实在是让人费解),当然也有一些项目可以走vulkan,opencl等替代方案,但这往往是性能妥协的选择.

  4. 和cpu抢资源 780m是封装在apu中的核显,它的显存是共用的内存,供电是共用的cpu供电,散热也是共用的cpu散热.因此在高负载下,核显和cpu会相互抢资源,这也就导致了核显的性能不稳定.

以上的先天不足导致了780m实际能做的事很有限.

更加合适的使用场景还是在推理上,我们可以更多的借助GGUF格式的模型,应为GGUF这种量化方式本质上还是在跑fp16精度,只是它存在一个序列化反序列化的过程. 而这种格式的主战场就是基于llama.cpp的本地大语言模型推理体系以及一部分语音识别,扩散模型生态.

rocm的选择[2026-01-15更新]

基座运算库有多重要看看老黄赚多少就知道了.cuda早已占据了最好的生态位,这让amd和英特尔的显卡包括核显都很难受.

回到我们的主题,在ubuntu 24.04环境下的780m上我们能用的基座运算库有如下选择:

官方的rocm[2026-01-15更新]

官方的rocm支持了780m但没有完全支持.一方面在rocm 7.1版本开始官方就在源码层面支持780m核显(gfx1103),但官方并没有提供对应的二进制安装包,也就是说单纯使用官方rocm我们只能通过源码编译的方式来提供对780m的支持.另一方面,arch社区提供的编译好的rocblas中又有编译好的780m支持文件,因此我们可以通过安装官方rocm再将arch社区编译好的rocblas中gfx1003相关的文件复制到官方的rocblas的方式来获得对780m的支持.

这种支持方式带来了很多兼容性上的问题,很多基于rocm的ai工具在打包时仅支持了官方二进制安装包支持的显卡,因此很多工具在780m上是无法使用的.比较好办的比如pytorch,rocm版本把arch社区编译好的对应文件放进去就行了.但有些工具就没那么好办了,比如ollama等工具在打包时并没有考虑到780m这种不被官方支持的显卡,因此在780m上是无法使用的,只能通过源码编译打补丁来适配.这对于普通用户来说显然是不现实的.

安装

可以使用如下步骤安装官方驱动和rocm:

  1. 安装安装器

     sudo apt update # 更新软件包的索引或包列表
     sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)" # 根据linux内核来安装对应的linux-headers和linux-modules-extra
     sudo apt install python3-setuptools python3-wheel
     sudo usermod -a -G render,video $LOGNAME # 添加当前用户到渲染和视频分组
     wget wget https://repo.radeon.com/amdgpu-install/7.1.1/ubuntu/noble/amdgpu-install_7.1.1.70101-1_all.deb # 下载amdgpu安装工具,这里以7.1.1为例
     sudo apt install ./amdgpu-install_7.1.1.70101-1_all.deb #安装rocm安装工具
     sudo reboot #重启后生效
    

    上面的代码只是例子,我们安装的是rocm 7.1.1的安装器,具体版本可以查看rocm发布页

  2. 根据使用场景安装需要组件

    上面的代码安装了amdgpu-install这个工具,它是一个amdgpu的管理工具,可以用于安装和更新AMDGPU的驱动, rocm,rocm 组件等amdgpu相关的工具.

    在重启后我们重新进入命令行,然后运行amdgpu-install来安装所必须得组件

     amdgpu-install --usecase=rocm,graphics,hip
     sudo reboot
    

    支持的usecase可以通过命令sudo amdgpu-install --list-usecase查看.

    主要的usecase包括

    • dkms,仅安装驱动,其他的所有usecase都会安装驱动所以一般不用这个
    • graphics,图形界面相关工具,如果你使用ubuntu桌面系统你就得装,不装很多软件会因为显卡报错无法打开(比如各种electron封装)
    • multimedia,开源多媒体库相关工具
    • multimediasdk,开源多媒体开发,包含multimedia
    • workstation,工作站相关工具,包含multimedia同时包含闭源的OpenGL工具
    • rocm,显卡做异构计算工具,包括OpenCL运行时,HIP运行时,机器学习框架,和rocm相关的库和工具
    • rocmdev,rocm开发工具,包含rocm和相关的调试开发工具
    • rocmdevtools,仅包含rocm和相关的调试开发工具
    • amf,基于amf编解码器(闭源)的多媒体工具
    • lrt,rocm的编译器,运行时和设备库等工具
    • opencl,异构计算库opencl相关工具,库和运行时
    • openclsdk,包含opencl,同时包含opencl的相关开发工具和头文件等
    • hip,高性能计算库hip的运行时
    • hiplibsdk,包含hip,同时包含hip开发相关库和工具以及ROCm的数学库
    • openmpsdk,并行计算库openmp的运行时和相关库和工具
    • mllib,机器学习相关工具和库,包括MIOpen核心和相关库,以及Clang OpenCL
    • mlsdk,包含mllib,额外附带MIOpen和Clang OpenCL的开发库
    • asan,支持ASAN(内存检测工具)的ROCm工具

    正常情况下使用amdgpu-install --usecase=rocm,graphics 安装即可

  3. 设置系统连接

    也就是设置相关工具的查找位置

     sudo tee --append /etc/ld.so.conf.d/rocm.conf <<EOF
     /opt/rocm/lib
     /opt/rocm/lib64
     EOF
    
     sudo ldconfig
    
  4. 使用update-alternatives更新配置ROCm二进制文件的路径.

     update-alternatives --list rocm
    
  5. 设置环境变量

    rocm安装好后会被放在/opt/rocm-<ver>目录,我们不妨设置一个环境变量ROCM_HOME

     export ROCM_HOME=/opt/rocm-7.1.1
    
    • rocm的可执行文件会放在/opt/rocm-<ver>/bin目录. 如果无法使用rocm工具,可以将它的bin目录加入到PATH中

        export PATH=$PATH:$ROCM_HOME/bin
      
    • rocm的动态链接库会放在/opt/rocm-<ver>/lib目录. 如果要用到这些动态链接库,可以将它临时加入到LD_LIBRARY_PATH

        export LD_LIBRARY_PATH=$ROCM_HOME/lib
      
    • rocm的模块则会被放在/opt/rocm-<ver>/lib/rocmmod目录.

    • [可选]去下载arch社区编译好的针对780m的rocblas文件,解压后搜索其中名字带gfx1103的文件,将这些文件复制到/opt/rocm/lib/rocblas/library目录下.

    • [可选]最后,由于我们使用的是核显780m,如果不用arch社区编译好的文件,我们就需要额外设置环境变量HSA_OVERRIDE_GFX_VERSION

        export HSA_OVERRIDE_GFX_VERSION=11.0.0
      

      这个11.0.0对应的是8000系apu核显的版本.顺道一提780m的编号gfx1103

    这样,我们的.zshrc就有如下内容了

     # ======================================================================= rocm
     export ROCM_HOME=/opt/rocm-7.1.1
     export PATH=$PATH:$ROCM_HOME/bin
     # export HSA_OVERRIDE_GFX_VERSION=11.0.0
    
  6. 检查驱动是否正常

     dkms status
    

    这个命令会打印出显卡的状态

  7. 检查rocm是否正常安装

     rocminfo # 检查rocm状态
     clinfo # 检查opencl状态
    
  8. 检查包是否安装正常

     apt list --installed
    

版本更新

更新版本我们需要完全卸载已有的rocm,驱动和rocm安装器

sudo amdgpu-install --uninstall # 卸载驱动和库
sudo apt purge amdgpu-install # 卸载安装器
sudo apt autoremove # 卸载对应依赖
sudo reboot # 重启后生效

之后在下载新版本的安装器重新安装配置一次即可

半官方的ROCm/TheRock[2025-11-12更新]

ROCm/TheRock是amd官方主持但由社区维护的一个rocm的衍生项目,rocm_sdk_builder的主要贡献者也参与其中,可以看成是rocm_sdk_builder的后继项目.这个项目的主要目的是让更多的amd显卡和核显可以被rocm支持,它本质上是一个rocm相关工具链的编译工具加针对未获得官方支持的显卡的补丁集合.经由该项目编译出来的rocm工具链可以直接对应设备上安装使用.

该项目目前还处于早期阶段,但已经展现出了不错的前景,它基本紧跟官方rocm的版本,目前已经支持到rocm 7.1版本.对于780m来说,它提供了开箱即用的支持,我们可以直接通过pip安装对应的python包来使用.因此相对于官方rocm来说,它的使用门槛更低,更适合普通用户使用.

安装

对于780m来说,安装ROCm/TheRock非常简单,我们只需要安装官方的显卡驱动,然后通过pip安装对应的python包即可.

  1. 安装安装器,这步和官方rocm安装一样

     sudo apt update # 更新软件包的索引或包列表
     sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)" # 根据linux内核来安装对应的linux-headers和linux-modules-extra
     sudo apt install python3-setuptools python3-wheel
     sudo usermod -a -G render,video $LOGNAME # 添加当前用户到渲染和视频分组
     wget wget https://repo.radeon.com/amdgpu-install/7.1.1/ubuntu/noble/amdgpu-install_7.1.1.70101-1_all.deb # 下载amdgpu安装工具,这里以7.1.1为例
     sudo apt install ./amdgpu-install_7.1.1.70101-1_all.deb #安装rocm安装工具
     sudo reboot #重启后生效
    
  2. 安装驱动

     amdgpu-install --usecase=dkms,graphics
    
  3. 找个地方创建python虚拟环境,比如/data/venvs/rocm780mvenv(你得先有python,注意目前仅支持python 3.11,3.12,3.13,最好是3.12版本)

     python -m venv venv
     source .venv/bin/activate
    
  4. 安装rocm对应的python包

     pip install --index-url https://rocm.nightlies.amd.com/v2/gfx110X-all/ "rocm[libraries,devel]"
    

    这样你在这个虚拟环境激活的情况下就可以用命令行工具rocm-sdk了,

  5. [可选]如果你要导出用于编译其他依赖rocm项目的环境,可以用rocm-sdk init命令,它会给你输出类似Devel contents expanded to '.venv/lib/python3.12/site-packages/_rocm_sdk_devel'这样的内容,你可以将它加入到环境变量中

     # 指定THEROCK_ROCM_ROOT_PATH为上面输出的路径
     export THEROCK_ROCM_ROOT_PATH=".venv/lib/python3.12/site-packages/"
     # 将可执行文件加入到环境变量中
     export PATH=$THEROCK_ROCM_ROOT_PATH/bin:$PATH
     # 将动态链接库加入到环境变量中
     export LD_LIBRARY_PATH=$ROOT_PATH/lib:$LD_LIBRARY_PATH
     # 将头文件加入到环境变量中
     export CPLUS_INCLUDE_PATH=$ROOT_PATH/include:$CPLUS_INCLUDE_PATH
    
  6. [可选]安装对应的pytorch及相关库

     pip install --index-url https://rocm.nightlies.amd.com/v2/gfx110X-all/ torch torchaudio torchvision mpmath triton
    

这种方式安装的一大好处就是它是用户级的非常容易更新和卸载,我们把旧的删了重新安装就行了

rocm_sdk_builder[2025-11-12更新(该项目目前已经能够不再维护,rocm版本停留在了6.1.2)]

如果想要用全套ai相关工具,我们还是得借助第三方项目lamikr/rocm_sdk_builder. lamikr/rocm_sdk_builder是一个第三方的rocm方案.它通过给rocm和相关工具源码打补丁的方式让部分相对较新的显卡(核显)可以获得rocm相关工具的原生支持.刚好780m和ubuntu 24.04在它的支持范围内,我们自然也就可以装.当然缺点就是版本相对低些,目前(2025/02/07)只到rocm 6.1.2版本,目前正在慢慢适配6.2版本.相应的,torch,onnxruntime等依赖rocm的库版本也相对更低些,但它可以正常运行sd等常规ai工具.

安装rocm_sdk_builder有2个条件

  1. 需要一个干净的系统,不能安装过amd的官方驱动
  2. 需要能翻墙的稳定网络环境,依赖项都是在github上的,网络不稳git操作出问题就必须重新下载否则编译无法通过

满足这些条件后我们就可以安装了

# 我们依然惯例的将rocm_sdk_builder项目源码放在~/workspace/init_source
mkdir -p workspace/init_source # 构造目录
cd workspace/init_source
git clone https://github.com/lamikr/rocm_sdk_builder.git
cd rocm_sdk_builder
# 切到rocm_sdk_builder_612分支
git checkout releases/rocm_sdk_builder_612
# 安装所需依赖
./install_deps.sh
# 将当前用户添加到render用户组并重启
sudo adduser [当前用户名] render
sudo reboot

cd workspace/init_source/rocm_sdk_builder
# 选择编译针对的显卡,可以多选,这里我们为780m选择gfx1103
./babs.sh -c
# 下载依赖到src_projects目录,注意下载好后观察log有没有错误,有的话将对应的项目的目录删除重新执行,否则编译会出错
./babs.sh -i
# 编译项目,编译中间文件会被放在builddir文件夹下大约会持续5~10小时
./babs.sh -b

该项目还提供了额外的常用ai应用项目,包括

  • llama.cpp
  • VLLM
  • statble-diffusion-webui

可以通过下面的命令安装

./babs.sh -b binfo/extra/ai_tools.blist

在编译完成后成果会被安装到/opt/rocm_sdk_612目录下–可执行文件被放在/opt/rocm_sdk_612/bin下(还包含一个python3.11环境);相关库的头文件被放在/opt/rocm_sdk_612/include中,如果要使用相关的环境,可以执行source /opt/rocm_sdk_612/bin/env_rocm.sh.

而相关的python库会被编译为whl文件放在项目目录下的packages/whl目录下(我这里就是~/workspace/init_source/rocm_sdk_builder/packages/whl下).

版本更新

这个项目目前还是挺活跃的,releases/rocm_sdk_builder_612这个分支现在也还一直在更新打补丁,我们可以在项目根目录下通过如下命令更新补丁并重新编译有更新的项目

# 更新补丁
./babs.sh -up
# 重新编译安装有新补丁的项目
./babs.sh -b

修复补丁打不上的bug

有用户发现版本更新时有时候会有补丁没打上的bug,可以通过如下命令修复

# 清空项目和编译目标
./babs.sh --clean
# 检查源文件版本是否匹配
./babs.sh -co
# 重新打补丁
./babs.sh -ap
# 重新编译
./babs.sh -b

这样就可以了,需要注意编译过程中一样需要全程保持网络可用且可以访问外网

docker镜像

rocm_sdk_builder项目还提供了一个配套镜像用于通过docker使用rocm.

提供了3个tag对应不同的gpu版本,像我们是780m,就选lamikr/rocm_sdk_builder:612_01_rdna3这个镜像就好. 需要注意这个镜像非常大,有10g+的尺寸,如果要用有私有仓库就放私有仓库,没有建议git pull下来后save下来,省的重复下载

#==============拉取一次,然后保存为tar文件
docker pull lamikr/rocm_sdk_builder:612_01_rdna3
docker save -o lamikr_rocm_sdk_builder_612_01_rdna3.tar lamikr/rocm_sdk_builder:612_01_rdna3

#==============下次需要就重新导入
docker load --input lamikr_rocm_sdk_builder_612_01_rdna3.tar

使用这个镜像只需要要注意将/dev/kfd/dev/dri加入device并且让容器和用户有一样的组就行

  • docker run方法
docker run -it --device=/dev/kfd --device=/dev/dri --group-add <render组的id> lamikr/rocm_sdk_builder:612_01_rdna3 bash
  • docker compose方法
name: myapp

services:
  foo:
    image: lamikr/rocm_sdk_builder:612_01_rdna3
    devices:
      - "/dev/kfd:/dev/kfd"
      - "/dev/dri:/dev/dri"
    group_add:
      - <render组的id>
    command: bash

这个镜像中/opt/rocm_sdk_612/位置就和我们自己编译好后的结构是一样的,我们可以进去以后调用其中的python,然后用下面的脚本检查是否可以调用核显

import torch
torch.cuda.is_available()

先天缺陷

这毕竟是一个第三方基座,我测试后发现跑pytorch的程序是有跑崩的情况的,也就是说他并不健壮.

核显算力测试

780m由于缺少bf16,我们就基本只能用于ai推理,要知道它的算力水平我们可以使用mamf-finder

ps: 参考知乎上这篇文章这篇文章

wget https://raw.githubusercontent.com/stas00/ml-engineering/refs/heads/master/compute/accelerator/benchmarks/mamf-finder.py
  • fp16算力测试

使用如下命令进行快速测试:

python mamf-finder.py --m_range 0 20480 256 --n 4096 --k 4096 --output_file=$(date +"%Y-%m-%d-%H:%M:%S").txt --dtype float16

这个测试能达到最大可达结果的80-90%

可以得到大致算力为5.5 TFLOPS即每秒执行5.5万亿次浮点运算次数

常用ai环境搭建

既然780m的核显可以跑rocm了,那我们就可以搭建一些常用的ai环境了.

ollama[2026-01-15更新]

ollama是一个基于llama.cpp的本地大语言模型推理管理工具.它可以让我们非常方便的下载和管理本地的llama.cpp模型,并且提供了一个类似docker的容器化运行环境用于运行这些模型.它还提供了一个web ui用于管理和使用这些模型. 对于ollama来说,用它就是为了方便,因此这里不讨论如何用它压榨性能,只讨论如何让它在780m上跑起来.

ollama最简单的安装方法只需要挂上代理,然后执行下面的命令即可:

curl -fsSL https://ollama.com/install.sh | sh

这个安装脚本检测出你有amd显卡后会下载rocm版本的ollama可执行程序,正常情况下它会被安装到/usr/local,同时会配置systemd/etc/systemd/system/ollama.service.

由于我们是780m,要让igpu成为首选就需要做如下设置:

  1. 先停掉ollama

     sudo systemctl stop ollama.service
    
  2. 进入systemd的设置页设置ollama.service的启动环境(一般文件都还没有,需要创建)

     sudo su
     cd /etc/systemd/system/
     mkdir ollama.service.d
     cd ollama.service.d
     nano override.conf
    

    根据你的需要和安装的环境,填入如下内容:

    • 如果你使用的是官方rocm,你可以这样设置以启用rocm后端

        [Service]
        Environment="HSA_OVERRIDE_GFX_VERSION=11.0.0" # 780m需要伪装成gfx1100,因为原版的ollama并不支持gfx1103的780m
        Environment="OLLAMA_MAX_LOADED_MODELS=1" # 仅加载一个模型
        Environment="OLLAMA_NUM_PARALLEL=1" # 仅允许一个并发
        Environment="OLLAMA_ORIGINS=*" # 允许跨域请求
        Environment="OLLAMA_HOST=0.0.0.0" # 允许内网访问
      
    • 如果你仅安装了驱动没有安装官方rocm,你可以用vulkan后端运行ollama,这时可以这样设置

        [Service]
         Environment="OLLAMA_VULKAN=1" # 启用vulkan后端
         Environment="GGML_VK_VISIBLE_DEVICES=0" # 指定使用的vulkan设备,一般核显是0
         Environment="OLLAMA_MAX_LOADED_MODELS=1"  # 仅加载一个模型
         Environment="OLLAMA_NUM_PARALLEL=1" # 仅允许一个并发
         Environment="OLLAMA_ORIGINS=*" # 允许跨域请求
         Environment="OLLAMA_HOST=0.0.0.0" # 允许内网访问
      

    当然了如果有其他要设置的也在这里设置,设置项可以用ollama serve --help查看

  3. 重新加载ollama.service的设置,并重启

     sudo systemctl daemon-reload
     sudo systemctl restart ollama.service
    

需要注意如果你还打算安装n卡独显,你应该先安装ollama再加独显并安装cuda,否则就只能手动下载rocm对应的库并复制到对应目录以支持核显了,这对用笔记本或mini主机且打算外接显卡的用户很重要

# 以v0.6.5为例,下载rocm对应库
wget https://github.com/ollama/ollama/releases/download/v0.6.5/ollama-linux-amd64-rocm.tgz
# 解压到`/usr/local`,会将库放到`/usr/local/lib/ollama/rocm`中
sudo tar -C /usr/local -xzf ollama-linux-amd64-rocm.tgz

性能和使用建议[2026-01-15更新]

ollama是那种没有gpu用cpu也能跑的软件

也就是说用780m跑ollama有3种模式

  1. 仅用cpu跑,这时ollama会使用avx2或avx512指令集来加速推理,这可以在模型的modelfile中通过num_gpu参数来设置为0实现
  2. 用rocm跑,这时ollama会使用rocm基座来调用780m核显来加速推理
  3. 用vulkan跑,这时ollama会使用vulkan基座来调用780m核显来加速推理

llm推理可以分为两个阶段:

  1. prefill阶段,也就是将输入的上下文编码成隐藏向量的阶段,也就是影响首字输出时间的阶段
  2. decoding阶段,也就是根据隐藏向量生成输出文本的阶段,也就是影响后续输出速度的阶段

通常来说prefill阶段对计算资源的需求更高,而decoding阶段对内存带宽的需求更高.而比较影响体验的其实是decoding阶段,因为它决定了后续输出的速度.

我们以rocm模式为基准,来看看ollama在780m上的decoding阶段性能表现如何.

我在同步模式下6000c44内存下测试的大致速度可以总结为如下,挑选模型时可以大致参考

  • 稠密架构模型
规格 速度(t/s)
3b_q5km 23
1.5b_q8 28
7b_q4km 13.8
8b_q4km 12.8
12b_q4km 7.8
14b_q4km 6.5
27b_q4km 3.7
32b_q4km 3.4
  • moe架构模型
规格 速度(t/s)
16b2a_q4_0 19
30b3a_q4km 7

多数情况下核显还是显著优于cpu的推理速度,但由于ollama基于的llama.cpp本身对moe模型的支持并不好,在780m上跑moe模型的decoding阶段性能甚至不如直接用cpu跑

下面是我总结的不同后端下ollama性能对比关系(以rocm为基准,普遍情况)和使用建议

稠密模型下

后端 prefill阶段性能 decoding阶段性能
cpu(avx2/avx512) 0.4 1.05
rocm 1 1
vulkan 0.7 1.4

moe模型下

后端 prefill阶段性能 decoding阶段性能
cpu(avx2/avx512) 0.6 2
rocm 1 1
vulkan 0.7 2.3

从上面的数据可以看出,ollama在780m上跑稠密模型时核显的优势还是比较明显的,尤其是在prefill阶段,而在decoding阶段核显和cpu的性能差距并不大,甚至vulkan后端的性能还要好一些.因此如果你的使用场景是需要频繁输入较长上下文的场景,使用核显会有明显优势;如果你的使用场景是短文本对话,或者是要模型输出较多内容的场景,使用cpu也未尝不可.

相比较起折腾官方rocm,我个人更推荐使用vulkan后端,因为它的稳定性更好一些,而且decoding阶段性能更好一些.当然了如果你对prefill阶段性能有较高要求,那还是用rocm后端吧.

模型方面,为了充分发挥780m的性能,我推荐

  1. 在cpu中跑一个1b-q8~4b_q4km规模的稠密模型用于快速响应短文本对话(一般可以在20~150t/s左右),推荐functiongemma:270m-it-q8_0,这个模型非常特殊,它是一个经过特殊调教的模型,在1b规模下可以达到接近4b模型的效果,而且应该是经过特殊优化的,在cpu上跑比在igpu上跑更快,其prefill阶段性能是igpu上的两倍,decoding阶段性能也有1.2倍左右,可达160t/s,非常适合用来做快速响应模型.

  2. 在igpu中跑一个30b3a_q4km规模的moe模型用于处理需要模型输出较多内容的场景(占用30多个G,一般可以在17t/s左右,视后端而定),如果你有64g/96g/128g的大内存,你也可以考虑给gtt破限后跑qwen3-next-80b_q4km模型(占用60g左右,一般可以在10t/s左右,视后端而定)

llama.cpp

rocm_sdk_builder编译binfo/extra/ai_tools.blist后我们就可以直接在terminal中调用llama.cpp提供的命令行工具了,比如llama-cli等.

ComfyUI[2025-04-10]

作为目前最流行,生态最丰富的生图工具,ComfyUI现在几乎是ai生图的代名词. 由于rocm_sdk_builder提供了python ai生态下最关键的几个主流库的支持,ComfyUI就天然可以使用了.不过需要注意,Comfyui的插件生态太过庞大,并不一定所有节点都能被支持.

安装

安装也很简单,假设我们要将环境安装到~/Webapp目录下,安装过程可以分成如下步骤

  1. 克隆Comfyui项目

     cd ~/Webapp
     git clone https://github.com/comfyanonymous/ComfyUI.git
    
  2. 安装专用环境

     cd ComfyUI
     # 构造虚拟环境
     python -m venv venv 
     # 激活虚拟环境
     source venv/bin/activate
     # 安装`rocm_sdk_builder`提供的各种python包
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch-2.4.1-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchaudio-2.4.1+7506e3c-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch_migraphx-0.0.3-cp311-cp311-linux_x86_64.whl  
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchvision-0.20.0a0+bea1d4f-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/triton-3.0.0+git759b4fe3-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/deepspeed-0.15.1+77f0e5cb-cp311-cp311-linux_x86_64.whl   
     pip install <rocm_sdk_builder项目位置>/packages/whl/bitsandbytes-0.43.2.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/mpi4py-4.0.1.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/onnxruntime_training-1.18.1+cpu-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/vllm-0.6.3.dev5+g9e9816f6.rocm614-cp311-cp311-linux_x86_64.whl
     # 安装其他依赖
     pip install -r requirements.txt
     # 解决应用挂着代理时报错的问题
     pip install 'httpx[socks]'
    
  3. 构造桌面图标(Desktop shortcut),毕竟是桌面linux系统,方便起见我们还是构造一个桌面图标

    1. 在comfyui项目下找一张图取名为ComfyUI.png放在根目录下
    2. 在comfyui项目下构造一个启动脚本launch.sh放在根目录下

       #!/bin/bash
       source /opt/rocm_sdk_612/bin/env_rocm.sh
       source ./venv/bin/activate
       python main.py --use-pytorch-cross-attention --auto-launch
      
    3. launch.sh脚本赋予执行权限

       chmod +x launch.sh
      
    4. ~/.local/share/applications目录下新建一个文件ComfyUI.desktop

       [Desktop Entry]
       Version=0.3.14
       Type=Application
       Name=ComfyUI
       Comment=for Stable Diffusion workflow
       Comment[zh_CN]=Stable Diffusion工作流工具
       Path=<ComfyUI的根目录路径>
       Icon=<ComfyUI的根目录路径>/ComfyUI.png
       Exec=<ComfyUI的根目录路径>/./launch.sh
       Terminal=true
       Categories=Graphics;AudioVideo;Application;ConsoleOnly;
      
    5. 重启机器后生效

注意事项

  1. 由于780m天生缺少fp8支持,fp8的模型就一个也用不了了.我们就会非常依赖gguf向量化的模型,因此插件city96/ComfyUI-GGUF基本是必备的.

  2. 虽然flash-att官方提供了基于tritonrocm支持,但亲测依然会报错.

  3. 由于算力不足,出图会很慢,在780m上不要指望快速出图,它适合跑那种需要大量显存,可以一定程度上不在乎时间的任务,也就是说需要抽卡的任务就普遍不太合适,但比如精修图片,放大这类任务就还算合适,毕竟能有这么大显存的独显机器成本能上天

通用加速技术

  • complie,可以使用eager, aot_eager这两个backend,但加速效果不会超过10%,
  • teacache,亲测可用,效果明显
  • first block cache,亲测可用,效果明显

下面是总结的flux生成1024x1024这一工况下不同技术下的加速情况和出图效果(以不加速为基准100%)

方案 参数 耗时 质量损失 结构变化
无加速 100%
tea cache rel_l1_thresh=0.4,max_skip_steps=3 51.69% 较大 部分
first block cache residual_diff_threashold=0.12 58.19% 较小 部分
complie backend=aot_eager 99% 较小 部分

由于数据类型缺失,基于int4和fp4的量化加速技术(比如Nunchaku)就完全无法使用了,这也是为啥我说780m不适合抽卡

回到正题,从上面的比较可以看出正真有点用的还是tea cache和first block cache,他们需要安装对应的插件以获得节点.

可以看到正真有效果的还是tea cachefirst block cache,下面是这两种技术适用的范围比较

工况 tea cache first block cache
FLUX ok ok
PuLID-FLUX ok no
HunyuanVideo ok ok
LTX-Video ok ok
CogVideoX ok no
Wan2.1 ok no
SD3.5 no ok
SDXL no ok

这两种加速工具更多的还是用在抽卡上,但需要注意真需要质量的图还是别用

flux生图

flux生态下我们只要用gguf和fp16的模型就没问题.

Yue生成音乐

这是一个输入文本或音频,输出音乐的大模型.由于也是创作型的模型,也不需要暴露api,我们可以借助comfyui作为界面.

使用插件ComfyUI_YuE.它提供了相当够用的参数.

安装

安装这个插件就是简单的将他克隆到custom_nodes目录下并装好依赖

cd ComfyUI
source venv/bin/activate
cd custom_nodes
git clone https://github.com/smthemex/ComfyUI_YuE.git
pip install -r requirements.txt
# 额外的依赖--sox,保存音频时需要
pip install sox

需要注意这个插件默认使用flash-attention2,但780m并不支持flash-attention,我们可以修改其源码–在插件根目录下的yue_node.py中把attn_implementation="flash_attention_2"都注释掉即可

配置模型

  1. ckpt_00360000.pthdecoder_131000.pth,decoder_151000.pth,放在ComfyUI/models/yue目录下(没有就创建)
  2. pytorch_model.bin放在ComfyUI/custom_nodes/ComfyUI_YuE/inference/xcodec_mini_infer/semantic_ckpts/hf_1_325000/目录下
  3. 音乐生成模型,按参数规模和量化程度有如下选择:

个人建议充分利用大显存优势,直接上7b模型且不要进行量化,这会跑很久,但可以获得最佳效果.

lora-scripts

B站知名赛博菩萨秋叶大佬青龙参与stable diffusion的finetune训练项目,底层还是kohya-ss/sd-scripts但人机交互方面好非常多.基本算是国内搞sd的lora训练的标准工具.

安装

假设我们要将环境安装到~/Webapp目录下,安装过程可以分成如下步骤

  1. 克隆lora-scripts项目

     cd ~/Webapp
     git clone https://github.com/Akegarasu/lora-scripts.git
    
  2. 安装专用环境

     cd lora-scripts
     # 构造虚拟环境
     python -m venv venv 
     # 激活虚拟环境
     source venv/bin/activate
     # 安装`rocm_sdk_builder`提供的各种python包
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch-2.4.1-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchaudio-2.4.1+7506e3c-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch_migraphx-0.0.3-cp311-cp311-linux_x86_64.whl  
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchvision-0.20.0a0+bea1d4f-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/triton-3.0.0+git759b4fe3-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/deepspeed-0.15.1+77f0e5cb-cp311-cp311-linux_x86_64.whl   
     pip install <rocm_sdk_builder项目位置>/packages/whl/bitsandbytes-0.43.2.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/mpi4py-4.0.1.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/onnxruntime_training-1.18.1+cpu-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/vllm-0.6.3.dev5+g9e9816f6.rocm614-cp311-cp311-linux_x86_64.whl
     # 安装其他依赖
     pip install -r requirements.txt
     # 解决应用挂着代理时报错的问题
     pip install 'httpx[socks]'
    
  3. 构造桌面图标(Desktop shortcut),毕竟是桌面linux系统,方便起见我们还是构造一个桌面图标

    1. 在lora-scripts项目下构造一个启动脚本launch.sh放在根目录下

       #!/bin/bash
       source /opt/rocm_sdk_612/bin/env_rocm.sh
       source ./venv/bin/activate
      
       export HF_HOME=huggingface
       export PYTHONUTF8=1
      
       python gui.py "$@"
      
    2. launch.sh脚本赋予执行权限

       chmod +x launch.sh
      
    3. ~/.local/share/applications目录下新建一个文件lora-scripts.desktopaigctaskqueue--w-24-16

       [Desktop Entry]
       Version=4a30c15
       Type=Application
       Name=SDWebUI
       Comment=Stable Diffusion WebUI
       Comment[zh_CN]=Stable Diffusion网页应用
       Path=/home/hsz/WebApps/stable-diffusion-webui-forge
       Icon=/home/hsz/WebApps/stable-diffusion-webui-forge/icon.png
       Exec=/home/hsz/WebApps/stable-diffusion-webui-forge/./launch.sh
       Terminal=true
       Categories=Development;Application;
      
    4. 重启机器后生效

LLaMA-Factory

通用的llm的finetune工具.

安装

假设我们要将环境安装到~/Webapp目录下,安装过程可以分成如下步骤

  1. 克隆LLaMA-Factory项目

     cd ~/Webapp
     git clone https://github.com/hiyouga/LLaMA-Factory.git
    
  2. 安装专用环境

     cd LLaMA-Factory
     # 构造虚拟环境
     python -m venv venv 
     # 激活虚拟环境
     source venv/bin/activate
     # 安装`rocm_sdk_builder`提供的各种python包
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch-2.4.1-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchaudio-2.4.1+7506e3c-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch_assets/logo.pngmigraphx-0.0.3-cp311-cp311-linux_x86_64.whl  
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchvision-0.20.0a0+bea1d4f-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/triton-3.0.0+git759b4fe3-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/deepspeed-0.15.1+77f0e5cb-cp311-cp311-linux_x86_64.whl   
     pip install <rocm_sdk_builder项目位置>/packages/whl/bitsandbytes-0.43.2.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/mpi4py-4.0.1.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/onnxruntime_training-1.18.1+cpu-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/vllm-0.6.3.dev5+g9e9816f6.rocm614-cp311-cp311-linux_x86_64.whl
     # 安装其他依赖
     pip install -r requirements.txt
     # 解决应用挂着代理时报错的问题
     pip install 'httpx[socks]'
     # 安装其他额外依赖
     pip install --upgrade huggingface_hub
     pip install nltk
     pip install jieba
     pip install rouge-chinese
     pip install transformers_stream_generator
     # 将本项目安装到环境
     pip install --no-deps -e .
    
  3. 构造桌面图标(Desktop shortcut),毕竟是桌面linux系统,方便起见我们还是构造一个桌面图标

    1. 在lora-scripts项目下构造一个启动脚本launch.sh放在根目录下

       #!/bin/bash
       source /opt/rocm_sdk_612/bin/env_rocm.sh
       source ./venv/bin/activate
      
       llamhttps://github.com/smthemex/ComfyUI_YuE.gitafactory-cli webui
      
    2. launch.sh脚本赋予执行权限

       chmod +x launch.sh
      
    3. ~/.local/share/applications目录下新建一个文件LLaMA-Factory.desktop

       [Desktop Entry]
       Version=0.9.2.dev0
       Type=Application
       Name=LLaMA-Factory
       Comment=LLM finetune tools
       Comment[zh_CN]=LLM的微调工具
       Path=/home/hsz/WebApps/LLaMA-Factory
       Icon=/home/hsz/WebApps/LLaMA-Factory/assets/logo.png
       Exec=/home/hsz/WebApps/LLaMA-Factory/./launch.sh
       Terminal=true
       Categories=Development;Application;
      
    4. 重启机器后生效

GPT-SoVITS

全功能的tts工具

安装

假设我们要将环境安装到~/Webapp目录下,安装过程可以分成如下步骤

  1. 克隆GPT-SoVITS项目

     cd ~/Webapp
     git clone https://github.com/RVC-Boss/GPT-SoVITS.git
    

    之后为了依赖不冲突,进入项目根目录修改requirements.txt,把其中numba的版本依赖给去掉

  2. 安装专用环境

     cd GPT-SoVITS
     # 构造虚拟环境
     python -m venv venv
     # 安装ffmpeg
     brew install ffmpeg
     # 激活虚拟环境
     source vhttps://github.com/smthemex/ComfyUI_YuE.gitenv/bin/activate
     # 安装`rocm_sdk_builder`提供的各种python包
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch-2.4.1-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchaudio-2.4.1+7506e3c-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch_migraphx-0.0.3-cp311-cp311-linux_x86_64.whl  
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchvision-0.20.0a0+bea1d4f-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/triton-3.0.0+git759b4fe3-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/deepspeed-0.15.1+77f0e5cb-cp311-cp311-linux_x86_64.whl   
     pip install <rocm_sdk_builder项目位置>/packages/whl/bitsandbytes-0.43.2.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/mpi4py-4.0.1.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/onnxruntime_training-1.18.1+cpu-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/vllm-0.6.3.dev5+g9e9816f6.rocm614-cp311-cp311-linux_x86_64.whl
     # 安装其他依赖
     pip install -r requirements.txt
     # 解决应用挂着代理时报错的问题
     pip install 'httpx[socks]'
    
  3. 构造桌面图标(Desktop shortcut),毕竟是桌面linux系统,方便起见我们还是构造一个桌面图标

    1. 在SDWebUI-forge项目下找一张图取名为icon.png放在根目录下
    2. 在lora-scripts项目下构造一个启动脚本launch.sh放在根目录下

       #!/bin/bash
       source /opt/rocm_sdk_612/bin/env_rocm.sh
       source ./venv/bin/activate
       export https_proxy=http://127.0.0.1:7897 
       export http_proxy=http://127.0.0.1:7897 
       export all_proxy=socks5://127.0.0.1:7897
      
       python webui.py
      
    3. launch.sh脚本赋予执行权限

       chmod +x launch.sh
      
    4. ~/.local/share/applications目录下新建一个文件GPT-SoVITS.desktop

       [Desktop Entry]
       Version=d8fc921
       Type=Application
       Name=GPT-SoVITS
       Comment=TTS tools
       Comment[zh_CN]=TTS工具
       Path=/home/hsz/WebApps/GPT-SoVITS
       Icon=/home/hsz/WebApps/GPT-SoVITS/icon.png
       Exec=/home/hsz/WebApps/GPT-SoVITS/./launch.sh
       Terminal=true
       Categories=AudioVideo;Music;Application;ConsoleOnly;
      
    5. 重启机器后生效,要使用时双击图标即可

配置依赖的模型

光安装好是无法使用的,我们还必须先配置好模型.

  • 预训练模型[必装],去lj1995/GPT-SoVITS使用git下载其中的全部文件并放到根目录下的GPT_SoVITS/pretrained_models文件夹下.

      cd <GPT-SoVITS项目路径>
      cd GPT_SoVITS
      rm -rf pretrained_models
      git clone https://huggingface.co/lj1995/GPT-SoVITS pretrained_models
    
  • G2PW模型[中文tts需要安装],去这个地址下载文件,解压后文件夹改名为G2PWModel并放到GPT_SoVITS/text目录下

  • UVR5权重[用于语音和音乐背景音等分离],进入lj1995/VoiceConversionWebUI/uvr5_weights路径,将其中的所有文件和文件夹下载到tools/uvr5/uvr5_weights目录.

  • ASR(Automatic Speech Recognition,自动语音识别)模型,根据不同的语言将模型下载到tools/asr/models目录下

      cd tools/asr/models
      git clone https://www.modelscope.cn/iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch.git
    
      git clone https://www.modelscope.cn/iic/speech_fsmn_vad_zh-cn-16k-common-pytorch.git
    
      git clone https://www.modelscope.cn/iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch.git
    
      cd tools/asr/models
      git clone https://huggingface.co/Systran/faster-whisper-large-v3
    
      cd tools/asr/models
      git clone https://www.modelscope.cn/iic/speech_uniasr_asr_2pass-cantonese-chs-16k-common-vocab1468-tensorflow1-online.git
    

CosyVoice

CosyVoice是阿里开源的人声复制工具,效果我个人感觉比GPT-SoVITS要好,但也确实慢.

安装

假设我们要将环境安装到~/Webapp目录下,安装过程可以分成如下步骤

  1. 克隆CosyVoice项目

     cd ~/Webapp
     git clone https://github.com/FunAudioLLM/CosyVoice.git
    

    之后为了依赖不冲突,进入项目根目录创建requirements_rocm.txt来安装依赖

     conformer==0.3.2
     deepspeed
     diffusers==0.29.0
     gdown==5.1.0
     gradio==5.4.0
     grpcio==1.57.0
     grpcio-tools==1.57.0
     hydra-core==1.3.2
     HyperPyYAML==1.2.2
     inflect==7.3.1
     librosa==0.10.2
     lightning==2.2.4
     matplotlib==3.7.5
     modelscope==1.15.0
     networkx==3.1
     omegaconf==2.3.0
     onnx
     onnxruntime
     openai-whisper==20231117
     protobuf==4.25
     pydantic==2.7.0
     pyworld==0.3.4
     rich==13.7.1
     soundfile==0.12.1
     tensorboard==2.14.0
     torch
     torchaudio
     transformers==4.40.1
     uvicorn==0.30.0
     wget==3.2
     fastapi==0.115.6
     fastapi-cli==0.0.4
     WeTextProcessing==1.0.3
    
  2. 安装专用环境

     cd CosyVoice
     # 安装依赖的sox相关包
     sudo apt-get install sox libsox-dev
     # 构造虚拟环境
     python -m venv venv
     # 激活虚拟环境
     source venv/bin/activate
     # 安装`rocm_sdk_builder`提供的各种python包
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch-2.4.1-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchaudio-2.4.1+7506e3c-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch_migraphx-0.0.3-cp311-cp311-linux_x86_64.whl  
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchvision-0.20.0a0+bea1d4f-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/triton-3.0.0+git759b4fe3-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/deepspeed-0.15.1+77f0e5cb-cp311-cp311-linux_x86_64.whl   
     pip install <rocm_sdk_builder项目位置>/packages/whl/bitsandbytes-0.43.2.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/mpi4py-4.0.1.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/onnxruntime_training-1.18.1+cpu-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/vllm-0.6.3.dev5+g9e9816f6.rocm614-cp311-cp311-linux_x86_64.whl
     # 安装其他依赖
     pip install -r requirements_rocm.txt
    

    CosyVoice本质上还是一个python包,它给的webui还是相当简陋的,个人认为并不值得封装成快捷方式,需要的时候用

     python webui.py -port 5000 --model_dir pretrained_models/CosyVoice-300M
    

    这样的形式启动就好,个人还是更推荐自己些python脚本,灵活很多

配置依赖的模型

光安装好是无法使用的,我们还必须先配置好预训练模型.

# git模型下载,请确保已安装git lfs
mkdir -p pretrained_models
git clone https://www.modelscope.cn/iic/CosyVoice2-0.5B.git pretrained_models/CosyVoice2-0.5B # 最新的CosyVoice v2预训练模型,带情感控制
git clone https://www.modelscope.cn/iic/CosyVoice-300M.git pretrained_models/CosyVoice-300M #CosyVoice v1基本模型
git clone https://www.modelscope.cn/iic/CosyVoice-300M-25Hz.git pretrained_models/CosyVoice-300M-25Hz
git clone https://www.modelscope.cn/iic/CosyVoice-300M-SFT.git pretrained_models/CosyVoice-300M-SFT
git clone https://www.modelscope.cn/iic/CosyVoice-300M-Instruct.git pretrained_models/CosyVoice-300M-Instruct # 带情感控制的CosyVoice v1模型
git clone https://www.modelscope.cn/iic/CosyVoice-ttsfrd.git pretrained_models/CosyVoice-ttsfrd

ChatTTS-ui

ChatTTS-ui是一款基于ChatTTS的tts工具,我个人认为它是用于对话最佳的选择

安装

假设我们要将环境安装到~/Webapp目录下,安装过程可以分成如下步骤

  1. 克隆ChatTTS-ui项目

     cd ~/Webapp
     git clone https://github.com/jianchang512/ChatTTS-ui.git
    
  2. 安装专用环境

     cd ChatTTS-ui
     # 构造虚拟环境
     python -m venv venv
     # 激活虚拟环境
     source venv/bin/activate
     # 安装`rocm_sdk_builder`提供的各种python包
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch-2.4.1-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchaudio-2.4.1+7506e3c-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/torch_migraphx-0.0.3-cp311-cp311-linux_x86_64.whl  
     pip install <rocm_sdk_builder项目位置>/packages/whl/torchvision-0.20.0a0+bea1d4f-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/triton-3.0.0+git759b4fe3-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/deepspeed-0.15.1+77f0e5cb-cp311-cp311-linux_x86_64.whl   
     pip install <rocm_sdk_builder项目位置>/packages/whl/bitsandbytes-0.43.2.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/mpi4py-4.0.1.dev0-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/onnxruntime_training-1.18.1+cpu-cp311-cp311-linux_x86_64.whl
     pip install <rocm_sdk_builder项目位置>/packages/whl/vllm-0.6.3.dev5+g9e9816f6.rocm614-cp311-cp311-linux_x86_64.whl
     # 安装其他依赖
     pip install -r requirements.txt