Vulkan 完整介绍

Vulkan 是 Khronos 组织推出的跨平台、底层图形+通用计算API,替代老的 OpenGL,对标 NVIDIA CUDA、AMD ROCm、Apple Metal。

一句话定位:一套开放、跨厂商、低开销的硬件接口,既能做游戏渲染,也能用来做AI推理、科学计算(也就是你关心的 Vulkan 后端)。

一、基础特点

  1. 跨厂商、跨平台(最大优势)

    • 显卡:NVIDIA、AMD、Intel核显、ARM Mali(手机)、国产GPU(飞腾/兆芯配套、景嘉微等)
    • 系统:Windows、Linux、Android、BSD;macOS要靠MoltenVK转译
    • ✅ 不像 CUDA:仅限N卡 + 特定系统;Metal只给苹果;ROCm主打AMD
      只要显卡驱动实现了Vulkan,代码基本不用大改就能跑。
  2. 底层、显式驱动(和OpenGL最大区别)
    OpenGL是高层封装,驱动偷偷帮你做很多缓存、同步;
    Vulkan把控制权交给程序:

    • 手动管理内存、队列、同步信号、命令缓冲区
    • 减少驱动内部黑盒开销,理论上限性能更高
    • 代价:代码复杂很多,上手难度远高于OpenGL
  3. 两大用途

    • 🎮 图形方向:3D游戏、实时渲染、VR(很多新游戏支持Vulkan渲染)
    • 🧮 通用计算(Vulkan Compute,就是你跑LLM用的):
      利用GPU并行单元跑矩阵运算,也就是各个推理框架里的 Vulkan后端(llama.cpp / ncnn / Ollama)

注意:Vulkan Compute 不是专门为AI设计的,是通用并行计算,所以对N卡来说,矩阵乘法优化一般不如原生CUDA。

二、版本和扩展

  • Vulkan 1.0:最初版本
  • Vulkan 1.1:增加很多跨平台计算扩展(绝大多数老卡,GTX10系、RX5000系支持到这里)
  • Vulkan 1.2:更多计算、显存扩展
  • Vulkan 1.3:统一很多常用扩展为标准,现代新卡(RTX30以后、RX6000+)支持

    你的 GTX1080(Pascal)最高一般只到 Vulkan1.1,缺少很多新版本的计算扩展,这也是它Vulkan推理速度一般的原因之一。

三、和你跑本地大模型强相关的重点

  1. Vulkan后端 = 用Vulkan Compute跑GGUF等模型
    llama.cpp / ncnn 等框架,写一套算子代码,通过Vulkan接口调度GPU,不需要CUDA Toolkit。
    • 适合:AMD卡、Intel核显、国产卡、CUDA驱动装不上/环境崩了的时候救急
    • 不适合:N卡主力跑模型,同卡CUDA后端通常更快(尤其有Tensor Core的RTX20及以后)
  2. 无头卡、无视频输出卡(你那种锁驱动GTX1080)
    Vulkan 不需要接显示器,只要驱动里的Vulkan ICD组件完好,就可以做计算;
    风险点:有些商家精简锁驱动,直接删掉Vulkan ICD,vulkaninfo 识别不到显卡,就没法用。
  3. 显存:Vulkan可以直接访问GPU显存,和CUDA一样,不是走内存模拟。

四、几个容易混淆的对比

API 厂商绑定 主要场景 跑LLM感受
Vulkan 开放跨厂商 游戏、跨平台AI推理 通用备胎,N卡弱于CUDA,AMD友好
CUDA 仅NVIDIA AI、高性能计算 N卡最优,Tensor Core加速强
Metal 仅Apple Mac/iOS渲染+计算 苹果设备首选
ROCm 主要AMD AMD平台AI AMD高性能首选
OpenCL 老旧跨平台计算 老项目,逐步被Vulkan替代 现在很少新框架用

五、常用检测工具(Linux)

# 安装工具
apt install vulkan-tools
# 查看支持的Vulkan设备、版本、扩展
vulkaninfo --summary

输出里能看到显卡,就代表Vulkan可用;只看到 llvmpipe 是CPU软渲染,等于没调用显卡。

六、短板总结(客观)

  1. 没有专门AI硬件指令封装,没有Tensor Core直接接口;Nvidia不会把自家最强黑盒优化开放给Vulkan
  2. 各个厂商驱动的Vulkan实现质量参差不齐:AMD Vulkan很强,NVIDIA Vulkan Compute优化保守,老卡扩展少
  3. 开发复杂,很多AI框架的Vulkan后端属于“兼容方案”,BUG、算子缺失概率比CUDA后端高
作者:月影鹏鹏  创建时间:2026-10-24 12:48
最后编辑:月影鹏鹏  更新时间:2026-10-24 12:48