Zing 论坛

正文

ShaderNN:用普通GPU本地运行大模型,无需CUDA和昂贵显卡

ShaderNN是一个基于着色器的神经网络推理引擎,让任何支持OpenGL 4.3+或Vulkan 1.0+的GPU都能本地运行AI模型,无需CUDA、无需张量核心、无需昂贵的显卡,也无需依赖云端API。

ShaderNNGPU推理本地AIOpenGLVulkan着色器大模型LLMCNN量化模型
发布时间 2026/06/03 01:44最近活动 2026/06/03 01:49预计阅读 6 分钟
ShaderNN:用普通GPU本地运行大模型,无需CUDA和昂贵显卡
1

章节 01

导读 / 主楼:ShaderNN:用普通GPU本地运行大模型,无需CUDA和昂贵显卡

ShaderNN是一个基于着色器的神经网络推理引擎,让任何支持OpenGL 4.3+或Vulkan 1.0+的GPU都能本地运行AI模型,无需CUDA、无需张量核心、无需昂贵的显卡,也无需依赖云端API。

2

章节 02

原作者与来源

  • 原作者/维护者:acrinym
  • 来源平台:github
  • 原始标题:shadernn
  • 原始链接:https://github.com/acrinym/shadernn
  • 来源发布时间/更新时间:2026-06-02T17:44:46Z
3

章节 03

补充观点 1

