Byte Size of Fixed Point numbers in Matlab

7 vues (au cours des 30 derniers jours)
Marco
Marco le 12 Juil 2023
Commenté : Marco le 14 Juil 2023
Hi,
I am using extensively fixed point representation of numbers. For example:
fixed = fi( 0.567, 1, 16, 15 );
Checking now how many Byte in memory are allocated for the variable fixed, I discovered:
whos
Name Size Bytes Class Attributes
fixed 1x1 324 embedded.fi
I expected a much smaller overhead for such data type, given the fact that I just want to represent a 16 bit number (2Byte).
Why is it so? Are there other better options?
I am asking in order to speed up Monte Carlo simulations.
Thanks
Marco

Réponse acceptée

Walter Roberson
Walter Roberson le 12 Juil 2023

embedded.fi are objects that include control information about the representation and the attached behaviour (such as overflow). The overhead for a single such number is a fair bit. However when you have arrays of them then each additional entry would not take up much space.

Fixed point numbers that do not happen to duplicate a hardware numeric format are going to be slower to calculate with on systems that have built-in floating-point hardware. They are best suited for a few cases:

  • extended arithmetic beyond 53 bits of precision
  • hardware such as vhdl or embedded processors that do not have appropriate floating point hardware
  • cases where the attachable behaviour (such as overflow) are important to do differently than the default (there are systems where it is more important that the behaviour be exactly specified rather than as fast as possible)

If you are working on a host system rather than an embedded system, perhaps using a gpu would be better than worrying about memory transfer details.

  3 commentaires
Walter Roberson
Walter Roberson le 13 Juil 2023
Occasionally, people ask about using a custom or fixed-point datatype on CPUs, thinking that the smaller storage requirements of the custom or fixed-point type will lead to less memory transfer and so speed up calculation.
The problem with that hypothesis is that in practice, hardware is typed for a small number of different representations, and although smaller data might lead to less transfer to or from main memory, that extra hardware instructions will likely be needed to unpack and manipulate and repack the custom datatype. You then get into questions about whether the reduced memory transfer costs of a smaller datatype are sufficient to offset the increased instructions needed to deal with the custom datatype.
Marco
Marco le 14 Juil 2023
Great, thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by