Facebook to open-source AI hardware design
code.facebook.com
code.facebook.com
Having this chassis with Infiniband and a local disk would be a dream if the manufacturing cost is right as we scale up in our local datacenter where I'm at.
Can a machine learning expert comment on this claim? There are many domains in computing where doubling your compute power does not halve your execution time, or allow you to double the size of your input. (For example, your algorithms are worse than O(n), or you have hardware communication bottlenecks.)
Machine learning is usually embarrassingly parallel.
I do know that a lot of ML algorithms become, at the low-level, matrix operations. Matrix operations are typically not embarrassingly parallel. Now, I can imagine a bunch of independent matrix operations, but whether you'd call the entire problem "embarrassingly parallel" would depend on how coarse the independent bits are.
[0] http://www.nikkostrom.com/publications/interspeech2015/strom...
Seems tricky given we usually call a collection of components on PCB's and such a computer, hardware design, server, or so on. Putting open-source in front of them doesn't make it clear how much is open-source. That might be what we need to resolve. Anybody have ideas?
Funny story, Ycombinator is one of the reasons I got it. Since there's no great way to keep track of threads, it was a way for me to catalog and follow up with threads in these posts.
The Open Compute designs (which is where this will end up) aren't just a list of parts. They include things like blueprints for custom chassis, circuit boards for power supplies and even designs for solid state storage devices[1][2][3]. The also include the source code for custom management software[4].
While it is true that they don't generally design their own logic boards, it is quite a long way from a list of parts.
I don't think backblaze called their case designs open source hardware.
You'd be wrong about that: This new Storage Pod performs four times faster, is simpler to assemble, and delivers our lowest cost per gigabyte of data storage yet. And, once again, it’s open source.[5]
I think "open source" is completely appropriate here, and to be honest I don't quite understand your objection.
[1] http://www.opencompute.org/wiki/Server/SpecsAndDesigns
[2] http://www.opencompute.org/projects/chassis/
[3] http://www.opencompute.org/projects/power-supply/
[4] http://www.opencompute.org/projects/hardware-management/
As much as you might not agree, plans for building a birdhouse constitute hardware design too.
Sure I've opened the schematics, but unlike a birdhouse made from wood you have zero chance of being able to build one from scratch on your own, or sourcing the Intel™ processors from another vendor.
This is the same reason for why if I release the binary of a program produced with a secret compiler as "open source" I'll be laughed at, it completely goes against the spirit of the thing, which is that anyone should be able to change any part of the thing I've released.
It's good that they're doing this. But it's completely incomparable to actual fully open source hardware.
Since there is hardware that is actually open in that sense it's worthwhile to distinguish whether you're talking about open hardware or merely open plans for assembly of closed hardware.
Sure I've opened the schematics, but unlike a birdhouse made from wood you have zero chance of being able to build one from scratch on your own, or sourcing the Intel™ processors from another vendor.
This is some kind of confluence of the values of FSF captial-F "Free" style software with the more pragmatic goals associated with open source.
> This is some kind of confluence of the values of
> FSF captial-F "Free" style software with the more
> pragmatic goals associated with open source.
Well, pragmatically, if you needed to alter the hardware of this "open source" hardware what percentage of the total electronic complexity would you be working with? I'm going to aim for a conservative one-digit percentile.There's a real and unambiguous line to be drawn in the sand here. If you get "open source" plans for hardware that you can't replicate with third-party fabrication & your own materials it's not open source. It's just a recipe for assembling commercial proprietary components.
It's awesome that people publish those recipes, but don't call it open source hardware and dilute the meaning of hardware that is genuinely open.
Some of the most active areas of research in data center design are around the mechanical design to maximize cooling.
Wikipedia defines Computer Hardware as:
Computer hardware (usually simply called hardware when a computing context is concerned) is the collection of physical elements that constitutes a computer system. Computer hardware is the physical parts or components of a computer, such as the monitor, mouse, keyboard, computer data storage, hard disk drive (HDD), graphic cards, sound cards, memory, motherboard, and so on, all of which are physical objects that are tangible.[1] In contrast, software is instructions that can be stored and run by hardware.
It's difficult for me to see how this doesn't fit.
Open planning?
Open what???
Open sharing??
Edit: going with GPUs makes sense now, but it doesn't indicate a big bet on Facebook's part. I don't think opensourcing a server cabinet is that interesting, but I'm a hardware engineer.
In 10 years I think more people will touch AI than VR but I don't know how that translates to investment.
AI is nowhere close to strong AI or reasonable general-purpose intelligent programs that don't require loads of human tuning. It will take several breakthroughs.
People constructing neural nets that look like the brain are engaged in cargo cult science, because the truth is we have no idea yet how the brain works and attempting to imitate it without knowing that is doomed to failure.
Those algorithmic performance improvements seen in DNN have come from improved datasets and training. Numenta and IBM arent focusing on training AFAIK. Google's Quantum Annealing [0] is the only hardware I'm aware of focused on training, although there are rumors Nervana Systems may produce something [1]. I'm sure there are others; accelerating training of DNN isnt a particularly new idea.
The goal of these other computing architectures is typically to provide lower power, higher frequency/lower latency, or smaller form factor execution of trained models, but there is a question of how much value they can provide over more conventional chips to be worth the chip design costs.
However without these architectures becoming as mainstream as say a GPU, I think we will continue to see advances come from the typical everyday computer. The ML community seems to be much more democratic than others.
[0] http://googleresearch.blogspot.com/2015/12/when-can-quantum-...
The thesis may be misguided at times but building non-traditional hardware that provide significant efficiencies is a wonderful thing. Sometimes it takes a random vector to get off a local maximum.
For example, did you know Synaptics, the guys who developed the touch input you're probably using started as a crazy neuromorphic thing from Carver Mead? [0]
While most of the IBM press is garbage, they do seem to be making progress running conventional DNNs on their hardware, showing backprop in low precision, and suggesting progress on CNNs. [1,2]
[0] https://en.wikipedia.org/wiki/Carver_Mead#Touch
[1] https://papers.nips.cc/paper/5862-backpropagation-for-energy...
[2] http://p9.hostingprod.com/@modha.org/blog/2015/12/nips_2015_...
Back on topic, that paper is pretty interesting, though MNIST is a toy problem. If they could run any of the ILSVRC winners then I would be impressed, but I can't help but think that if one wants to run CNNs one would be much better off designing a CNN chip to begin with rather than a wacky spiking architecture and trying to shoehorn a CNN into it. To my knowledge nobody has yet fabricated an ASIC specifically for CNNs so there's no way to fairly compare their approach to something like that.
http://yann.lecun.com/exdb/publis/pdf/farabet-iscas-10.pdf
IBM has been working on these chips from 2009 I think, before DNNs really became popular again and I bet they would change a few things if they were designing from scratch today - especially better support for CNNs. The cost of chip production for something like True North is very high (5.4B transistors!) so I suspect they are trying to squeeze as much out of it as they can :)
Existing tools on GPU's are easier despite me wanting more work on FPGA's and ASIC's in this area. ;)
Then the NVidia Tesla C2050 came out and CUDA reached a somewhat stable release. The neuromorphic plane has crashed into the proverbial mountain.
EDIT: Maybe I should elaborate - we accomplished the same task using the Tesla card, but it was about 100x faster and each card was $2500 and usable for other tasks. The general rule of thumb became: design a neuromorphic system, wait for the next Tesla chip, then simulate it in software.