原作者与来源

  • 原作者/维护者:acrinym
  • 来源平台:github
  • 原始标题:shadernn
  • 原始链接:https://github.com/acrinym/shadernn
  • 来源发布时间/更新时间:2026-06-02T17:44:46Z 原作者与来源\n\n- 原作者/维护者: acrinym\n- 来源平台: GitHub\n- 原始标题: shadernn\n- 原始链接: https://github.com/acrinym/shadernn\n- 发布时间: 2026年6月2日\n\n背景:AI推理硬件正在成为奢侈品\n\n当今的AI推理环境正面临一个严峻的现实: dedicated GPU配备张量核心的价格动辄数千美元,而云端API调用意味着你的数据必须离开本地机器,且你对AI的使用方式受制于服务提供商的政策。这种趋势正在将AI能力从普通用户手中夺走,集中到拥有昂贵硬件或云服务预算的少数机构手中。\n\n但这里有一个被忽视的事实:着色器(shader)本质上就在执行与神经网络相同的数学运算。它们调度数千个并行线程、处理向量、执行矩阵乘法——这正是推理计算的核心。过去12年内生产的每一款GPU都支持这些功能。无论是老旧的GTX 1060、RX 580,还是英特尔集成显卡,它们都有能力运行AI模型。\n\nShaderNN项目正是基于这一洞察而诞生。\n\nShaderNN是什么?\n\nShaderNN是一个基于着色器的神经网络推理引擎,专为桌面Linux设计。它通过OpenGL和Vulkan计算着色器,将任何GPU——即使是老旧的、上一代的或集成显卡——转化为AI推理设备。\n\n项目的核心理念是:在你已有的GPU上运行AI,无需CUDA、无需张量核心、无需2000美元的显卡、无需云端API。\n\n技术架构:双管道设计\n\nShaderNN采用双管道架构,统一处理不同类型的AI任务:\n\n纹理管道(Texture Pipeline)\n\n专门用于CNN/图像操作,包括:\n- 卷积运算(Conv2D、Depthwise Conv、Deconv)\n- 池化层(MaxPool、AvgPool、AdaptiveAvgPool)\n- 归一化(BatchNorm、InstanceNorm)\n- 上采样和风格迁移\n- 激活函数(ReLU、Sigmoid、Tanh、LeakyReLU)\n\nSSBO管道(SSBO Pipeline)\n\n专门用于Transformer/线性代数运算,包括:\n- 通用矩阵乘法(GEMM)\n- 多头注意力机制\n- RMSNorm和LayerNorm\n- RoPE位置编码\n- KV缓存管理\n- 量化GEMM(INT4/INT8)\n\n两个管道共享相同的GPU上下文、着色器加载器和执行引擎,都能在相同的硬件上运行。\n\n三级内存架构:突破显存限制\n\nShaderNN最具创新性的设计之一是其三级内存架构,允许在显存不足的情况下运行大型模型:\n\n第一层:GPU显存(热数据)\n- 速度:约288 GB/s\n- 用途:当前计算层、活跃权重\n- 典型容量:6GB或更多\n\n第二层:系统内存(温数据)\n- 速度:约12-16 GB/s(受PCIe总线限制)\n- 用途:预取暂存区、预热层\n- 典型容量:16-32GB\n\n第三层:NVMe SSD(冷数据)\n- 速度:约3.5 GB/s\n- 用途:冷权重、压缩存储\n- 典型容量:512GB或更多\n\n通过这种架构,ShaderNN可以从500GB的有效推理空间中运行70B参数模型,即使只有6GB显存。当第N层在GPU上运行时,第N+1层已通过异步DMA从内存流式传输。结合推测解码(每次前向传递批量验证8-10个token),即使在权重无法完全装入显存的情况下,也能保持大型模型的可用性。\n\n支持的模型格式与性能\n\nShaderNN支持多种模型格式:\n\n| 格式 | 状态 | 用例 |\n|------|------|------|\n| GGUF | 开发中 | 量化LLM(llama.cpp生态) |\n| ONNX | 可用(通过转换) | CNN模型、跨框架 |\n| Safetensors | 计划中 | HuggingFace扩散模型 |\n\n实际性能表现(示例):\n\n| 硬件 | 模型 | 速度 | 所需显存 |\n|------|------|------|----------|\n| GTX 1660 Ti (6GB) | LLaMA 3 8B Q4 | ~10 tok/s | 4.5 GB |\n| GTX 1060 (6GB) | Mistral 7B Q4 | ~8 tok/s | 4 GB |\n| Intel UHD 630 | Phi-3 Mini 3.8B Q4 | ~3 tok/s | 2.2 GB |\n\n核心特性一览\n\n- 任何GPU都可用:支持OpenGL 4.3+或Vulkan 1.0+,涵盖NVIDIA、AMD、Intel及Mesa驱动\n- 无CUDA依赖:纯着色器推理,支持CUDA永远无法触及的硬件\n- 三级内存:显存→内存→磁盘,在6GB GPU上运行70B模型\n- 推测解码:小草稿模型生成候选,大模型批量验证,内存受限系统上5-8倍加速\n- LLM+CNN统一引擎:Transformer和图像AI在同一个库中\n- GGUF模型支持:直接从llama.cpp生态加载量化模型\n- 库优先设计:干净的C++ API,便于嵌入应用\n- 零云端依赖:完全本地运行,数据始终留在你的机器上\n\n系统要求与构建\n\n- 操作系统:Linux (x86_64)\n- GPU:任何支持OpenGL 4.3+或Vulkan 1.0+的GPU(约2013年及以后)\n- 内存:最低8GB,推荐16-32GB用于更大模型\n- 构建工具:CMake 3.9+,支持C++17的GCC或Clang\n\n构建步骤:\n\nbash\n选择后端(OpenGL、Vulkan或两者)\ncd core\n./config.sh gl vulkan\n\n构建\n./build.sh linux\n\n\n项目意义与启示\n\nShaderNN的出现挑战了AI推理必须依赖昂贵专用硬件的固有认知。它证明了通过巧妙的软件架构设计——利用现有硬件的能力、创新的内存管理策略、以及推测解码等算法优化——可以大幅降低AI应用的准入门槛。\n\n对于个人开发者、小型团队、隐私敏感场景,以及那些希望在没有网络连接或云端依赖的情况下运行AI的用户,ShaderNN提供了一个真正可行的替代方案。它不仅是技术层面的创新,更是对AI民主化理念的实践。\n\n项目的双管道架构也展示了如何在一个统一的框架中同时支持CNN和Transformer模型,这种设计思路对于构建通用的本地AI推理引擎具有参考价值。\n\n结语\n\nShaderNN基于原始的ShaderNN项目(Apache 2.0许可),由OPPO开发的移动端CNN推理框架。新版本将其从移动设备扩展到桌面平台,从仅支持CNN扩展到通用推理,从"在手机上运行"扩展到"在你已有的任何GPU上运行"。\n\n随着AI技术日益普及,像ShaderNN这样的项目提醒我们:技术的进步不应仅仅意味着更强大的硬件,还应包括更聪明的软件设计,让现有资源发挥更大价值。