Live data from Hacker News

Is it time for open processors?

lwn.net

121–130 of 236 posts

Re: Is it time for open processors?

#121
post #118
post #83

Earlier quoted context omitted.

I think the problem have more to do with software, CPU's are just built to meet the demands. Today most software can only scale if you add a faster processor, that has to stop, before that happens, there is not much the processor manufacturer can do, their hands are tied IMO

I think the problems have more to do with economics. Creating new modern CPUs requires a lot of capital investment, making CPU vendors more risk averse. That's why modern CPUs by and large are not built to meet the demands of future software - they're built to meet the demands of Excel 97 (exaggerating slightly for effect). The programming interface of a modern x86 CPU is best thought of as a virtual machine with a J…

> more CPU vendors more risk averse

Seeing how Itanium went, their risk aversion seems pretty wise.

Itanium seems to satisfy most of your desires with its VLIW/EPIC architecture, which exposes much more to the compiler.

Re: Is it time for open processors?

#122
post #34

The problem is less about openness itself and more about quality of auditing. Open isn't a magic bullet. As I understand, these latest CPU vulnerabilities were in the spec themselves. You could've found them by reading the manual. See what good that did us. But I posit that open projects do better with audits than closed because they are more likely to have open audits as well, and an open audit is harder to ignore o…

> You could've found them by reading the manual

Pretty much. Everything you needed to figure this out was public.

Just publishing stuff doesn't help much in areas this complex and specialized where there are a very small number of people who can really understand what is published.

There is also a major difference between reading a spec and discovering an exploit through an adversarial process.

Nobody who had complete access to confidential data (at Intel or anywhere else) figured this out. People on the outside working with an adversarial process did.

The adversarial process is driven by testing not documentation. There is no reason to think that the people who figured it out would have been aided by having more internal documentation.

Re: Is it time for open processors?

#123
post #71

Maybe it is time to rethink how computers are built? For example, that the kernel is running on a dedicated cpu, with dedicated cache and memory.

