作者:Alex Pim
欢迎阅读这篇关于如何在 PowerVR GPU 上加速大型语言模型推理博客系列的第二篇。
在系列博客的第一篇中,我们解释了什么是大型语言模型,介绍了注意力机制的概念,以及利用 KV 缓存进行Token生成的原理。随后,我们阐述了自回归型大型语言模型的两种工作模式,并解释了为何运行这些模型会消耗如此巨大的计算资源。
接着,我们介绍了两个性能指标:“首次Token生成时间”和“Token间延迟”,这些指标在业界常被用于描述大型语言模型的推理性能——如果您错过了第一篇,可点击此处查阅。
本篇我们将介绍一个名为 Llama.cpp 的流行开源大型语言模型推理平台,并说明借助 Imagination 的贡献,如何利用该平台的 OpenCL 计算后端,在 PowerVR GPU 上部署和对大型语言模型进行性能基准测试。
什么是 Llama.cpp?
Llama.cpp 是一个大型语言模型推理引擎的开源实现,该项目通过一系列可配置的后端实现(包括 OpenCL 和 Vulkan)提供了对将基于重复矩阵-矩阵和矩阵-向量乘法的 Transformer 层卸载到 GPU 上的支持。
Llama.cpp 帮助将此前仅限于数据中心的大型参数模型迁移到了其他硬件平台,包括手机等边缘设备。从 PyTorch 模型到 GGUF 格式(Llama.cpp 的内部模型格式)的全面软件流程,为多种大型语言模型(LLM)架构提供了模型基准测试和高性能部署支持,其中许多模型可在 Hugging Face 等知名模型数据库中找到。
Llama.cpp 平台的一个关键部分是能够处理使用预量化权重格式的模型,例如 4 位整数,以及常用的 F16 和 F32 格式。
对 Q4_0 等压缩数据格式的支持,在不影响模型准确性的前提下,显著减少了模型参数的内存占用(从而降低了将权重加载到 GPU 本地内存所需的带宽)。
PowerVR GPU 如何助力 LLM 计算?
众所周知,GPU 最初的设计目的是将密集的图形计算任务从 CPU 卸载下来,但它同样非常擅长执行高度可并行化的工作负载,例如矩阵-矩阵和矩阵-向量乘法。如前所述,这些运算正是 LLM 计算以及许多其他类型神经网络的核心。
Imagination 对 Llama.cpp 中 OpenCL 计算后端所做的贡献,使得 PowerVR GPU 能够以以下形式获得开箱即用的支持:a) 支持默认 OpenCL 后端中的现有计算内核, b) 通过PowerVR优化版OpenCL后端,添加专门针对PowerVR GPU架构设计的优化内核;以及 c) 实现协作矩阵乘法的优化内核演进;该计算操作现已在包括Imagination最新E系列GPU IP在内的多种GPU上得到支持。
这一最新类别的协作矩阵乘法内核将在未来几周内被推送到 Llama.cpp 的 PowerVR 优化 OpenCL 后端上游。
默认 OpenCL 后端——在 PowerVR 上运行
通过对现有 OpenCL 后端代码进行少量修改,使其识别 Imagination 作为 GPU 供应商,并在内核代码中注册 128 的子工作组大小,即可利用 PowerVR GPU 解锁 Llama.cpp 中用于大型语言模型推理的广泛功能。
默认 Vulkan 后端
除了支持 OpenCL 之外,PowerVR GPU 还支持 Vulkan 计算平台。因此,通过对 Vulkan 后端进行类似的修改(以识别 PowerVR GPU 并设置默认子工作组大小),同样可以在 Llama.cpp 中使用 Vulkan 后端进行大型语言模型的推理。
针对 PowerVR 优化的内核代码
不过,为了在 PowerVR GPU 上实现最佳性能,Imagination 还将其经过性能调优的内核作为可配置的构建扩展添加到了 OpenCL 后端中。
这些高性能内核增加了对 F32、F16 和 Q4_0 权重格式的支持,并采用了专门针对 PowerVR GPU 架构量身定制的特定内存访问模式。
协作矩阵乘法——PowerVR 现已支持!
如果您有幸拥有 PowerVR 最新的 GPU,那么大型语言模型的推理性能将不断提升……
得益于对“SPV_KHR_cooperative_matrix” Khronos 扩展的新硬件支持,单核 PowerVR E 系列 GPU 在预填充模式下,处理提示词长度为 2048 的千问3.5 40 亿参数模型(采用 F16 权重格式)时,可实现超过 500 个Token/秒的性能。
如果您想了解使用 Llama.cpp 在 PowerVR GPU 上运行代理式工作负载的示例,请参阅这篇关于在 E 系列上运行 OpenCode 与千问 3.5 的博客文章。
性能总结
下表展示了三款 PowerVR GPU 在使用千问-3.5 40 亿参数模型和 F16 权重格式进行推理时的优化内核性能:

总结
Imagination 的新款 E 系列 GPU 在矩阵乘法方面的能效比上一代 D 系列架构提高了 15% 以上,性能提升了 400%,从而在使用大语言模型进行推理时实现了 4.7 倍的性能提升。
此外,Imagination 在 Llama.cpp 开源库中对 OpenCL 后端所做的贡献,不仅支持开箱即用的计算卸载至任何 PowerVR GPU,还提供了使用 Imagination 性能优化内核的选项,从而充分释放 PowerVR GPU 的全部潜力。
至此,我们关于 PowerVR GPU 上大型语言模型加速与性能的两篇博客系列已全部结束。希望本文对您有所帮助,并鼓励您尝试在最新的 PowerVR GPU 上使用 Llama.cpp 运行大型语言模型。
英文链接:https://blog.imaginationtech.com/llm-performance-and-acceleration-on-powervr-part-2
声明:本文为原创文章,转载需注明作者、出处及原文链接。





