Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hybrid float-integer processing element (PE) questions #2

Open
kimwin2 opened this issue Aug 11, 2023 · 1 comment
Open

hybrid float-integer processing element (PE) questions #2

kimwin2 opened this issue Aug 11, 2023 · 1 comment

Comments

@kimwin2
Copy link

kimwin2 commented Aug 11, 2023

Hello, I am studying the adaptivefloat paper including the number system. I have some questions about the content regarding the hybrid float-integer processing element (PE).

  1. Are the values of the weight and input buffer quantized with adaptivefloat quantization before put to the PE?
  2. When performing a right shift, the paper mentions adding the exponent bias value, which is ca be a negative value in the paper. How should this be calculated?
  3. Why is activation performed after truncation?
  4. The integer-to-float module uses the activation exponent bias, but this was already used during the right shift earlier. Why is it being used again?

I really appreciate your effort to make adaptiveFloat.
Thanks in advance.

@ttambe
Copy link
Owner

ttambe commented Aug 11, 2023

  1. Yes
  2. You can see an example of the right shift calculation here. Typically, there would be an offset value in the HW to make sure the right shift is eventually positive
  3. Performing the activation function using the high-precision accumulation datatype (e.g. 32-bit) can be overkill for many DNNs. We can truncate the post-accumulation sums down to 16-bit or below without appreciable accuracy loss.
  4. The right shift uses the exponent bias from the weight and the input activation. The integer-to-float module uses the exponent bias from the output activation.

Best,
-Thierry

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants