GPU without VRAM imaging possible? - Page 1
Forum section: electronics / repair

author: Nikan
author_rank: Regular Contributor
timestamp: February 16, 2021, 07:02:11 pm
content: Hey there,I have two GPU's laying around here.I dont know the history of those cards.Card nr.1The VRAM voltage was not present on the card.So I removed the defective BGA RAM and the voltage came right back.To my confusion, the card withouth the RAM works at 600x800.It also runs at 1080p but super distorted.GPUz is reporting all details about the card expect for the details about the RAM, BUS width and bandwidth (which sould be correct due to missing RAM).Card nr.2All voltages are present, and also the same issue here, the card works at 600x800.GPUz is reporting all details about the card expect for the details about the RAM, BUS width and bandwidth (even though ram is installed on the card).My question is how can I be sure if the Ram is defective or the crystal itself?!?I dont want to order super expensive GDDR6 RAM just to find out that both of the cards have a dead chip and are not worth to repair.Thanks in advance and best reagrds from Germany!

author: amyk
author_rank: Super Contributor
timestamp: February 17, 2021, 04:34:15 am
content: There's more than one RAM chip, chances are that it works because you're only using a small framebuffer and it fits entirely within one of the remaining ones.Also, telling us what GPUs these are would help a lot.

author: Nikan
author_rank: Regular Contributor
timestamp: February 17, 2021, 04:48:04 am
content: Thank you for the answer!One gpu doesnt Even have a single RAM chip, I have removed all of them, that's why I am so confused that I can still use the gpu even though it's at 600x800.Does that mean it's real time processing?!?One of them is a TU106 and the other one is a Tu104.

author: Berni
author_rank: Super Contributor
timestamp: February 17, 2021, 06:10:36 am
content: GPUs also have a sizable internal cache to prevent it from going out to the slower main memory for every single time it needs something. So until you fill up the cache it doesn't have any reason to even write it out to external main memory.But to be honest id also expect a graphics card with all the RAM chips missing to not really do much apart from the basic text mode that it starts up as in BIOS. But id guess it quickly becomes unhappy once you boot into windows with proper drivers and the OS starts using hardware acceleration to draw the windows.

author: Nikan
author_rank: Regular Contributor
timestamp: February 17, 2021, 05:31:32 pm
content: Well the drivers are already installed for the GPU. And the card works fine even within the OS, but only at 600×800. So does that mean the whole colored image fits within the cache? Why is it not possible to choose a resolution higher than 1080p? 1080p works, but super distorted, why is it not possible to choose 4k for example, is the gpu preventing that? Can It check the size of the available ram and choose max resolution by its own?Also how can I be sure that the crystal is fine, is there a program which tests the gpu without ram?And even if the program shows that it's good, do I have to probe all ram data lines on the board to be sure that the part which connects to the ram is still good?I guess the simplest way would be to solder ram on the card, but those chips are super expensive...

author: wraper
author_rank: Unknown
timestamp: February 17, 2021, 05:37:05 pm
content: Quote from: Berni on February 17, 2021, 06:10:36 amIt becomes unhappy once you turn computer on. I'm not aware of GPU which will show an image without RAM present. It should be possible with special BIOS firmware but you need to obtain it first, which you won't be able to do. CPU has a lot of cache as well. But it does not mean it will do anything without RAM inserted. Some GPUs will partially work with some of the RAM chips missing though.

author: wraper
author_rank: Unknown
timestamp: February 17, 2021, 05:44:12 pm
content: Quote from: Nikan on February 17, 2021, 05:31:32 pmIt cannot check the size and use only that. You need to replace the chip you removed. Otherwise it will not work properly.

author: Nikan
author_rank: Regular Contributor
timestamp: February 17, 2021, 05:54:24 pm
content: I can upload a video of the card running, later on.I swear, there is no ram an it still works at 600x800.

author: Nikan
author_rank: Regular Contributor
timestamp: February 17, 2021, 05:58:57 pm
content: But why can I only choose from 600×800 up to 1080p?I though it can check and restrict itself because its only running up to 1080p. So if it can't restrict itself the chip has to be defective that only some options are showing up.

