1作者: mehmetoguzderin10 天前原帖
你是否曾想过,当你让一个AI代理在GPU管线编程(包括着色器)上自由发挥时会发生什么?`shaderc-vkrunner-mcp`使你能够了解这一点,<i>而不</i>用担心实际的GPU或处理驱动程序或操作系统的问题。 其核心思想是赋予AI代理编写、编译和运行GPU代码的能力,并安全或稳定地进行迭代,然后让你在需要时查看输出——这一切都是完全在本地进行的。 它完全在Docker中运行,使用Mesa的软件Vulkan驱动程序。无需尝试对任何实际物理GPU进行半虚拟化,这意味着代理可以安全地在CPU上实验各种炫酷的Vulkan特性——原子操作、子组、协作矩阵等等。尽管速度较慢,但它在测试逻辑方面的能力令人惊讶。 我选择Vulkan是因为它跨平台(如今驱动程序支持良好,Mesa几乎可以在任何地方运行,而MoltenVK则为希望进行类似实验的Mac用户提供支持),并且提供了一套足够的原语供硬件加速代码到竞争水平,足以进行探索,并避免了厂商锁定。 但为什么要将这些放在Docker中呢?直接在主机上设置Vulkan开发工具或类似工具可能会覆盖某些环境变量,导致副作用等问题。通过这种方式,Docker是<i>唯一</i>的依赖项。拉取镜像(多架构:amd64、arm64、通过QEMU构建的实验性riscv64/ppc64le),然后连接你的MCP客户端(如Copilot或Inspector工具)。它挂载你当前的目录,以便代理可以保存文件(图像等),而不需要进一步暴露,以避免任何问题,因为LLM将会生成代码,可能基于你将要连接的另一个MCP,从而导致一系列潜在问题。 它远非完美或完整。目前它是单体的,并封装了CLI工具(`shaderc`、`VkRunner`),计划稍后直接使用API。主要与Copilot的代理进行了测试。现在它绝对是一个“玩具”,但却是一个有趣的探索代理能力的工具。我已经能够从简单到中等复杂的内容生成有趣的视觉效果,并实际调整一些计算着色器。AI<i>真的</i>能够优化着色器或从零开始创建一个酷炫的SDF光线行进器吗?至少让你尝试一下。 查看代码,尝试输入一些提示,看看会有什么问题!欢迎贡献,特别是在代理的可用性方面,因为我怀疑在描述或生成方案方面可能还有相当大的改进空间。一些示例截图在顶层的README文件中。 一个可用性提示是,代理通常在第一次尝试时不会立即掌握接口;然而,如果你提供出现的错误,代理不会进行迭代(可能只是FTTB,我预计Copilot等会让AI在不久的将来对方案问题进行迭代),事情就会开始顺利进行,并在正确的方向上变得富有成效。由于这里的任务比通常的要低级(直接使用Vulkan和GLSL SPIR-V),代理的调整时间会稍长,至少在我与Claude 3.7 Sonnet和4o的经验中是这样的。 GitHub: <a href="https://github.com/mehmetoguzderin/shaderc-vkrunner-mcp">https://github.com/mehmetoguzderin/shaderc-vkrunner-mcp</a> 目前正在运行一个GitHub Action来将Docker镜像打包到GHCR;不过,针对顶层Dockerfile和开发容器,快速在本地构建也是相当简单的,以增加乐趣。