Slashdot Mirror


California Researchers Build The World's First 1,000-Processor Chip (ucdavis.edu)

An anonymous reader quotes a report from the University of California, Davis about the world's first microchip with 1,000 independent programmable processors: The 1,000 processors can execute 115 billion instructions per second while dissipating only 0.7 Watts, low enough to be powered by a single AA battery...more than 100 times more efficiently than a modern laptop processor... The energy-efficient "KiloCore" chip has a maximum computation rate of 1.78 trillion instructions per second and contains 621 million transistors.
Programs get split across many processors (each running independently as needed with an average maximum clock frequency of 1.78 gigahertz), "and they transfer data directly to each other rather than using a pooled memory area that can become a bottleneck for data." Imagine how many mind-boggling things will become possible if this much processing power ultimately finds its way into new consumer technologies.

45 of 205 comments (clear)

  1. Link to paper by NotInHere · · Score: 5, Informative

    The press release does not include it, nor does the slashdot summary. The link to the paper: http://vcl.ece.ucdavis.edu/pub...

    1. Re:Link to paper by gweihir · · Score: 2

      These are pretty primitive, yet very flexible cores. Worthless for most current loads, but that may change. However the comparison to modern CPUs is unfair. A proper comparison would be to modern GPUs.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  2. In other news by ebonum · · Score: 5, Funny

    A young intern who likes to "work late" in Davis California has recently come into the possession of a rather large stash of bitcoins.

  3. I guess this is great by dejitaru · · Score: 3, Interesting

    But I am not sure what system or software can take advantage of it. Personally I want to see progress being made on quantum computing for consumer lever stuff.

    1. Re:I guess this is great by Ironlenny · · Score: 4, Insightful

      Quantum computing is not magic. It has problems it's insanely good at (in theory) solving, and it has problems where it's as fast or slower (because of the necessary error correction) as your traditional deterministic computer. Not only are we a long way off from personal quantum computing (we still don't even have a general purpose quantum processor), we still need to research deterministic architectures.

      --
      There is a system for subverting the system and you should use that system!
    2. Re:I guess this is great by thinkwaitfast · · Score: 3, Interesting

      Live video streaming. The thing about more cores is that for a similar application, energy usage decreases with the square of the frequency.

  4. remaining core count by Anonymous Coward · · Score: 5, Funny

    the world's first microchip with 1,000 independent programmable processors ... Imagine how many mind-boggling things will become possible if this much processing power ultimately finds its way into new consumer technologies.

    Yeah, but you have to keep in mind how many cores will be left for the user!

    1000 cores minus:
    * 200 cores for anti-virus software
    * 25 cores for the ransomware battling it out with the anti-virus
    * 55 cores for Microsoft's Win10 update nagware
    * 350 cores for the NSA monitoring
    * 122 cores for the FBI monitoring
    * 75 cores to handle syncing all your data to the cloud
    * 94 cores to run the 3D GUI based desktop
    * 62 cores for constant advertising
    * 14 cores for Google to keep tabs on what you're doing
    * 1 core dedicated to emacs

    So, only 2 cores left for the user. No better than an Athlon from 2005, I'm afraid.

    1. Re:remaining core count by narcc · · Score: 2

      What if they also want to run a decent text editor?

  5. Re:Can this chip run GNU/systemd/Linux? by ancientt · · Score: 5, Interesting

    That's probably all it can run. Typically specially designed systems need the ability to configure the OS radically differently than has been done previously which requires source code. Microsoft provides source code, as does IBM, in some special situations, but mostly it tends to be Linux that is used first. Consider the reasoning behind the OS chosen for the fastest computers in the world.

    Systemd? Probably because serious computer engineers don't have any trouble dealing with the irritation that systemd causes. (The rest of us may, but if you have enough smarts to handle building a specialized chip, then systemd isn't really a challenge.)

    --
    B) Eliminate all the stupid users. This is frowned upon by society.
  6. Re: Mind bogglingly complecated co-processing by Anonymous Coward · · Score: 5, Interesting

    I take it you've never done high performance computing, have you? More cores is often a good thing. If I'm doing a simulation across 1,024 cores and each node has 16 cores, that means I need a minimum of 64 nodes. There's a lot of communication that takes place over protocols like Infiniband in order to make MPI work. It also rules out the possibility of shared memory systems like OpenMP when jobs reach that scale and have to be spread across multiple nodes. If more cores are located within a single node, it reduces the amount of communication with other nodes and the resulting latency. It also makes shared memory a viable option for larger parallel jobs. If I can fit 64 or 256 cores on a node, there's a lot less need for relatively slow protocols like Infiniband to pass messages. I don't think the ordinary user has a need for 1,000 cores or would have such a need for a long time. But it really could help with high performance computing.

  7. Re:Can this chip run GNU/systemd/Linux? by NotInHere · · Score: 4, Informative

    No.

    systemd requires glibc. And glibc is 2 MB large. According to the paper, the processor has whopping 768 KB of RAM (and no capabilities to add external RAM).

    Means systemd won't gonna run. Dunno about the kernel, probably its easier to write a minimal one from scratch than to port it over to that special architecture.

  8. Re:yay so awesome by Yvan256 · · Score: 2

    And is it really 1000 CPUs, or is it 1024 rounded down to 1000 for the press release?

  9. Re:Can this chip run GNU/systemd/Linux? by Pseudonym · · Score: 5, Informative

    This is basically a modern transputer. As with connection machines, GPUs, and all such machines, it will very likely need a traditional host CPU to manage it, and that may well run Linux.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  10. Obligatory by Motherfucking+Shit · · Score: 4, Funny

    Imagine a Beowulf cluster of these!

    --
    "BSD: Free as in speech. Linux: Free as in beer. Windows 10: Free as in herpes." --Man On Pink Corner in #52607549.
  11. Re: Mind bogglingly complecated co-processing by Crashmarik · · Score: 3, Informative

    Oi

    There's always problems that parallelize well and this setup will likely work just fine for them. The same way nvidia cuda does already, the same way vectorizing/coprocessing add ons have done going back to the ISA bus.

    The fly in the ointment is most of the worlds problems don't and even when you can parallelize debugging is nightmarish.

    All said expect to see this doing neural network work. From the article and the description of the processor communication/lack of shared memory it sounds custom tailored to that.

  12. Imagine it as a coprocessor by Camembert · · Score: 3, Interesting

    It could be an interesting extra chip in a general use computer, where programs could syphon routines to, for example kinds of video/image rendering, parallel-able mathematical operations, image recognition, a 1000 node neural network, etc.

    1. Re:Imagine it as a coprocessor by AmiMoJo · · Score: 2

      We have those already, in the form of modern GPUs that can do a lot of general purpose processing such as physics simulation and image recognition.

      This chip is more like the Cell processor in the Playstation 2, with a bunch of under-powered cores that are a bugger to program and have very low performance each. I can't see it taking off because, for example, each core only has access to a tiny amount of RAM so the processing they can do will be limited mostly by memory bandwidth. A GPU gives its thousands of cores access to gigabytes of RAM.

      Maybe there is some application where extremely low power and low memory requirements exist, but I'm struggling to imagine what it is. These cores are very simple, they don't have any floating point support etc.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  13. Re:Can this chip run GNU/systemd/Linux? by AchilleTalon · · Score: 4, Informative

    Your GPU processors need to execute the SAME instruction at each clock cycle, this one has each processor capable to execute any instruction at each clock cycle. So, this is truly like a 1000 cores CPU. While the GPU is limited to dispatch the same instruction to all processors.

    --
    Achille Talon
    Hop!
  14. Re: Mind bogglingly complecated co-processing by docmordin · · Score: 4, Interesting

    Doing any sort of large-scale computational fluid dynamics or finite element simulations may require a great many cores. For example, you might want to conduct a very detailed simulation of the air flow around a vehicle, airplane, structure, etc. to have a basic understanding of its aerodynamics before spending time and money testing an actual prototype in a wind tunnel. You might also want to look at how very complicated, soft-body structures deform due to a variety of external stimuli. Such information would be crucial for certain materials science applications. Chemical reaction and acoustic simulations may also require a great deal of computing power, especially if you want to have a high spatio-temporal resolution.

    Essentially, there are plenty of physical and theoretical science applications that can benefit from massive processing capabilities. There is a lot of fundamental science that is also performed in simulation before any actual tests occur.

  15. in a world without ever increasing frequency by ThorGod · · Score: 2

    The way to improve computational technology is parallelism. What are the usage domains?

    -anything video related
    --games
    --image recognition

    -anything AI (I think?)
    --autonomous cars
    --facial recognition

    -a lot of physics applications

    Thoughts?

    --
    PS: I don't reply to ACs.
  16. Re:Shader units by Arkh89 · · Score: 3, Insightful

    No they are not. The threads in a modern GPU are not all free to execute different instructions. A GPU is a SIMT architecture : Single Instruction, Multiple Threads; each warp of threads (group of approx. 16 to 32 threads) will execute the same instruction at the same time on whatever data each one is holding (some threads can also be deactivated in the group, for this instruction). So the physical architecture for each of the thread in a GPU is much simpler than for the threads of this processor (because of factorization of all the instruction queue and related mechanism, much simpler synchronization, etc.).

  17. Re:What games does this come with by invictusvoyd · · Score: 4, Funny

    pong

  18. Re:Shader units by Arkh89 · · Score: 2

    Well, yes. But I don't think that we can say "terrible" performance for conditional execution. Very simply, if you have a condition "if(test){ ... } else { ... }", the warp (group of threads) will go in the true-block if at least one of them ticks (test==true). During this portion of the execution, the threads which did not tick are disabled and are indeed waiting. And vice-versa for the false-block. If none of the threads tick, or if they all do, then the unnecessary block will be avoided (this is what we hope to have when we write code for GPUs). But at worst, you will go through both block and have half of your threads doing nothing (of course, this also depends on the balance between the amount of work between each block, here I am assuming 50/50 just to keep things simple).

    Where we are severely loosing performance is when we have a condition to end a loop which is different across threads in a warp. Then some of them might spend a lot of time waiting for the last one in the warp to complete.

  19. Boring by nateman1352 · · Score: 3, Informative

    ...contains 621 million transistors... Imagine how many mind-boggling things will become possible if this much processing power ultimately finds its way into new consumer technologies.

    Let see... 1,000 very small compute cores... sounds a awful lot like your typical GP-GPU these days. Only reason the power consumption is so small is because it has < 1 billion transistors. Compare that to the 17 billion transistor nVidia pascal monster. Even the non-Iris graphics Skylake desktop CPU has ~1.7 billion, and over half of those are spent on the GPU.

    Chances are even paltry Intel HD Graphics running an OpenCL program will have more FLOPS than this thing. Don't be fooled by the flashy headline, the laws of physics still apply.

  20. 1000 exactly by evanh · · Score: 5, Informative

    It's a 32 x 31 grid = 992, plus 8 extra stuck on one edge to make up the numbers.

  21. A GPU? by gentryx · · Score: 2

    Sounds exactly like a GPU to me. :-P

    --
    Computer simulation made easy -- LibGeoDecomp
  22. Windows 23 by hughbar · · Score: 2

    Will slow it down to a crawl before blue screening. Then we'll be ready for Windows 24 Home Premium Edition. No worries.

    --
    On y va, qui mal y pense!
  23. Re:Can this chip run GNU/systemd/Linux? by WindBourne · · Score: 2

    why doubt it? After reading this, it sounds like a great set-up. With a 1000 CPUs of MIMD, it sounds like the right core for controlling access to massively parallel systems. And a single AA to run it? Sounds like a pretty decent chip to me.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  24. Re:Can this chip run GNU/systemd/Linux? by WindBourne · · Score: 4, Informative

    Totally easy to add external ram. In fact, it supports 12 independent memory modules. The 768 KB is in place of cache memory. Basically, it is a working table in which any of the CPUs can access any part of it.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  25. Re: Mind bogglingly complecated co-processing by WindBourne · · Score: 2

    no, but with this low energy usage (a single AA powering it), I think that this COULD have an impact on tablets and phones. That ability to shut down cores, while scaling up, is darn useful.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  26. It does almost nothing very very fast by Required+Snark · · Score: 4, Informative
    If you read the two page technical paper you will see that there is much less here then the hype suggests.

    Each CPU supplies an amount of computation less then a single instruction on a regular CPU. Think of it as a grid of instructions not a grid of computers. A processor has a Harvard architecture with 128 instructions of 40 bit size and a separate data memory with two banks of 128 16 bit data values (256 16 bit data words total). It says nothing about register files or stacks or subroutine calls. It's likely that the two data banks are in effect the register set. The paper implies that a CPU can compute a single floating point operation in software.

    Compiling means mapping code fragments to a set of connected CPUs and routing resources, and then feeding the data into the compute array. After some circuitous path through the grid the answer emerges somewhere. There are also 12 independent memory banks each with a 64KB of SRAM that are available to all CPUs.

    History has not been kind to this kind of grid architecture with lots of CPUs and very little memory. Almost none of them ever made it out of the lab. It's symptomatic of hardware engineers who are clueless about software and design unprogrammable computers. They confuse aggregate theoretical throughput with useful compute resources.

    Debugging code on this would be a nightmare. It's completely asynchronous, there is no hardware to segregate different sets of CPUs doing different computing tasks and so few resources per CPU that software debugging aids would crowd out the working code. The people listed on the paper should be punished by being force to make it do useful work for at least a year. They would be scarred for life.

    --
    Why is Snark Required?
    1. Re:It does almost nothing very very fast by arth1 · · Score: 2

      Why? This CPU sounds like it's perfect for Erlang, which although a somewhat odd language, is nonetheless one in which a fair amount of useful software (Chef, CouchDB, Riak, RabbitMQ) has been written.

      Don't forget ejabberd, one of the most useful XMPP instant messenging servers out there.
      But really, I don't think massive parallel processing is going to cause big improvements, because the software design stops at other bottlenecks anyhow, like IO. Having a thousand cores waiting for a commit isn't going to be a heck of a lot faster than having eight cores waiting for commits.

  27. Re:Can this chip run GNU/systemd/Linux? by jellomizer · · Score: 2

    Most programmers don't know how to code for parallel processors. At best you may get multi-threaded apps but those are often made to handle large load of request not soling a single problem much quicker.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  28. I can imagine. by Megol · · Score: 3, Interesting

    Even ignoring all other limitations of this particular processor there's still Amdahl's law, limiting the speedup by the serial parts of a task.
    As one example how that works look at compiling to hardware. In theory this should bring enormous benefits as not only can one parallelize on a instruction level but on a sub-instruction one, speculating and pipelining e.g. additions. Many types of communication can be eliminated entirely by replicating hardware.
    But even with those benefits there are a _lot_ of software that is better to run on a standard processor. Why? Because using custom optimized hardware to run it ends up replicating a number of normal processors including caches, branch prediction etc. and then a processor optimized by a dedicated team of experienced people ends up being attractive.

    Now saying custom hardware can't bring huge benefits, not even saying that this research processor can't do it _however_ in general there are a lot of tasks that can't really be accelerated much.

  29. Re: Mind bogglingly complecated co-processing by goose-incarnated · · Score: 4, Informative

    It also makes shared memory a viable option for larger parallel jobs.

    Good luck with that. I mean it. IME as you go *more* parallel, shared memory becomes a *less* viable option, regardless of how many cores are running on the same machine. The cycles lost to memory locking to make shared memory work increases exponentially with the number of autonomous processes/threads.

    The math isn't disputed - see the birthday problem for a start on calculating the clashes in playing musical chairs. In short, when you have X individuals with Y pigeonholes, then you are effectively bounded by Y, not by X. When you have X threads trying to access one variable, the chance that any thread will get this variable without waiting is effectively 1 for one thread, 1/2 for two threads, 1/3 for three threads, etc.

    By the time you get to a mere 64 threads each trying to access a variable, each thread basically has a 1.5% chance of getting it, and a 98.5% chance of being placed into a queue for that variable. Queue times get longer logarithmically. For one thread, time spent in the queue is ((0 * ATIME) + ATIME) where ATIME is the access time of the variable. For two threads, it's ((1-1/2) * ATIME) + ATIME, for three threads it's ((1-1/3) * ATIME) + ATIME, for four threads it's ((1-1/4) * ATIME) + ATIME. For ATIME=100us, the times above are, respectively, 100us, 150us, 166.67us, 175us. That last number is only for four threads with one variable, and assuming that queuing takes no clock cycles. The times increase exponentially with an increase in the number of variables that must be locked.

    For 64 threads your expected time in the queue is ((1-1/64) * ATIME) = 98.5us. You can forget about using shared memory if you want to use 1000 cores.

    But wait, "Use a sane design pattern and that won't happen, like with consumer/producer, etc" I hear you say? Sorry, no design pattern will save you, because if even a single thread writes to a variable, then all threads have to implement read-locks to make sure they don't get an access during a write (race condition).

    If you have 1000 cores, implement local message-passing. Don't try shared memory unless each thread will use a local copy (in which case, it isn't "shared", now is it?). Or, go ahead and do it and maybe you'll find a shared memory design that doesn't fail to first year statistics, and if you do beat the numbers then I'll be the first to nominate you for a Fields medal/Turing award :-)

    --
    I'm a minority race. Save your vitriol for white people.
  30. Re: Mind bogglingly complecated co-processing by Anonymous Coward · · Score: 3, Insightful

    Because I look at the real world around me and I see little that would benefit from that.

    This is a failure of imagination. The worst kind of failure.

  31. Re:Can this chip run GNU/systemd/Linux? by John+Allsup · · Score: 3, Interesting

    I still wonder how long it will be until the 'traditional host CPU' is scaled down to a small SOC, so that the traditional heavyweight CPU is freed up for tasks that actually require it: most of what runs on the i5 in the machine I am writing this on doesn't need anything remotely as powerful as said i5. Likewise, putting a small SOC-like chip in the graphics card and running most of the GUI there is another thing. As such, once processors hit the single core brick wall (and they're kind of doing that now), performance improvements will come from offloading what can run on a small power-efficient core to such a small power-efficient core. Given what the chip in e.g. a pi zero costs, it ought to make sense: connect your machine to power, and a tiny microcontroller handles the ILO and basic system management functions, and on power-on, a larger microcontroller/SOC does what the BIOS/UEFI does on current machines. Similarly in the screen we have the same arrangement, with a microcontroller starting up the GPU and display (independently of the rest of the machine). A modern PC is already like a small network (the GPU being networked to the main CPU via the pcie bus, multiple intel sockets networked via QPI etc.). Making this more explicit is the sensible thing to do.

    --
    John_Chalisque
  32. Re: Can this chip run GNU/systemd/Linux? by Bengie · · Score: 4, Informative

    AchilleTalon is correct, each processing group in the GPU can only execute the same instruction on all cores in that group. Every time you have a branch in your code, the GPU takes one branch, executing the instructions for that branch and stalling all cores that took a different branch, then takes the other branch, and stalls the other other cores. GPUs hate branches. Yes, they can do them, but at a huge performance penalty. You may want to write better code.

    To get into a bit more details, I'll use AMD as an example, but Nvidia pretty much does the same thing with slightly different terms for the same concepts. The AMD RX 480 has 2304 streaming processors(cores), that are grouped into 36 CUs(execution groups). Each streaming processor can handle up to something like 4 wavefront(threads, like hyper-threading to hide memory access latency) at a time. All streaming processors in a CU for a given wavefront must be executing the same instruction at the same time, except in the case of a branch. When a branch happens, one fork of the branch will process, stalling the other streaming processors taking the other fork. Once that fork is finished, the first group of streaming processors will stall while the other processing finish their fork.

  33. Re: Mind bogglingly complecated co-processing by thegarbz · · Score: 2

    Tell me about it. My i5 supports a whopping 1MB.

    Oh wait you thought that was RAM in the traditional sense? Maybe you should read the original paper which among other things said that this is extensible with onchip memory (think level 3 cache), or off chip memory (actual RAM).

  34. FINALLY! by Lumpy · · Score: 3, Funny

    Something that will run Flash without bogging down.

    --
    Do not look at laser with remaining good eye.
  35. Re:Can this chip run GNU/systemd/Linux? by GLMDesigns · · Score: 2

    You're parsing this a little more than necessary. The point was not that people would use a AA battery. The point was that this chip was an energy sipper as opposed to an energy guzzler.

    --
    If you're scared of your govt then you need to further restrict its powers
    Vote 3rd Party in 2016 and beyond
  36. Systemd on CentOS7 by DrYak · · Score: 4, Informative

    Systemd? Probably because serious computer engineers don't have any trouble dealing with the irritation that systemd causes.

    Confirming: our latest nodes on our cluster are running CentOS7 which is systemd powered.

    (And hopefully the final practical product out this buzzword-compliant pressrelease would still be somewhat useful.
    We could have some special workloads to apply it to).

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  37. Re: Mind bogglingly complecated co-processing by goose-incarnated · · Score: 2

    I was thinking atomic operations as they would also avoid the wait.

    Atomic operations aren't useful enough to share data; we use them to implement the locks on the actual data we want to share. GP spoke about wanting 1000 cores with shared memory, chances are he's not planning on having all 1000 simply increment/decrement an integer.

    --
    I'm a minority race. Save your vitriol for white people.
  38. Nit-picking by DrYak · · Score: 2

    Nit-picking to hell...

    You've forgotten a special use case:

    Yes, if AC's code does something stupid like "every even thread branch lest, every odd thread branch right", the execution group will need to run the code twice, with altening masks to run each branch, exactly as you describe.

    But if it's entirely different part of the thread block that diverge (e.g.: first half vs. second half), the "executions groups" will each diverge independently. The first 18 taking one branch and the second taking the other branch. With no time lost due to alterning execution masks.
    (Which is the preferable way to handle branching code in parallel environment. If you can't do away with the branches altogether, at least try to organise it so nearby threads on the same SIMD branch/loop together.
    e.g.: bin-sort your loops by similar lengths together)

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  39. Re:Can this chip run GNU/systemd/Linux? by dbIII · · Score: 2

    most things you want to do with a computer are inherently serial

    Even very simple stuff with sound and images is inherently parallel. More complex modelling of physical objects is inherently parallel.
    You don't get it? Imagine resizing the every frame of a movie at 25fps over two hours. That's the same operation done many times and very trivial to do in parallel. It's just a matter of splitting the task to whatever resources you have. With sound (and thus things like seismic data as well) if you want to apply the same filter to thousands or millions of samples it's very trivial to do in parallel.

    Those are big problems, but very specialized

    Home movies and digital photography fit into the mix so not very specialized at all.