author: wraper
author_rank: Unknown
timestamp: February 17, 2021, 06:27:48 pm
content: Quote from: Nikan on February 17, 2021, 05:58:57 pmMost likely because it runs as basic GPU with no Nvidia driver.

author: Berni
author_rank: Super Contributor
timestamp: February 17, 2021, 06:37:31 pm
content: Quote from: Nikan on February 17, 2021, 05:31:32 pmYes what do you think happens when you chose a larger resolution? The framebuffer needs more space! So at some point the framebuffers become too large to hold in cache so the cache starts writing data out to external memory. But when it then needs to retrieve that data and tried to read it back there is nothing because the RAM chip is missing, so it reads back garbage. But at very low resolutions the framebuffer stays small enugh to keep in cache and so it never even gets written out to RAM, and since the card doesn't try using the ram it doesn't care if its not there.To do a proper test of a graphics card you need to run a 3D benchmark in order to make it work hard and this will most certainly not fit in just its cache.Quote from: wraper on February 17, 2021, 05:37:05 pmDue to the PC long line of legacy even the latest and greatest $1000 gaming graphics card starts up pretending as a text only 80 column monochrome video card, like the one used in the IBM PC XT in the 1980s. This is so that any motherboard BIOS in the wild for sure knows how to talk to it and display the initial boot screen. The windows OS bootloader also stays in this mode hence why you see the F8 boot menu in gray on black text. Later on the OS will typically reconfigure the graphics card into a color bitmap mode in order to display the nicer-looking windows boot screen. During that screen it loads the actual proper graphics driver from disk that then can start using the actual graphics acceleration capabilities of the card, this is when you typically see the black screen for a second or so while the driver does its much more involved initialization before the desktop welcome screen shows up. Those earlier bootstrapping compatibility modes are likely implemented in the form of a tiny seperate monochrome video card inside that just gets switched into place of the proper GPU so it would make sense that it still works with minimal required resources.The CPU in a modern PC does the same. It is capable of running with no RAM because it starts off emulating a Intel 8088 as it was in the IBM XT. The small amount of memory that CPU supports easily fits inside its own cache. The reason for this is again compatibility since some addon cards contain machine code boot ROMs, this allows a network card to network boot a PC without a hard drive installed nor the BIOS having a network card driver present. The standardised boot process used by PC BIOSes also involves handing over the CPU in this state because it is not sure if the OS it is loading from disk is something like DOS or modern Windows. So its also the job of the windows bootloader to do the magic handshake that switches the CPU to 32bit or 64bit mode. The reason why you generally will not get a modern computer to boot without any RAM in it is that the BIOS is tasked with bringing up the system and the motherboards BIOS will initialize DDR memory in the early stages already, this involves detecting what memory is there by reading the I2C identification chips and then configuring the memory controller apropriaty for what is installed. If it does not find any RAM this makes it throw a hissyfit of angry error beeps because this most likely means something went horribly wrong in the boot process since no sane person would actually use a PC with no RAM installed. But if you place x86 assembly code in the begining of the motherboards BIOS flash chip, it will happily read it and execute it with no RAM present.

author: magic
author_rank: Super Contributor
timestamp: February 17, 2021, 10:08:02 pm
content: Quote from: Berni on February 17, 2021, 06:37:31 pmThat's not entirely correct; "cache as RAM" works in 32 bit mode as well and it works because the firmware doesn't write more than a few KB of memory, not because the CPU has more than 1MB cache, which many older CPUs did not but still worked with "cache as RAM". I think it also needs to be set up and when the CPU executes the reset vector no memory is available at all.But I generally agree, I feel like OP's success at low resolution may simply be caused by caching.A thing you need to know about memories in computers is that they are often interleaved. So, for example, there are 8 chips which appear like one logical unit because data are split between them: bytes 0+8·n go to one chip, 1+8·n to the next one, 2+8·n to another and so on. It really can't work with one chip removed.

author: Nikan
author_rank: Regular Contributor
timestamp: February 17, 2021, 10:09:35 pm
content: True that, I've checked it and it really shows up as a basic driver as you said!

