Hacker News new | ask | show | jobs
by candiodari 2975 days ago
Not really: people have reacted to more capacity being available by getting in more channels. You can control a 1980s 20 channel ultrasound using even an atom cpu, not a problem (though will still get close to max cpu capacity). So what did we do ? Well we made chips, I believe the best one now has 4000 channels and there's test models of 8000 channels. A quad xeon can't process that. But it gets worse.

Because information is encoded both in the direct signal and in the interference patterns between different probes you'd want to evaluate both of those (if nothing else it gets you a wider field of view, but really it gets you more than that, for instance you can get full 3d from a cross-shaped array). Unfortunately that scales with the square of the number of channels. This doesn't even work on FPGAs at the moment, so they basically limit interference processing to only 100 or so of the 1000-2000 probes they have these days.

This is a problem that keeps coming back. CPUs can do nearly everything in processing, but with one exception they suck at it.

That means that when doing these things, you can use CPUs, and people are always pushing that, if you accept to be 2-5 years behind the state of the art for advanced applications, or you accept that you have to spend 50$ per piece where others can get more processing done for 1$, or "much less but still enough" processing done for 0.1$ (FPGA, DSP, microcontrollers, ...).

Good luck in the marketplace if you go CPU.

CPUs work where your complexity is above a quite high lower bound, and they stop working once you hit a certain level of data processing. Below that lower bound, they are absurdly expensive. Above the data speed limit they just can't keep up.

Now there's niches where the strengths of CPUs outcompete other approaches. For instance, you want to create stuff to interface with ancient equipment. Lots of that is necessary, and lots of it is custom. For telecom companies, banks, factories, ... here CPUs and the fact that you can do one at a time are tough to beat. Sure FPGAs can do it better, but that's not the point here. They're much harder to design, so a one-off (or couple-dozen-off) designs use CPUs, plus they're very unlikely to hit the data rate limits.

Even there CPUs tend to have a disadvantage. Lots of environments where these things have to operate aren't exactly pristinely clean, cooled and free of static and interference. CPUs don't deal with it half as well as especially FPGAs do. You want a closed box that has to operate at 70 degrees without cooking itself with constant electrical arcing around it ? Don't go for a cpu on a large mainboard. You can't cool because any cooler will get clogged and destroyed in a matter of weeks at the most.

2 comments

" For instance, you want to create stuff to interface with ancient equipment. Lots of that is necessary, and lots of it is custom. For telecom companies, banks, factories, ... here CPUs and the fact that you can do one at a time are tough to beat. Sure FPGAs can do it better, but that's not the point here."

Guy I worked with had a recurring gig interfacing FPGA's to older Telcom equipment. Multiplexing multiple gigabit Ethernet channels into one very high speed channel which then was fed into a microwave up converter. Last and final one they did the FPGA put out like 25W. I can't imagine doing that with a CPU of any type.

Great information there!

Perhaps sounds like a use case for a streaming parallel ADC board into GPU memory? Maybe an FPGA can run ADCs and buffer into a FIFO and transfer over PCI in large, efficient frames?