Beyond even that you could imagine erlang-model hardware, with lots of independent µCPU with their own completely private memory communicating via message-passing (CM-style? I don't really know what programming model the Connection Machine used).

Like this: https://en.m.wikipedia.org/wiki/Transputer

Re: Is it time for open processors?

#124
post #108

Earlier quoted context omitted.

> A simpler design (RISC, no out-of-order execution, basic branch prediction and prefetching...) ought to be fast enough with modern lithography to browse the web I used a couple of Single Board Computers as my main computers for a while a couple of years back and it was really quite painful. Especially web browsing.

Yeah I actually considered that while writing my original comment, it's true that even on a low-end smartphone nowadays browsing certain websites is extremely frustrating. That being said is it really reasonable that the modern web requires multi GHz CPUs, GB of RAM and allowing a turing-complete scripting language everywhere to be able to browse most websites? Is it reasonable that the web is so complex now that eff…

Why not? The operating system is the device driver/HAL. The Browser is the operating system. The webpage is the application.

Re: Is it time for open processors?

#125

Earlier quoted context omitted.

Beyond even that you could imagine erlang-model hardware, with lots of independent µCPU with their own completely private memory communicating via message-passing (CM-style? I don't really know what programming model the Connection Machine used).

Like this: https://en.m.wikipedia.org/wiki/Transputer

To an extent. That seems way more coalesced that what I'm talking about, the page seems to talk about low tens of chips as the normal ceiling, with some exceptional cases in the low hundreds.

Even the later "fat processor" (RISC) Connection Machines had several hundreds of CPU (the earlier models had tens of thousands of single-bit processors)

Re: Is it time for open processors?

#126
post #34

The problem is less about openness itself and more about quality of auditing. Open isn't a magic bullet. As I understand, these latest CPU vulnerabilities were in the spec themselves. You could've found them by reading the manual. See what good that did us. But I posit that open projects do better with audits than closed because they are more likely to have open audits as well, and an open audit is harder to ignore o…

network stack open source for years, but most of attacks are from the internet

Re: Is it time for open processors?

#127
post #108

Earlier quoted context omitted.

Yeah I actually considered that while writing my original comment, it's true that even on a low-end smartphone nowadays browsing certain websites is extremely frustrating. That being said is it really reasonable that the modern web requires multi GHz CPUs, GB of RAM and allowing a turing-complete scripting language everywhere to be able to browse most websites? Is it reasonable that the web is so complex now that eff…

Why not? The operating system is the device driver/HAL. The Browser is the operating system. The webpage is the application.

Because not all webpages are meant to be applications. HN need not be an application. Google search results need not be an application. GMail and Facebook might be for better interactivity. At least 90% of the websites I browse everyday are static text with a few pictures (who still feature copious amounts of javascript to work around the limitations of HTML/CSS and to track me and serve me ads).

Would you consider installing and running dozens of random untrusted 3rd party applications every day on your real OS even if they were (somewhat poorly) sandboxed? Because that's what the modern web is like.

I wouldn't mind opting-in to additional "interactive" features for webapps that I want to trust but having everybody (including 3rd parties of 3rd parties of the website I'm browsing) run code on my computer when I'm on some random webpage is just insane when you take a minute to think about it.

Re: Is it time for open processors?

#128
post #80
post #71

Maybe it is time to rethink how computers are built? For example, that the kernel is running on a dedicated cpu, with dedicated cache and memory.

I agree, the single, superfast CPU model is outdated. It's a shame that multiprocessor programming is hard (or is it? It might also just be a vicious circle: 'not many people do MPP because the facilities suck because not many people do MPP').

I could right now give you a CPU with a 100,000 ALUs on it. Your CPU with ~4 ALUs is probably going to beat it in performance, because you can easily keep all of your ALUs constantly fed with data, but I'm going to struggle to keep all 100,000 ALUs fed.

We have some idea of how to do massively-parallel programming. That is, after all, what a supercomputer is. But one of the things we've found is that communication doesn't scale. For very low core counts, you can hook up each core to talk to every other one at the same latency--basically, O(N)-degree topology. For slightly higher core counts, you can keep it a hypercube, which is O(lg N) degree. But when you start thinking about a few hundred cores, you end up with a mesh, which is O(1)-degree.

What that means is you struggle to scale problems that have very high communication costs compared to computation. Matrix multiplication is wonderful--you're doing O(N^1.5) computations for each data, so communication goes down as size goes up [1]. But a BFS graph traversal is horrible, because your communication costs go up if average degree is more than O(1).

[1] This is why the TOP500 benchmark is to some degree bullshit. It's measuring performance on applications that are fundamentally computation-bound, not communication bound, so it tends to penalize machines that focus on improving communication bandwidth, which is often helpful for many HPC applications.

Re: Is it time for open processors?

#129

I know that there are probably a billion technical hurdles for this, but in my perfect universe, CPUs would all be FPGA based; at that point, couldn't updates be almost as simple as a software update? I know that laws of physics kind of preclude this idea, but a guy can dream.

Then you can increase the power consumption of all electronics by 50+% and halve the processing power. And that is optimistic.

Sincere question: how much of that is inherent to FPGA systems, and how much of that is due to them being a niche technology used in contexts where there power consumption is not a big issue, meaning that there has not been a significant drive to reduce power consumption?

I mean, it's not like the other types of electronics are inherently energy-efficient either: before it affected battery life people didn't care that much about energy-efficient CPU's. The current drive for more computation per Watt is largely driven by the explosion in mobile hardware.

Re: Is it time for open processors?

#130
post #72
post #34

The problem is less about openness itself and more about quality of auditing. Open isn't a magic bullet. As I understand, these latest CPU vulnerabilities were in the spec themselves. You could've found them by reading the manual. See what good that did us. But I posit that open projects do better with audits than closed because they are more likely to have open audits as well, and an open audit is harder to ignore o…

I'd pay good money for an open and simpler platform to run my security-critical tasks that don't require top performance. Auditing a modern high-end CPU is probably a huge task even if you have access to the HDL because of how complex they are. A simpler design (RISC, no out-of-order execution, basic branch prediction and prefetching...) ought to be fast enough with modern lithography to browse the web, send emails a…

AFAIK, Indian govt is supporting research for RISC-V based CPUs, but they are not general purpose, but meant to decrease huge import spending on processors for embedded systems and other specialized requirements.

As you said, 99% people don't care about security. It's hard enough to get people to use ddg over google, making them use open source processor thats likely slower and costlier would be practically impossible.

Post reply on HN