author: Nikan
author_rank: Regular Contributor
timestamp: February 17, 2021, 10:30:30 pm
content: Thank you guys for all the replies, super informative stuff!!!So to properly test the card all ram IC's have to be on the board...Seems like there is a need for a gpu sockets, to test crystals.I feel like there should be another way of testing instead of buying expensive stuff, solder that on and find out the crystal is an issue as well.Checking signals on the pads of the ram before soldering those chips on should give me a better idea, if the main chip is an issue or not.Or does the chip stop signals if no ram is present?

author: Nikan
author_rank: Regular Contributor
timestamp: February 17, 2021, 10:33:00 pm
content: I mean if the bios of the motherboard has ram identification implemented, why shouldn't gpus have that as well?!?I know it is already written in the gpu from the manufacturer how much ram is on the board.But such an identification could save gpus for a longer time. For example if one ram chip is dead, why not excluding it and having 7gb instead of 8gb...

author: magic
author_rank: Super Contributor
timestamp: February 17, 2021, 10:46:23 pm
content: Motherboards identify RAM because it's user-replaceable. On GPUs it's fixed. Besides, you can't just identify RAM - CPU RAM sticks are identified by I2C EEPROMs installed on them ("SPD") - there is always a tiny chip on each stick besides the big ones. Information about GPU RAM is surely just written somewhere in the firmware chip.You would need a pretty fast scope to see GDDR6 signals.

author: Nikan
author_rank: Regular Contributor
timestamp: February 17, 2021, 11:43:44 pm
content: Yea but why not just implementing a software test...Write some data on each ram chip read that data and compare, if it's the same data the ram is good, otherwise exclude that chip from being used and reconfigure?!?I'll try that, I have 400MHz analog scope, should be enough to see the lower end frequency of those chips.

author: amyk
author_rank: Super Contributor
timestamp: February 18, 2021, 01:25:34 am
content: 400MHz is nowhere near enough - GDDR6 clock frequency is >1GHz.

author: wraper
author_rank: Unknown
timestamp: February 18, 2021, 02:43:40 am
content: Quote from: Nikan on February 17, 2021, 11:43:44 pmThere is Nvidia MATS and MODS for RAM testing which will show which exactly channel has problems and what problems. However it's not like you can simply disable RAM channel and keep GPU working normally. You would need to disable part of GPU as well, and reconfigure its operation. And then somehow support each of this faulty variant. If you think that manufacturer wants customers tinkering with faulty graphics cards, and especially investing any effort to make it possible, you are delusional.

author: Nikan
author_rank: Regular Contributor
timestamp: February 18, 2021, 05:08:37 am
content: GDDR6 runs on low speeds if not under load.Its only >1GHz if there is the need for it.

author: Nikan
author_rank: Regular Contributor
timestamp: February 18, 2021, 05:15:41 am
content: Of course, just like Apple none of those companies wants the end user or anyone else to fix their stuff, but that's a shame with all that ewaste!So the Nvidia Mats program you mentioned is able to check wethere the ram is defective or not? So if I run that program without any ram modules on will it be shown as defective or none installed? I guess I can just solder a few defective chips back on to the card to see how that program reacts...

author: wraper
author_rank: Unknown
timestamp: February 18, 2021, 05:37:05 am
content: Quote from: Nikan on February 18, 2021, 05:15:41 amDo a proper repair, replace a faulty IC. Manufacturer does nothing to prevent you from doing that. What you want is nonsense.QuoteWill show errors on all channels, what else do you expect? As already said by others, GPU does not detect presence of RAM. As I understand you simply took off all ICs even though likely only one was faulty and shorting power rail. Measure VDD to GND resistance of RAM chips and find which is bad.

author: Rasz
author_rank: Super Contributor
timestamp: February 18, 2021, 06:15:41 am
content: Quote from: wraper on February 17, 2021, 05:37:05 pmwell actuallyEarly bios stages run in Cache as Ram mode, x86 chips have a special no eviction MSR switchhttps://stackoverflow.com/questions/27699197/cache-as-ram-no-fill-mode-executable-code

