back to article Microsoft boffins: Who needs Intel CPUs when you've got FPGAs?

Microsoft hooks up reprogrammable chips directly to its data centers' internal networks to ramp up the performance of its web applications. The Windows giant is so impressed by the tech, it reckons the customizable hardware could eventually take on more computational work than the Intel workhorse processors that today fill its …

  1. kodykantor

    Isn't Intel's long-term play bundling FPGA+x86 on the same chip?

  2. Anonymous Coward
    Anonymous Coward

    It's amazing it's taken nearly 30 years to get to this point with FPGAs.

    People were doing this sort of trick to ease cpu load substantially back in the late 1980s. Xilinx XC3020 FPGAs then were very low density - less than 2000 gates at 50mhz. We had to hand craft the logic to shoehorn it onto the available gates and still get the right timing on the interconnects. Different FPGA configurations were loaded by the cpu software dynamically as part of its normal operation.

    It was obvious then that FPGAs on a board in a PC would add a lot of computing power. Not just as a field re-programmable gate array for an update of customised "hardware" - but as logic that could be altered dynamically as part of the computation.

    FPGA gate density increased enormously - but the barrier seemed to be finding a software language that could define how to offload the algorithmic processing from the cpu software.

    1. goldcd

      Agreed

      But it's surely only now with cloudy server-farms we've had enough chips doing the same thing to make it worthwhile to setup the FPGA instead of just throwing more x86 at the problem.

    2. JeffyPoooh Silver badge
      Pint

      50mhz

      MHz.

      1. Hans 1 Silver badge
        Joke

        Re: 50mhz

        Ohhhh, come on, nobody was able to turn the handle fast enough to reach 50Mhz, it was quite tight, 50mhz sounds about right ....

    3. A Non e-mouse Silver badge

      I've been following Ken Shirriff's blog as he helps to get an old Xerox Alto up and working. One of the (many!) things that impressed me with this machine, was that you could add new instruction codes to the CPU on the fly.

      Sounds a bit like an early FPGA to me.

      1. Alan Johnson

        Nothing like the Xerox Alto

        "I've been following Ken Shirriff's blog as he helps to get an old Xerox Alto up and working. One of the (many!) things that impressed me with this machine, was that you could add new instruction codes to the CPU on the fly.

        Sounds a bit like an early FPGA to me."

        No it was a microcoded arhitecture with a writeable control store. Quite common in the era of bit slice and nothing like an FPGA in architecture or in the challenge of programming it (If you consider designing an FPGA programming).

        Microcode is sequential programs albeit with very wide instruction words and a direct connetcion to the hardware. a FPGA is nothing like this basically a sea of bit level connection and logic resources.

    4. boardbonobo

      FPGAs are ripe hardware for programming through AI techniques such as Genetic Algorithms. People just aren't 'optimised' enough to do the job properly!

  3. Spaller
    Facepalm

    Who Needs Programmers When You Need Hardware Designers?

    Hmm, nominally FPGAs need coding in a hardware description language, like verilog of vhdl, in order for the thing to work. Synchronous thinking C coders don't deal well with the asynchronous nature of HDLs. People skilled in HDLs are rarer than C coders, so there's quite an educational barrier to deployment.

    1. Stu 18

      Re: Who Needs Programmers When You Need Hardware Designers?

      I imagine that this is where the next tech 'crunch' will come from, ignoring the benefits in the particular mentioned use case in the article, there is the wider massive effort to get people locked into various cloud vendors, Microsoft being particularly active here and being very hostile to IT professionals that may be seen to be resisting their efforts. Coming back to the FPGA aspect, if there is less people that can program them, then it gives the vendor more power. Not to mention ability to add 'code' at a very low level for whatever other interests they have that would be very hard to detect higher up the stack. So cool technology on one hand, but massive enabler of the American dream - that is locking out competition and locking in profits!

      In my opinion we need a new 'disruptive' 'Microsoft' to shake up the old incumbents which now are Microsoft, Apple, Google and Amazon? instead of IBM.

      1. JeffyPoooh Silver badge
        Pint

        Re: Who Needs Programmers When You Need Hardware Designers?

        "...if there is less people that can program them..."

        are fewer

    2. Anonymous Coward
      Anonymous Coward

      Re: Who Needs Programmers When You Need Hardware Designers?

      There are "high level synthesis" tools which use C (Xilinx) or OpenCL (Altera/Intel) as the programming language.

      It does still require a certain degree of mind-warping to program FPGAs in these languages, as one must use awkward and counter-intuitive (to a computer programmer) patterns to produce code that maps well to the FPGA. One has to drop Very Large hints so that the compiler can find the parallelism.

      Just as in the early days of high-level languages for software, HLS languages are not as efficient as register-level operations - but the productivity boost and larger pool of developers mean that they are a viable choice in the real world.

      1. Anonymous Coward
        Anonymous Coward

        Re: Who Needs Programmers When You Need Hardware Designers?

        "It does still require a certain degree of mind-warping to program FPGAs in these languages, [...]"

        In my experience many programmers do not have the mind set to handle parallel processes. In the early days most programmers wrote their code as a serial thread - totally ignorant of the multitasking that was taking place in the OS and other applications. Their brains just froze when they tried to think about asynchronous parallel threads.

        Expert system languages demanded that you wrote about decisions that were evaluated in parallel - even if the underlying code was still constrained to be serial through the cpu.

        When microcomputers came along many IT people saw them as small computers. It took a while to start remembering that microprocessors could replace hardware logic. Then they forgot that custom hardware is much faster because it can do things in parallel.

        FPGAs were the disruptor. People generally treated them as low volume ASICs - to be implemented by hardware designers for one task only. The idea that the FPGA could be reloaded and reconfigured in flight - as, when, and how the cpu software desired - was often a difficult one to grasp.

        The use of GPUs for other types of computation rather than graphics took a while to catch on. FPGAs are still in a similar position - seen as "assisted" hardware rather then a natural component of "software" that fits certain tasks in the structure of an application.

        Like all computing - a seamless FPGA/cpu application programming language needs to allow the programmer to express their real world problem in a "natural" way that suits the context. The compiler then takes care of who does what and when. You don't worry about whether the FPGA configuration is optimum - as long as the overall result gives a significant improvement in development time and performance.

        1. Anonymous Coward
          Anonymous Coward

          Re: Who Needs Programmers When You Need Hardware Designers?

          > a seamless FPGA/cpu application programming language needs to allow the programmer to express their real world problem in a "natural" way that suits the context.

          This is the problem! The C-design entry approaches are based on expression in a sequential language.

          We don't seem to be able to tear ourselves away from using C (as the lowest common denominator) for all purposes whether appropriate or not.

          A colleague suggested Lucid as the best approach yet to an algorithmic language for FPGAs. And it does look like a good fit - only that no-one seems to have taken it beyond a language-interpreter.

          Now I'm off to cry in a corner because great new languages never get any traction...

          1. tiggity Silver badge

            Re: Who Needs Programmers When You Need Hardware Designers?

            Many, many years ago I used parallel C on a transputer system in a university computing lab.

            So a parallel processing friendly version of C is not exactly a new thing

            1. Steve Davies 3 Silver badge

              Re: Who Needs Programmers When You Need Hardware Designers?

              Have an upvote for mentioning the Transputer

        2. Measurer

          Re: Who Needs Programmers When You Need Hardware Designers?

          Totally agree. Running machine control hardware, but with a flashy GUI and machine vision etc. usually requires a P.C AND a motion controller / PLC (maybe with FPGA in) to deal with the hard real time processing (100uS servo loop processing etc.). But even when shown the hardware, most softies cannot grasp the concept that code is being executed asynchronously and in parallel on both the P.C and the PLC, sometimes using the same inputs. Quite often there is a choice on where to run a given algorithm, and quite often the wrong decision is made because there is no appreciation of the 'best' or 'fastest' hardware to execute the algorithm you are trying to code. Much more needs to be done in these days of OpenCL and even 'just' multi cored processors to educate, it's a massive untapped resource.

      2. HmmmYes Silver badge

        Re: Who Needs Programmers When You Need Hardware Designers?

        Its less than language and more handling the complexity of parallelism.

        A language like Erlang.OTP with its parallism and declarative-ness ought to go when on silicon.

    3. Vic

      Re: Who Needs Programmers When You Need Hardware Designers?

      Hmm, nominally FPGAs need coding in a hardware description language, like verilog of vhdl, in order for the thing to work

      That's not been the case for quite a few years now; FPGAs are programmed in a number of different ways - including C.

      Vic.

    4. Tom 7 Silver badge

      Re: Who Needs Programmers When You Need Hardware Designers?

      You need both. 30 years ago I was playing with things like VHDL and autolayout type tools modified to work in problem spaces to see if we could use the techniques at a higher level for some problems. It got messy quickly but came up with some interesting solutions - however there is something weird about the way peoples brains work and humans in the right place with the right skills and more importantly experience can settle into near optimum solutions a lot faster than even a well put together heuristic program. The trouble is the people with these skills are normally promoted out of the way.

  4. JeffyPoooh Silver badge
    Pint

    "...boosts the performance of Bing search..."

    Sub-par results faster.

    Great. Takes less time to realize that the results are useless, use Bing to find Google, and try again.

    1. LDS Silver badge

      Re: "...boosts the performance of Bing search..."

      Right, they should work on the quality of their results, not speed. I wonder if people inside MS use Bing, because usually its top results are mostly irrelevant, it also has a knack for prioritizing stupid contents, as if the main target is the fourteen years old. More so if I search something in my native language and not English.

  5. J. R. Hartley Silver badge

    At last!

    Somebody has finally found a use for the Xorro chip!

  6. Hans 1 Silver badge
    Windows

    Microsoft has "boffins"

    Learn something every day, don't you ? Are they also allowed to the Crayola, FisherPrice, and Duplo tables in the rest rooms or are those reserved for Support, Development, and Marketing, only ?

    1. Tom 7 Silver badge

      Re: Microsoft has "boffins"

      Microsoft has a lot of boffins - many are employed to prevent them working for other companies.

  7. Gordon Pryra

    Awesome!!

    So all 12 of the people using Bing found their results were faster....

    Can the same FPGA setup also be used to enable relevent search results as well?

    That would indeed be awesome for Bing

    1. Hans 1 Silver badge

      Re: Awesome!!

      Every time I read "Bing" I cannot help thinking of BINGO!!! and have a smile come to my face, accompanied by a little chuckle ... seriously!

      With Windows 10, they keep changing the search setting back to Windows & Internet, because they want to force Windows 10 users into using Edge+Bing, even if they just want to open notepad. So I guess there are now more than 12 people "using" Bing.

      Then you have the slimy "corporate policy" nutcases who impose IE 11 or Edge + Bing on their proles via GPO ...

      1. AMBxx Silver badge
        Thumb Up

        Re: Awesome!!

        Yep, because Bing's only problem was speed!

  8. Will Godfrey Silver badge
    Meh

    Hmmm

    Article implies that FPGAs will replace CPUs. I doubt it. Support - yes. Replace - only some fuctions.

    1. Anonymous Coward
      Anonymous Coward

      Re: Hmmm

      " Replace - only some fuctions."

      A cpu is only a set of logic gates interconnected in a particular way. Those interconnects are fixed. FPGAs already have sufficient gate density to contain the target architecture of an existing cpu.

      There is nothing to prevent a departure from the Von Neumann architecture to handle particular algorithms in a parallel fashion - except the mindset of 70 years of serial processing.

    2. Dwarf Silver badge

      Re: Hmmm

      FPGA emulations of many CPU's has already been done - even relatively low end FPGA's are doing this, take the Papillio.cc as a very low cost example. Jack Gassett is behind this project and its an easy starter for people who want to dabble in FPGA's with minimal outlay.

      There are a list of freely available cores Here. Open the Processors tab and marvel at the list. 8080, Z80, 6502, 8051, ARM, 68000, GPU, MSP430, PDP 11/70

      People have even done complete computers such as the VIC20

      Nintendo NES Nintendo NES

      Many of the higher end FPGA platforms come with standard CPU "Soft Cores", google for "soft core FPGA" for more info. Cores such as LEON3, MicroBlaze, Nios II, OpenRISC are available.

      FPGA has a place as does a CPU. Its a bit irrelevant where it actually lives - ie CPU within FPGA, CPU with FPGA capabilities etc.

  9. Dwarf Silver badge

    On the positive side

    At least Microsoft have a product that is NOT running Windows 10

    1. Steve Davies 3 Silver badge

      Re: On the positive side

      At least Microsoft have a product that is NOT running Windows 10 YET

      There fixed it for you.

  10. Julz Bronze badge

    CAFS

    Very like a modern version of ICL's CAFS (https://en.wikipedia.org/wiki/Content_Addressable_File_Store).

    When there is a discrepancy between the rate data can be delivered into a system and the rate at which it can be consumed by the general purpose processor(s), then a bit of specialist hardware in the way to pre-process the data is always a help. What I'm not sure of is that will a single purpose piece of hardware like a CPU always be faster than the same logic programmed onto a FPGA?

  11. boardbonobo

    FPGAs in datacenters running independantly from any other machine oversight. Glorious! One stray USB stick and we'll have a fantastic opportunity for a 'real' computer virus outbreak. A virus that can rewrite the very chip it's running on to infect every data packet flowing through it. And infect every other FPGA in the segment.

    Might improve Bing considerably...

  12. Ru'
    Trollface

    Surely bing searches could be handled by a Z80 or something smaller? There's only ever two search terms; Chrome and (possibly) Firefox...

  13. a_mu

    To re count above

    Been using FPGAs for decades to accelerate CPU's.

    FPGAs are massively parallel compared to CPU's

    FPGA's are slow compared to CPU's , 500 MHz as opposed to 4000 MHz.

    If your task is parallel, and can be described in a parallel language, then FPGA's fast.

    Re configuring FPGA's easily takes milli seconds , a LONG time to a CPU, not something you want to do to often.

    FPGAs are register based, CPU designers are Latch based, coming together is 'difficult',

  14. springsmarty

    Can they context-switch?

    I would imagine that the FPGA will need to perform context switches before they can be exposed to applications, else only one application at a time could use them. Do GPUs also suffer this limitation? I really don't know.

    1. CarbonLifeForm

      Re: Can they context-switch?

      Loading the data onto accelerators such as FPGAs and GPUs usually is the limiting factor in practical usage of this kind of hardware. Yes context switching must occur too, bit that is essentially data switching of metadata.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Biting the hand that feeds IT © 1998–2019