编译器优化与Load-Store冲突:一个性能悬崖的故事

2025-05-04

本文讲述了一个令人意想不到的性能问题:一个简单的几何数据解码器,在不同编译器版本下的性能差异巨大。究其原因,竟是微架构中鲜为人知的Load-Store冲突。GCC-14版本通过巧妙的向量化操作,实现了性能提升。然而,GCC-15却因为编译器优化策略的改变,导致Load-Store冲突频发,性能大幅下降。而Clang在ARM架构上的表现则出人意料地优秀,得益于其对ARM架构Load-Store特性的充分利用。这篇文章提醒我们,编译器优化并非一劳永逸,需要密切关注编译器生成的代码,以及底层硬件的微架构特性。

阅读更多

惊人的差异!不同GPU的加速结构内存占用对比

2025-04-02

本文对不同厂商的GPU在构建光线追踪加速结构(BVH)时的内存占用进行了对比测试。结果显示,不同GPU之间存在巨大的差异,最新NVIDIA GPU的内存占用只有AMD GPU的1/3甚至1/2.5。文章深入探讨了BVH的内部结构、不同驱动程序的实现差异以及硬件架构的影响,并分析了AMD RDNA2/3和RDNA4架构的BVH实现细节,解释了内存占用差异背后的原因。最终,作者总结了BVH内存占用受硬件、驱动程序和算法等多种因素影响,并展望了未来改进的空间。

阅读更多
硬件 加速结构

X 速度慢的合理理由

2024-06-01

本文探讨了“X 速度慢,但这是可以预料的,因为它需要做很多工作”这一说法。作者认为,这种说法常常忽略了对问题和解决方案的深入分析,并列举了 X 速度慢的几种可能原因,包括算法效率低下、实现不佳、未充分利用硬件、执行了不必要的任务以及问题框架不当等。作者强调,只有在对问题和解决方案进行全面分析和优化后,才能断言 X 的速度慢是合理的。

阅读更多
61