旧GPU重生指南:探索计算机安全与程序分析新用途

本文探讨如何将淘汰的旧GPU重新用于计算机安全研究,包括嵌入式平台模糊测试、随机优化、SMT求解、可达性查询等前沿技术应用,为硬件资源循环利用提供创新解决方案。

如何处理那些旧GPU?- Trail of Bits博客

[跟着披头士《With A Little Help From My Friends》的曲调唱] 你会站起来把它扔掉吗?

这里有个谜题:当新GPU不断生产,产品周期约18-24个月,每个周期GPU性能翻倍(根据黄氏定律),那么10年前的服务器GPU会怎样?我们四处询问却无人能答;我们只知道它们被踢出Google Cloud和Microsoft Azure(但AWS除外),而且对机器学习毫无用处,因为有太多新的、指数级更强大的版本可用。

这些旧的GPU——仍然安装在机架上、功能正常,且资本成本已支付——肯定不会就这样被扔进垃圾场吧……是吗?

请不要这样做!在Trail of Bits,我们想使用旧GPU——即使是那些已过官方寿命的——来解决有趣的计算机安全和程序分析问题。如果你打算处理一架子旧GPU,请别这么做!我们很乐意聊聊如何延长你资本投资的使用寿命。

如何利用旧GPU

以下是我们一直在研究并希望进一步探索的一些想法。

嵌入式平台模糊测试。GPU天然适合模糊测试问题,因为模糊测试具有极高的并行性,并且存在解决发散问题的自然变通方法。GPU模糊测试在嵌入式领域最有效,因为无论如何都需要编写模拟器。那么,编写快速模拟器而不是慢速模拟器是有意义的。我们的GPU模糊测试原型表明这个概念是可行的,但它有一些限制,使其难以用于实际模糊测试。我们想解决这个问题,并正在研究一些想法(避免静态翻译,应用我们快速DBT工具的性能经验等)以使模拟器创建变得实用。

随机优化。随机优化器,如斯坦福的STOKE,搜索大量潜在机器指令,寻找新颖、非显而易见的转换以提高程序性能。这种方法的一个关键瓶颈是搜索吞吐量,我们相信在GPU上可以做得更快。

SMT求解。SMT在优化和安全中有许多用途,但在算法级别抵抗并行化。SMT问题的两个具体实例可以从简单有效的GPU加速中受益。第一个是浮点数。先前的研究使用CPU的暴力搜索来解决CPU上的浮点SMT,我们想通过GPU加速来扩展。其次,GPU可以对抵抗常规算法的传统整数SMT理论进行暴力搜索。基于GPU的搜索将与其他方法并行进行,并且是对当前技术水平的严格改进。

可达性查询。程序分析的另一个关键原语是可达性查询;即,给定一个(非常大的)程序,我能否从行Y到达行X,如果能,路径是什么?这个问题通常在O(n³)时间内运行,并且经常是实际程序分析中的瓶颈。我们相信可以使用GPU计算使即使复杂的可达性查询更加实用。

Datalog加速。Datalog作为一种通过Souffle等工具实现大型程序静态分析的语言获得了新生。最近的研究显示通过GPU加速datalog操作有希望,这应该允许更好、更可扩展的静态分析工具。

API级翻译。这不是GPU的用途,但与GPU编程相关:我们相信可以使用MLIR和Trail of Bits的VAST透明地跨API层编译代码。也就是说,源代码将停留在一个API上(例如,来自CUDA),但在编译期间,编译器将使用MLIR方言翻译将程序从CUDA语义转换为OpenCL语义。我们想创建一个原型来看看这种编译是否可行。

帮助我们拯救旧GPU!

我们思考这些问题已有一段时间,并想编写一些实用的概念验证软件来解决它们。为此,我们正在寻求研究资金和访问备用GPU容量。重要的是,我们不需要访问最新最好的GPU;即将寿命终止或不再适用于AI/ML应用的硬件对我们来说正好合适。如果你想帮忙,请告诉我们!我们与大学在类似研究挑战上有合作历史,并渴望继续这种合作关系。

如果你喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News

页面内容 如何利用旧GPU 帮助我们拯救旧GPU! 近期文章 Trail of Bits的Buttercup在AIxCC挑战赛中获得第二名 Buttercup现已开源! AIxCC决赛:数据对比 攻击者的提示注入工程:利用GitHub Copilot 作为新员工发现NVIDIA Triton中的内存损坏 © 2025 Trail of Bits. 使用Hugo和Mainroad主题生成。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计