News for hackers. Stuff that matters.
Re:Why I will be using RISC-V in my next chip by dbdjxjcnd on Saturday January 09, 2016 @04:34PM (#10872973)
SIMD and VLIW are the future of microprocessors, and unfortunately it doesn't seem like this ISA will be able to support them.
Re:Why I will be using RISC-V in my next chip by creshal on Saturday January 09, 2016 @04:51PM (#10873022)
RISC-V has a vector mode that can be used for SIMD applications.

VLIW has been the future since the 80s, and we're still waiting for the magic wonder compilers that can actually spit out efficient VLIW code. Even GPUs have abandoned VLIW (AMD TeraScale) in favour of RISC (Nvidia, AMD GCN).

Re:Why I will be using RISC-V in my next chip by _yosefk on Saturday January 09, 2016 @05:13PM (#10873106)
VLIW DSPs are in every phone. VLIW CPUs are almost certainly a bad idea and as to GPUs, AFAIK VLIW needs to coexist with barrel threading there which might create problems. But VLIW certainly has its place.
Re:Why I will be using RISC-V in my next chip by adapteva on Saturday January 09, 2016 @05:47PM (#10873199)
Most DSP archs came out of thr 90's and many of the cores today are a reflection of that trend (ceva etc). I worked on the TigerSharc DSP for 8 years and can tell you that from an implementation standpoint they can be a nightmare! Not sure they do have a viable place long term from an economical perspective.
Re:Why I will be using RISC-V in my next chip by creshal on Saturday January 09, 2016 @05:40PM (#10873179)
In DSPs, sure, but not in general-purpose CPUs or GPUs.
Re:Why I will be using RISC-V in my next chip by wsxcde on Sunday January 10, 2016 @01:07AM (#10874416)
I suspect the DSP makers just use VLIW because of interia. They probably don't have the money or incentive to revisit their old decisions.

Also wouldn't you say that most of the stuff that used to be implemented on DSPs is now moving into ASICs? I wouldn't be so sure that VLIWs are going to be around forever.

Re:Why I will be using RISC-V in my next chip by sklogic on Sunday January 10, 2016 @02:30AM (#10874571)
VLIW is many times cheaper (in terms of power and area) than OoO. It is not going anywhere from the low budget range.
Re:Why I will be using RISC-V in my next chip by wsxcde on Sunday January 10, 2016 @12:53PM (#10876232)
But VLIW and OoO aren't the only two design points. The renewed interest in traditional inorder vector processors. In any case, I do think the point of DSPs was to be area/power efficient for certain specialized algorithms, and a lot of these are just becoming ASICs/specialized accelerators today.
Re:Why I will be using RISC-V in my next chip by Marat_Dukhan on Saturday January 09, 2016 @11:27PM (#10874150)
nVidia Kepler and Maxwell (i.e. the two latest archs ATM) use VLIW instruction encoding
Re:Why I will be using RISC-V in my next chip by creshal on Sunday January 10, 2016 @09:52AM (#10875455)
Do they? I can't find anything about it. VLIW for GPUs is always only mentioned in the context of AMD TeraScale – which has been obsoleted in favour of a RISC architecture five years ago.
Re:Why I will be using RISC-V in my next chip by Marat_Dukhan on Sunday January 10, 2016 @01:17PM (#10876352)
I guess that's because unlike AMD, nVidia doesn't officially document the GPU instruction set. But if you disassemble .cubin with nvdisasm, you'd see that code of Kepler/Maxwell is organized in bundles of 4/8 words, where the first word doesn't encode any instruction. Here is what Scott Gray of Nervana Systems, who developed a native assembler for Maxwell, write about it[1]: "Starting with the Kepler architecture Nvidia has been moving some control logic off of the chip and into kernel instructions which are determined by the assembler. This makes sense since it cuts down on die space and power usage, plus the assembler has access to the whole program and can make more globally optimal decisions about things like scheduling and other control aspects. The op codes are already pretty densely packed so Nvidia added a new type of op which is a pure control code. On Kepler there is 1 control instruction for every 7 operational instructions. Maxwell added additional control capabilities and so has 1 control for every 3 instructions."

[1] https://github.com/NervanaSystems/maxas/wiki/Control-Codes

Re:Why I will be using RISC-V in my next chip by _chris_ on Saturday January 09, 2016 @06:19PM (#10873277)
There's a chapter in the current RISC-V manual that explains how you could make a RISC-V-like VLIW ISA. But VLIW is most certainly NOT the "future". VLIW demands an even "mix" of instruction types, and that's largely incompatible with general-purpose application code.

And the concept of baking into your ISA what the designer believes is the "perfect functional unit mix" is an anti-pattern. What's the perfect mix depends on the benchmark, and it changes from basic block to basic block. A history of failed VLIW projects can attest to this. A dynamic superscalar is far superior, even in power-efficiency.

Re:Why I will be using RISC-V in my next chip by userbinator on Saturday January 09, 2016 @10:37PM (#10874032)
VLIW demands an even "mix" of instruction types, and that's largely incompatible with general-purpose application code.

The Itanium is a great example of this. Benchmarks that pushed the CPU to its limits looked amazing, but real-world performance with general-purpose code was awful. There just isn't enough parallelism in general-purpose code to justify extremely huge instruction bundles that will mostly be wasted with NOPs.

Re:Why I will be using RISC-V in my next chip by protomyth on Saturday January 09, 2016 @07:04PM (#10873458)
"VLIW demands an even "mix" of instruction types,and it's hugely incompatible with general-purpose application core."

Has anyone ever done a study / experiment of a VLIW with multiple hardware threads and how that would impact the need for an even mix?

Re:Why I will be using RISC-V in my next chip by wmf on Saturday January 09, 2016 @08:55PM (#10873776)
The point of VLIW is to eliminate the hazard detection and scheduling logic required by normal superscalar, but SMT would require much of that logic to be added back. So VLIW can't really use SMT. VLIW could use FGMT (e.g. barrel processor) or SoEMT, but those can't fill the empty issue slots caused by bad instruction mix.
Re:Why I will be using RISC-V in my next chip by _chris_ on Saturday January 09, 2016 @07:24PM (#10873531)
The studies I've seen have shown that the FU mix is heavily skewed and changing on every basic block, particularly when you offload the DLP to a more efficient vector/SIMD unit.

I'm not sure I see how MT would solve the mix problem, if each thread gets an issue cycle (and each thread itself has a bad mix).

Re:Why I will be using RISC-V in my next chip by protomyth on Saturday January 09, 2016 @07:32PM (#10873554)
I was just thinking that the the bad mixes might on average fill in the gaps to what the processor actually had for resources.
Re:Why I will be using RISC-V in my next chip by creshal on Saturday January 09, 2016 @07:46PM (#10873598)
Even GPUs, which have arguably far more predictable instruction mixes, struggled massively to get a useful utilization on VLIW architectures – AMD tried two different ones from 2006 to 2011 before they finally gave up on the concept and started using RISC architectures like Nvidia had been using all the time.
Re:Why I will be using RISC-V in my next chip by legulere on Saturday January 09, 2016 @07:19PM (#10873515)
By what I've been told, VLIW makes only really sense in some use cases such as DSP processors. With general purpose computing it happens way too often that you can't find enough instructions that are independent of each other. For the case where it is possible to execute instructions in parallel, you can make your CPU superscalar. The simple nature of the RISC-V ISA probably should make supercalarability easy and performant.
Re:Why I will be using RISC-V in my next chip by zhemao on Saturday January 09, 2016 @07:40PM (#10873574)
We already have a RISC-V superscalar out-of-order core, the Berkeley Out-of-Order Machine (BOOM).

https://github.com/ucb-bar/riscv-boom

Re:Why I will be using RISC-V in my next chip by cmrx64 on Saturday January 09, 2016 @06:16PM (#10873264)
Re:Why I will be using RISC-V in my next chip by analognoise on Sunday January 10, 2016 @02:48AM (#10874599)
Interesting project; no updates for a year. I wonder how the project is going?
Re:Why I will be using RISC-V in my next chip by sagark on Sunday January 10, 2016 @03:39AM (#10874684)
We've recently released a couple of tech reports on Hwacha:

Hwacha Vector-Fetch Architecture Manual: https://www.eecs.berkeley.edu/Pubs/TechRpts/2015/EECS-2015-2...

Hwacha Microarchitecture Manual: https://www.eecs.berkeley.edu/Pubs/TechRpts/2015/EECS-2015-2...

Preliminary Evaluation Results: https://www.eecs.berkeley.edu/Pubs/TechRpts/2015/EECS-2015-2...

M.S. Thesis on Mixed Precision in Hwacha: https://www.eecs.berkeley.edu/Pubs/TechRpts/2015/EECS-2015-2...