# 50x speed difference in gemv for different values in vector

**URL:** <https://discourse.julialang.org/t/50x-speed-difference-in-gemv-for-different-values-in-vector/2755>\
**Category:** General Usage\
**Created:** [March 19, 2017, 11:57am UTC](https://discourse.julialang.org/t/50x-speed-difference-in-gemv-for-different-values-in-vector/2755 "2017-03-19T11:57:00Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [March 19, 2017, 3:13pm UTC](https://discourse.julialang.org/t/50x-speed-difference-in-gemv-for-different-values-in-vector/2755/3 "2017-03-19T15:13:45Z")

</div>

Just to elaborate on that, [subnormals](https://en.wikipedia.org/wiki/Denormal_number) (aka denormals) are floating-point values with large negative exponents – so large that they no longer use all the bits of the value and have less than full precision. This allows something known as “gradual underflow” where you lose precision gradually, instead of immediately getting a zero value. Doing arithmetic with subnormal values does not go through the normal CPU pathways (on Intel hardware) and thus takes considerably longer – i.e. floating-point ops do not take a fixed number of clock cycles, which is what you’re seeing here.

---

_[View the full topic](https://discourse.julialang.org/t/50x-speed-difference-in-gemv-for-different-values-in-vector/2755)._