author: Berni
author_rank: Super Contributor
timestamp: February 18, 2021, 06:35:28 am
content: The reason graphics card don't autodetect RAM is because its not possible for the user to replace. The manufacturer hardcodes the memory configuration into the graphics cards firmware memory. If the manufacturer wants to make a card with double the RAM they swap out the partnumber for the RAM chips and update the memory config in firmware.(Its common to have 2 different memory size variants of the same card). So if you ware to desolder the RAM and put in bigger RAM chips yourself the card would still see the same amount of RAM since that is the amount of RAM the firmware tells it it has, won't try to use RAM that it doesn't know it is there. Or in a worse case if the new RAM chips timings are too different the different RAM might not work at all because the GPU will continue talking to it with timings from the RAM chip it originally came with.This sort of method of just sticking in more RAM chips and it magically uses them is from the times of Intel 386 PCs. Where RAM did not have any identification on the modules, or you stuck raw RAM chips directly into the motherboard. In that case the BIOS would simply perform a RAM test on bootup that tries using incrementally larger amount of memory and checks at what point data starts getting lost. This is one of the reason why on old PCs you would see a number in KB counting up at boot, then stop at however much memory it found then continue booting, this is the BIOS testing for how much RAM there is. In modern times this is not so simple anymore because not only does the memory controller need to know how much memory is present but it also needs to know what the memory configuration is and what timings it requires. One stick of memory might run at 800MHz with CAS latency of 5 clock cycles, another stick of ram might only be able to run at 600MHz with CAS latency of 5 but might work at 800MHz with a CAS latency of 8 cycles...etc the BIOS needs to know all this to properly configure the memory controller for the correct timings that this exact stick of RAM supports. This is also why it is sometimes problematic when mixing different sticks of RAM in dual channel mode, the timings might be too different for the BIOS to find timing settings that works for both sticks in that pair.But since you said you have two of these graphics cards, you should have enough good RAM chips between the two for one working card. Since you said the bad chips short the Vdd this also makes it easy to find the bad ones to throw away.Any memory tests you run on a card with no RAM will obviously all fail because none of the RAM is working if its not even soldered on the board. There is no difference between dead RAM and RAM that is not even there, both will not store data hence why it the test says its bad.Also its not all about just functional tests that the GPU can do its thing. The power supplies on graphics cards are a big part of it too. Modern cards can take an absurd amount of power so they will have switching power supplies rated for 100 200 300W..etc This is a LOT of power for such a tiny switch mode supply. These do fail too (and its possible that it also killed the RAM by shoving a large voltage spike into it) and the only way to properly test these is to get the card to consume as much power as possible and the best way to do that is running 3D benchmarks that give the card a heavy workout (I use FurMark for this) but that will obviously need working RAM to run.

author: Nikan
author_rank: Regular Contributor
timestamp: February 18, 2021, 07:03:30 am
content: Manufacturers are doing a lot to build unfixable stuff!Lots of chips are not even up for sale. If you are luckyand that specific chip is up for sale, you have to get them from a dealer. Those parts are most probably from a back of a truck, binned stuff which does not work up to the minimum to pass the manufacturers tests or don't even work at all...

author: Nikan
author_rank: Regular Contributor
timestamp: February 18, 2021, 07:22:13 am
content: Yes the normal end user is not able to change the ram, but if let's say you loose a chip not shorted but some blocks are bad, why not testing with every startup like old school ram testing and rewrite the firmware automatically to ignore that chip completely? Because there is a version of that card with double the ram. And the card also works if you have a few bad chips. At the moment the card wants to use that ram it Crashes, but up to that point it works totally fine, no issues whatsoever.Too bad, but one had Samsung and the other micron ram.Well I was not able to find the bad chip by voltage injection so I desoldered all and testet them with a multimeter. I fund one bad chip on card1 and two bad chips on card2. But who knows if the other ones have bad blocks or other issues.Power rails are fine, Ive testet them with an external load.

