Remix.run Logo
torginus 4 days ago

Watch this video:

https://www.youtube.com/watch?v=m7PVZixO35c

New computers aren't as much faster as benchmarks would lead you to believe. If your code relies on unpredictable branches, dependept memory accesses in a tight loop, or very tight feedback loops inside computations, new CPUs won't have that much of an edge.

pixelpoet 3 days ago | parent [-]

I'm writing rendering engines, so quite up to speed on how fast CPUs and GPUs are, where the bottlenecks are etc :) In fact I worked on the latest Cinebench as part of Redshift dev.

torginus 3 days ago | parent [-]

Ah sorry, didn't mean to sound so haughty, I really just quickly type these comments off before I start my workday, really should give more thought to sounding a bit more tactful.

It's really cool they you get to meet people like you here in the comments :)

However I think the video raises an interesting point - I imagine you're an expert on modern CPU optimization, and spend quite a bit of time thinking about cache access patterns, exposing instruction-level parallelism to the CPU and other such gory bits without which your code wouldn't be running as fast on modern CPUs.

Most of us regular folks however don't really write code like that, and I think for that sort of code, I don't think modern CPUs run as much faster than an ancient Core 2 Duo, as benchmarks would suggest, but we can expect results somewhat more like in the video I linked.

Congrats on your work getting used in Cinebench, but I can't help but ask you - what's your thoughts on your work getting used to basically benchmark every CPU under the sun by tech reviewers, who then make recommendations on whether to buy that CPU or another one. Looping back to the previous point, I think your code has quite likely very different performance characteristics than the sort of generic stuff most people end up running, and this sort of benchmarking creates an incentive for manufacturers to crank out CPUs that are good at running hyper-optimized path tracing code, while ignoring real-world performance. What are your thoughts on that?