文章摘要
Gimlet Labs通过AI生成的Metal内核,成功将PyTorch在Apple设备上的推理速度提升了87%,部分任务甚至比基线快数百倍。这一突破展示了前沿模型在编写优化GPU内核方面的潜力,显著提升了硬件执行效率。
文章总结
标题:利用AI生成的Metal内核在Apple设备上将PyTorch推理速度提升87%
主要内容:
Gimlet Labs实验室的研究表明,前沿AI模型能够为Apple设备生成优化的GPU内核,从而显著提升PyTorch推理速度。通过AI生成的Metal内核,在215个PyTorch模块中,推理速度平均提升了87%,部分工作负载甚至比基线快数百倍。
背景:
AI模型通过GPU内核执行硬件操作,内核的效率直接影响模型的运行速度。尽管PyTorch及其工具如torch.compile能够处理部分内核优化,但最终的性能提升仍依赖于手动调优的内核。然而,编写这些内核需要大量时间和专业知识,尤其是在非CUDA平台上,工具和文档相对匮乏。
研究方法: 研究团队使用了来自Anthropic、DeepSeek和OpenAI的8个前沿模型,测试了KernelBench数据集中的215个PyTorch模块。这些模块涵盖了从简单操作到完整模型架构的不同复杂度。通过对比生成的Metal内核与基线PyTorch实现的正确性和性能,研究团队评估了AI生成内核的效果。
主要发现: 1. 性能提升: 生成的Metal内核在Apple硬件上平均比基线PyTorch快87%,部分情况下性能提升高达10-100倍。 2. 优化策略: 模型能够识别并移除算法中不必要的工作,甚至在某些情况下将问题简化为微不足道的解决方案。 3. 模型表现: GPT-5在生成更快的内核方面表现尤为突出,但其他模型在某些问题上也能生成更优的解决方案。 4. 代理群策略: 采用“Best of N”策略的代理群在生成内核时表现优于单个模型,平均速度提升达到31%,在Level 2问题上提升42%。
未来展望: 这项研究表明,AI可以自动完成部分内核优化工作,开发者无需修改代码或使用新框架即可获得显著的性能提升。未来,这一技术有望应用于更多平台(如ROCm、CUDA、SYCL等),并进一步优化训练工作负载。
结论: 通过AI生成的Metal内核,开发者可以在不改变代码的情况下,显著提升模型在Apple设备上的推理速度。这一技术为自动优化内核提供了新的可能性,未来有望在更多平台上实现类似的性能提升。
评论总结
评论主要围绕使用AI生成PyTorch模块的kernel(核心代码)展开,观点多样且涉及技术细节。以下是总结:
对AI生成kernel的认可与兴趣
- 评论1和评论3认为这一技术非常酷,尤其是AI在特定领域的表现令人印象深刻。
- "This is pretty cool."(这很酷。)
- "This is amazing. I wouldn't have thought that AI is this good in niche topics."(这太棒了,我没想到AI在特定领域表现得这么好。)
- 评论2表达了尝试这些kernel的兴趣。
- "Are these kernel available? I'd love to try that!"(这些kernel可用吗?我很想试试!)
- 评论1和评论3认为这一技术非常酷,尤其是AI在特定领域的表现令人印象深刻。
对kernel正确性和性能的质疑
- 评论4和评论7指出,kernel的轻微错误可能影响模型运行,且测试标准过于宽松。
- "wouldn't model not work properly if kernels are even slightly off?"(如果kernel稍有偏差,模型还能正常运行吗?)
- "For a numerical kernel, this seems way too loose."(对于数值kernel来说,这似乎太宽松了。)
- 评论5认为比较未优化的PyTorch推理与定制kernel的性能并不公平,因为实际部署中应使用优化后的格式。
- "They are comparing unoptimized PyTorch inference, something you would never deploy on a device, to a model with custom kernels."(他们在比较未优化的PyTorch推理与定制kernel的性能,而前者根本不会用于实际部署。)
- 评论4和评论7指出,kernel的轻微错误可能影响模型运行,且测试标准过于宽松。
对技术细节和未来方向的讨论
- 评论6和评论3建议与其他技术(如TinyGrad或Mojo)进行对比,认为长期来看可能有更好的选择。
- "It'd be curious to see how those AI generated kernels compare to kernels generated by TinyGrad."(我很想看看这些AI生成的kernel与TinyGrad生成的kernel相比如何。)
- "Still, I can't help but think we should bet on sth like Mojo instead for the long run."(尽管如此,我还是认为长期来看我们应该押注于像Mojo这样的技术。)
- 评论7详细分析了不同级别kernel的生成效果,指出Level 2 kernel的简单操作融合可能更具优势。
- "The speculation about more simple op fusion opportunities in the Level 2 kernels vs the very simple Level 1 kernels and the complex architecture Level 3 kernels seems plausible."(关于Level 2 kernel中更简单的操作融合机会的推测,相较于非常简单的Level 1 kernel和复杂架构的Level 3 kernel,似乎是合理的。)
- 评论6和评论3建议与其他技术(如TinyGrad或Mojo)进行对比,认为长期来看可能有更好的选择。
总结:评论普遍认可AI生成kernel的技术潜力,但也对其正确性、性能测试标准以及与其他技术的对比提出了质疑。部分评论建议关注更长期的替代方案。