author: Berni
author_rank: Super Contributor
timestamp: February 18, 2021, 10:55:07 am
content: Graphics cards do NOT use the memory one chip at a time. You will often see memory bus widths of 128 bit 256bit 348bit etc... Where do you find a 256bit RAM chip? You don't, because they are none. You tend to only find RAM chips up to about 16 or 32 bit. So this means that a card that uses 16bit chips needs 16 of those chips assembled together to form that 256bit memory bus. So when the GPU writes 32 bytes of data to RAM it actually stores 2 bytes in each of the 16 memory chips.Why would a GPU do such a silly thing of storing data all over the place? Well if the 32 bytes need to get read back and it is stores in 1 chip it would take 16 clock cycles to read it out (Yes i know its DDR but that is not the point) while if the 32 bytes is spread over 16 chips it only takes 2 cycles to read it in. This makes it 1600% faster in this case.When only one part of memory goes bad, this is usually that one of the address lines has gone bad. This causes some areas areas of memory to write/read into the wrong parts of RAM causing memory corruption. In that case indeed everything will be fine until the card has a lot of work to do and tries to actually use that bad area. Single RAM cell failures of course can also happen but they tend to not be noticeable on graphics cards as much since memory corruption often does not actually crash a card, but just causes visual artifacts. So if one bit goes wrong it might just cause one stuck pixel or just a single vertex of a single 3D model going wonky. The sort of stuff that you usually see from graphics cards as visual glitches where the entire screen gets peppered with weird flickering garbage tends to be problem related to a data or address line going to RAM.And load testing GPU power delivery circuitry is not so easy, you need to pull about 200A to fully load it, and it needs to react to fast transients. The cause of a crashing graphics card could be as simple as some faulty capacitors that fail to hold up the power rail on a fast transient in power draw. Some of the new Nvidia 30 series now have problems with that even when new from the factory because some manufacturers cheeped out on those capacitors.

author: Nikan
author_rank: Regular Contributor
timestamp: February 18, 2021, 08:28:09 pm
content: Great explenation, I really apreciate that!!!That makes sense to r/w the data that way to get higher speeds.And now it finally sunked in my head, why there is no memory test before startup!I feel really dumbSo then there is really no other way to know for sure. I have to buy those chips and whish my self luck.Please correct me if I am wrong.What you are saying is if the card crashes on memory load it is most porbably a bad adress line and not the ram it self.If the ram was bad there would be artefacts and most probably no crashes.I have tested the power supply with an electronic load the cards supply was pushing around 160A.I have seen some spikes, but I guess it was partially from the switching of the electronic load, not just the supply.I'll have to check the switching frequency of the load to get a better understanding.Or is something like a heavy duty resistor or super expensive high speed load needed?Again thank you very much!

author: Berni
author_rank: Super Contributor
timestamp: February 19, 2021, 06:10:52 am
content: Yep you need to replace all the chips and hope for the best. But if the lines to the GPU for all the RAM signals are intact (No shorts, visible ESD diode behavior etc) then the bus on the GPU side should be fine. If something would blow the GPU from the outside it would most certainly blow the IO pin before damaging any of the internal circuitry.Also the fact that it produces an image is a big test already of the overall functionality since that means all the most important supply rails are up, clocks are running, it boots up its firmware successfully, its communicating with the motherboard etc... If you put this much load on the core supply rail and it kept running then its probably fine too.But you can never be 100% sure with it. Its still possible that what actually blew your RAM chips is a power supply going unstable and sending too much voltage into them. Since it is pretty rare for chips to suddenly short the Vcc completely like that for no reason, its usually caused by something violent on its pins.EDIT: Oh and the reason why bad memory tends to cause visual glitching rather than a full on crash on GPUs while bad main RAM causes a bluescreen is that video cards mainly store data in RAM, very little of it is instruction code. So when data gets corrupted that corrupts a pixel or vector coordinate or something. On the other hand CPUs store a lot of executable code in RAM and when you flip a bit in there that might turn a machine code instruction into some completely different instruction, causing the CPU to do something stupid and trigger an exception trap that is there to catch situations like this. If this happens inside a users program the OS might kill that process with a error message, if it happens inside the OS kernel or a driver or something then it bluescreens.