tbf you seem to have selectively only showed part of the memory usage in task manager.
Here's mine...
.. 139MB - reserved by hardware
.. 307MB - approx. in use as shared memory. (0.3 x1024)
15,872MB - approx. memory left over as available dedicated. (15.5 x 1024)
= 16,318MB (/1024 = ~15.9GB)
(16 x 1024=16,384MB)
So really not that far off, especially when not knowing exactly how/what this is reporting and what base unit they are using (B,KB,MB,GB) and then how they convert to other units.
Basically like how a 100GB drive is never exactly 100GB usable.
The GPU memory showing as 31.5GB in my screen snip I'm guessing is to do with ReBar and it allowing it to address 16GB of ram?
You can also view the sensors tab in GPU-Z to see the stats for 'Memory Used (Dedicated)' and 'Memory Used (Dynamic)' to see how these two pools are utilised when the card is in use.