No announcement yet.

HPVM 1.0 Released As LLVM-Based Compiler For CPUs / GPUs / FPGAs / Accelerators

  • Filter
  • Time
  • Show
Clear All
new posts

  • HPVM 1.0 Released As LLVM-Based Compiler For CPUs / GPUs / FPGAs / Accelerators

    Phoronix: HPVM 1.0 Released As LLVM-Based Compiler For CPUs / GPUs / FPGAs / Accelerators

    The latest open-source compiler infrastructure effort seeking to target a wide spectrum of devices from CPUs through GPUs, FPGAs, and accelerators is HPVM. The HPVM project today celebrated its 1.0 milestone...

  • #2
    Like most compiler projects these days, HPVM is based on the LLVM compiler stack.
    I'm happy LLVM exists because of how easy it allows you to make one, but I have to wonder: Are there problems that could come from such a monoculture?

    A critique I heard from a rust forum was that it was heavily single threaded and was limiting compile time, but other than that I haven't heard much negative feedback.


    • #3
      Please don't ask for any details, but I read a few comments about bad design decisions taken for LLVM in the beginning.
      It seems that nowadays there is some more knowledge in this area which would simplify the development and probably speed at least the compiling itself up.
      I'm not sure if this could also affect the performance of the resulting code.
      However, the general baseline was that it would be impossible to build LLVM2.0 due to the huge amount of man-years being spent on LLVM, as well as the large group of LLVM-devs, which you probably can only hardly convince to switch to a new project which still will be behind for several years.


      • #4
        Going to the link at the University of Illinois and reading the overview of this it does seem interesting that unlike a single function virtual ISA such as HSAIL and SPIR, HPVM is that PLUS a language neutral compiler IR.

        It seems from a rudimentary interpretation on my part to be a "one stop shop" for Heterogeneous compute element targeting, tuning and compiling particularly for those used to or familiar with LLVM. Just pick a language and go. No need to pick a language AND a virtual ISA (HSAIL OR SPIR) AND a compiler AND then tune all those separate pieces to your specific compute domain or domains plural. Just pick a language and HPVM.

        This will be interesting going forward as we rapidly run up against the Single Threaded wall of just building bigger, faster cores that are nothing more than space heaters. The future is massively muti-threaded and heterogeneous. Which is shifting the burden from hardware to software and properly programmed and Heterogeneous aware software and tools at that. Which is really, really tough with the primitive tools we have now even after all these decades when the debate between massive sized Vector processors and Massively Parallel systems began in earnest in the mid 1980's. Funny how the debate was a false choice. We need BOTH large scale Vector AND Massively Parallel as both domains serve a much needed purpose. Now we need not only good tools but good tools to SIMPLIFY the task of Heterogeneous programming in a multi-domain compute world. Perhaps HPVM will be that tool.