• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.
  • The forums have been upgraded with support for dark mode. By default it will follow the setting on your system/browser. You may override it by scrolling to the end of the page and clicking the gears icon.

Is VRAM byte addressable?

Joined
Dec 12, 2020
Messages
1,755 (1.08/day)
I was examining the resizable bar size settings in Nvidia Profile Inspector for my 4090 and noticed the largest "rbar size limit" was a little over 1.6GiB in decimal (60000000H), when it's supposed to be 32GiB (according to GPUz). I'm guessing the addressing granularity must be > 1 byte. If you multiply 60000000H by 10H you get 600000000H (25769803776 in decimal), which is 24 GiB though. So maybe it's granularity is 16 bytes?
 
on the actual hardware Resizable BAR can only be set in powers of two, so 1, 2, 4, 8 16, 32, 64... GB (24 GB is not one of those)

I guess for NVIDIA's profile specifically, they are storing values as 32-bit integers, which would be too small, so they store the values divided by some constant, to keep them below 2^32

GPU-Z can show you the actual BAR sizes on your system, click the BAR readout
 
Given how RAM is organised, it's very probably 16 or 32 or 64 bytes. 64B = one cache line in CPUs = minimum unit of data transfer. I think it's the same in GPUs but Nvidia hardware can split that in quarters, meaning it can transfer 16 B.
But why are you making conclusions from resizable BAR? Memory worked the same way before it existed.

A small correction, 60000000H is exactly 1.5 GiB, and it makes sense to use binary "i" units exclusively for this discussion.
 
@W1zzard
So GPUz is just reporting the Large Memory Range from device manager?

@Wirko
Because resizable BAR is supposed to unroll the entire address space of VRAM into a contiguous series of memory addresses somewhere above system RAM (kinda like memory mapped I/O) I would figure the 'rbar size limit' would max out to the entire address space of VRAM, but it clearly doesn't.

I had also thought since forever, x86 CPU's were byte addressable and byte enables took care of which bytes were actually read/written.
 
Last edited:
So GPUz is just reporting the Large Memory Range from device manager?
No, GPU-Z is reporting the value the card's PCIe controller is configured at. Windows reads that same value, and uses it to show the Large Memory Range value
 
In Nvidia Profile Inspector the values for rbar size limit are all 64-bit values with the largest being: 0x0000000060000000.

It would be nice if there was more documentation on what "rbar size limit" and "rbar options" in Nvidia Profile Inspector were for and what values were valid for each and why.
 
Back
Top