Announcement

Collapse
No announcement yet.

ARMv8.6-A Brings BFloat16, GEMM & Other Enhancements

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    Originally posted by coder View Post
    Sure, if you're adding/subtracting. But, again, the problem here is that you want to dither at the end of a series of computations, retaining higher intermediate precision until that point. Otherwise, your output will look like garbage.
    ...
    Actually, doing computations in log-scale makes sense if you've got a limited-range datatype with extra precision, like fixed-point. With BFloat16, we have the exact opposite - high-range, low-precision. Using log-scale, you're going to burn through BFloat16's limited precision faster than with linear, not to mention the performance hit you'd take for doing simple addition and subtraction.
    Actually you have it backwards for both examples, so I guess you don't have much experience with these concepts.

    With float you run out of precision with addition rapidly because you can't maintain any precision beyond the union of the bits in the relative scales of their mantissas. For log-scale, you imagined representing it as a log number in float format, which would indeed run out the precision since addition will rapidly lose precision. But with low-precision operands, multiplication is where you want to work if at all possible. Modern FP cores do that very efficiently, and multiplication doubles the mantissa, leaving plenty of extra precision for dithering.

    So again, I will leave it as an exercise for you to figure out how you dither floats for compositing. It's not hard. Think about it.

    If you still can't figure it out... I'm available for hire at the moment.
    Last edited by linuxgeex; 17 November 2019, 03:07 AM.

    Comment


    • #12
      Rock on, man. You rule.
      </sarcasm>

      By the time you get done using log or exponential scales or whatever other tricks you don't want to subject to critical scrutiny, anything you hoped to gain by pounding the square peg of BFloat16 into the various round holes you mentioned will be more than lost.

      But all of this is beyond pointless. Again, if you'd just taken a few minutes to check the facts and see what extensions ARMv8.6 actually added, you could've avoided getting far beyond the new capabilities, in the first place.
      Last edited by coder; 17 November 2019, 04:34 AM.

      Comment

      Working...
      X