如何让旧GPU重获新生?- The Trail of Bits博客
Artem Dinaburg, Peter Goodman
2024年9月5日
研究实践
(你会起身扔掉它吗?)
[仿披头士《With A Little Help From My Friends》曲调演唱]
这里有个谜题:当新GPU不断生产、产品周期约18-24个月且每代性能翻倍(遵循黄氏定律)时,10年前的服务器GPU会何去何从?我们多方询问却无人能答;只知道它们会被谷歌云和微软Azure(但非AWS)淘汰,且由于新一代指数级性能提升的GPU涌现,这些旧卡在机器学习领域已毫无用处。
这些旧GPU——仍安装在机架中、可正常运行且资本成本已摊销——总不会直接被扔进垃圾场吧?
请别这么做!在Trail of Bits,我们希望利用旧GPU(甚至那些已过官方支持期的)来解决有趣的计算机安全和程序分析问题。如果你正打算处理一批旧GPU,请三思!我们很乐意探讨如何延长你资本投资的使用寿命。
如何利用旧GPU
以下是我们正在研究并希望深入探索的一些方向:
嵌入式平台模糊测试
GPU天生适合模糊测试问题,因为模糊测试具有高度并行性,且存在天然的分歧问题解决方案。GPU模糊测试在嵌入式领域最有效,因为开发者本就需编写模拟器。因此,编写快速模拟器比慢速模拟器更合理。我们的GPU模糊测试原型证明了概念的可行性,但存在限制导致难以实际应用。我们正通过避免静态转换、应用快速动态二进制翻译(DBT)工具的性能经验等方法改进模拟器创建流程。
随机优化
如斯坦福STOKE之类的随机优化器会搜索大量潜在机器指令,寻找能提升程序性能的新颖非明显转换。该方法的关键瓶颈是搜索吞吐量,我们相信GPU能大幅加速这一过程。
SMT求解
SMT在优化和安全领域有广泛应用,但算法层面难以并行化。SMT问题的两个具体实例可通过简单有效的GPU加速受益:一是浮点运算,现有研究使用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!
近期文章
构建安全消息传递很难:对Bitchat安全辩论的 nuanced 观点
用Deptective调查你的依赖项
系好安全带,Buttercup,AIxCC评分轮已开始!
让智能合约超越私钥风险成熟化
Go解析器中意想不到的安全隐患
© 2025 Trail of Bits.
使用Hugo和Mainroad主题生成。