Sometimes memory use seems misleading unless you account for memory which is marked as usable but not released from use as cache until something actually requests it. The file system benefits greatly from this.
Try installing the GUI app “xosview”, and enlarge it so you can see details. Memory shows a detailed division into user, buff, slab, map, cache, free. In particular, cache is actually available for use as other memory, but the system keeps using it as cache for performance reasons until something claims it.
If you want a “better top”, try installing “htop”. This can be configured to provide more detail than ordinary top. In the memory use bar graph you’ll notice that memory used is divided into multiple colors, each representing a category of memory use…some of this will be reported as used memory in some places, but reported as unused in others.
I’m not sure where GPU memory use shows up, but since graphics and GPU do not have dedicated RAM, it might be listed related to GPU, yet it might be shared or memory mapped and show up elsewhere as well.