Microsoft's JIT team just released CTP 5 of "RyuJIT", its next generation JIT compiler for .NET. I just got around to test it with the SIMD version of my X-ray simulator. The updated benchmark results look like this:
Yes, performance actually dropped with the latest release. Again, the AABB ray intersection test is the bottleneck and this time the generated machine code is even worse compared to CTP3:
Let's just hope this is a temporal regression.
This comment has been removed by the author.
ReplyDeleteThanks for posting this! I'm a developer on the CLR, involved in the design of SIMD and its support in the JIT. As we mentioned in the blog post about the JIT support for the latest CTP (http://blogs.msdn.com/b/clrcodegeneration/archive/2014/10/31/ryujit-ctp5-getting-closer-to-shipping-and-with-better-simd-support.aspx), changing the fixed-vector types (e.g. Vector3) to be mutable, with direct field access, required us to make some changes to our handling of the SIMD types in the JIT. In the process, we caused some code to incur extra copies of SIMD vectors. Your code highlighted a case that shouldn't be too difficult to address, and I'm working on a fix for that now. We're always interested in hearing questions or feedback on JIT support, and you can send them to ryujit@microsoft.com.
DeleteGood to hear, thanks!
Delete