5 ms·
Let us know when you have written your "sufficiently smart compiler" It is hard, see here [1]. [1] https://en.wikipedia.org/wiki/Itanium https://en.wikipedia.o
by rjsw 9y ago
Let us know when you have written your "sufficiently smart compiler" It is hard, see here [1].
[1] https://en.wikipedia.org/wiki/Itanium https://en.wikipedia.org/wiki/Itanium
- dnautics 9y agoyeah I acknowledged that joke, but if you don't think that, for example, say LLVM is light-years ahead of GCC in implementing plugins that let you do various forms of optimization, you're crazy. It stands to reason that further architectural developments will make things even better than what we have now. Nowithstanding the fact that your answer is totally unhelpful: I thought about it for a second and I think the answer is basically that if you have a multithreading cores and you're pending on the results of another operation, then you can't necessarily know what optimizations you can do ahead of time because you don't know what other threads are resident on your core, which will affect the on-the-fly reorganization.
- rjsw 9y agoOther people have pointed out that Itanium is the most recent example of a project that expected to be able to write a really smart compiler for an in-order CPU and failed. If you can write better LLVM plugins then I'm sure Intel and HP will be happy to throw lots of money in your direction.
- dnautics 9y agoThe field is littered with the tombstones of people that have tried to make compilers for insert any foreign architecture. Obviously in-order CPUs are a challenge on top of that. I do think there is a real 'go-to-market' problem. If you think about it this is kind of solved by Nvidia (with CUDA). GPUs are in-order computational arrays with custom compiler.
- wbl 9y agoGPUs are vector processors under another name, that hide the latency of memory differently. They don't need to use the sort of compiler tricks you would with CPU code.
- AlphaSite 9y agoAlso, as I understand it, GPUs are now out of order as well, aren’t they?
- TomV1971 9y agoNo, they are not. OoO is much more expensive to implement than simply scheduling a different warp to hide latency.
- deepnotderp 9y agoAbsolutely not. Maybe you're confusing the GPU's threading techniques for OoO?
- deepnotderp 9y agoYeah, but GPUs target only a small subset of the workloads and they are very hard to program even then. I prefer processors like the Rex Neo or Adapteva Epiphany in that respect actually.
- dnautics 9y agohave you tried programming rex neo?
- deepnotderp 9y agoNope, I know you have experience with it though, so perhaps you can help there ;) I've toyed around with the older Epiphanies though, and they were definitely easier than GPUs in many respects.