Mac电脑 Spark-TTS模型尝试使用‘mps’——提效 30% 左右

如题。

上次本地成功部署了 Spark - tts 文生音频AI 模型,但是当时是用 cpu 在跑。所以想继续尝试,看能否启用 Mac 电脑的 GPU,使用上'mps'模式。 mp.weixin.qq.com/s/UGvPKAWqp...

第一步:重新安装PyTorch

继续启用上次的 Python 环境

复制代码
conda activate sparktts

再到 pytorn 的官网: pytorch.org/get-started...

进入这里已经自动给选好了,感觉对新手非常友好,点个赞。

image-20250320224613453

复制代码
pip3 install torch torchvision torchaudio

(这一步搜了很多资料发现大都是nightly的。初学乍练,没搞好。折腾一圈还是用官网的Stable版好使,而且官网的指引做的也不错。)

第二步,测试PyTorch安装情况

测试PyTorch 版本和是否正常MPS

scss 复制代码
python -c "import torch; print(torch.__version__); print(torch.backends.mps.is_available())"

查看 pytorch 是否安装成功,版本是否正常,是否支持 MPS。

结果反馈正常。

性能测试

v3u.cn/a_id_272

采用这个网页中一样的测试代码进行测试:

ini 复制代码
import torch
import timeit
import random

x = torch.ones(50000000,device='cpu')
print(timeit.timeit(lambda:x*random.randint(0,100),number=1))

x = torch.ones(50000000,device='mps')
print(timeit.timeit(lambda:x*random.randint(0,100),number=1))

这是我的结果:

复制代码
0.013431958002911415
0.002348417001485359

这是网页内的结果:

复制代码
0.020812375005334616
0.003058041911572218

简单比较一下:

0.0134 / 0.0023 ≈ 5.83 倍

0.0208 / 0.0030 ≈ 6.93 倍

结果有点意外,M1Pro 上启用 MPS 后效果更佳明显。M4 芯片机器上反倒倍数比较小。

第三步,修改代码测试Spark - TTS启用MPS后的效果

修改代码

修改代码过程也是折腾了一圈,最后发现还是在开头的时候强制设置 mps 简单粗暴有效。

ini 复制代码
device = torch.device("mps")

生成声音

直接用内置的英文:"You can generate a customized voice by adjusting parameters such as pitch and speed."来测试。

开始执行后能明显看到 cpu 的消耗非常小, GPU 的利用率明显有上升,部分计算已经转移到了 GPU。

结果也挺明显,除了开始几次生成时时间是 14 秒和 15 秒。后续基本时间都稳定在了 10秒上下,有时能低于 10 秒。

总结:

因此得出一个粗浅的结论:启用 MPS 后,一句英文的生成时间可以从 平均 14秒缩减到 10 秒左右。有接近 30% 的提效

但是加速幅度未达理论值(张量计算测试中MPS快5-6倍,但端到端仅快30%),说明仍有优化空间。猜测这么几个点:

  1. 可能代码修改的不对,因为目前只改了入口处。
  2. 或者Spark TTS 自身问题,很多计算还是落在了 CPU 上。
  3. 也可能是苹果 MPS 的问题,目前支持的计算类型还是不够完全。

此外多次测试也发现了另外一个问题,模型自带的语音生成音色貌似不稳定,每次生成的音色都不一样。如果想用它做生产力工具还得想想办法把音色固定下来。

其他

写完后重新检查感觉有几个不严谨的地方:

  1. Spark TTS 的 requirements.txt 中有声明 torch==2.5.1torchaudio==2.5.1。应该直接用 2.5.1 的 支持 mps 的版本先做个尝试,再升级尝试。
  2. 由于性能测试仅涉及张量计算,没有涵盖完整推理流程,个人觉得不能完全反映实际推理速度。
相关推荐
Coder_Boy_30 分钟前
技术发展的核心规律是「加法打底,减法优化,重构平衡」
人工智能·spring boot·spring·重构
会飞的老朱2 小时前
医药集团数智化转型,智能综合管理平台激活集团管理新效能
大数据·人工智能·oa协同办公
聆风吟º4 小时前
CANN runtime 实战指南:异构计算场景中运行时组件的部署、调优与扩展技巧
人工智能·神经网络·cann·异构计算
Codebee6 小时前
能力中心 (Agent SkillCenter):开启AI技能管理新时代
人工智能
聆风吟º7 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
uesowys7 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_56787 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子7 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
智驱力人工智能8 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
qq_160144878 小时前
亲测!2026年零基础学AI的入门干货,新手照做就能上手
人工智能