# GPU memory testing program



## Kevin C (Mar 23, 2016)

Hello everyone!

I made a program for testing GPU memory.

It's free!

You can get it here:
http://www.programming4beginners.com/gpumemtest

It's for Windows Vista / 7 / 8 / 10 . It should work on common discrete GPUs. It does what it says. It's simple. It's shareware. That's all.

Cheers!

Edit: Overclockers! Please do not use GpuMemTest on AMD GPUs. It might not be able to detect overclocked memory errors on AMD GPUs.


----------



## trog100 (Mar 23, 2016)

i ignored all the warnings windows 10  fired at me and installed the program.. it quickly told me my overclocked gpu memory was okay.. 

trog


----------



## Caring1 (Mar 23, 2016)

trog100 said:


> i ignored all the warnings windows 10  fired at me and installed the program.. it quickly told me my overclocked gpu memory was okay..
> 
> trog


Your bank accounts are now owned by a Nigerian Princess ...


----------



## trog100 (Mar 23, 2016)

it seems a neat and quick way of checking overclocking on vram.. mine is running at +244 which i recon is well within what it can do.. i have run it at +300..

i run a paid for AVG anti virus thing which i trust more than windows 10.. that cleared it okay..

trog


----------



## dorsetknob (Mar 23, 2016)

Perhaps you should have run this by @W1zzard  first before you posted link
In the meantime Thanks


----------



## silentbogo (Mar 23, 2016)

Not sure if it works, but what I know for sure is that:
a) It allocates available GPU memory (in my case 1.6GB / 2.0GB)
b) It does something...

Not sure if 15-second runtime with a couple of fill patterns will suffice to determine GPU memory errors, but until I see the source or at least more details on how it works, I can't really tell if it even does anything.


----------



## Kevin C (Mar 23, 2016)

silentbogo said:


> b) It does something...
> 
> Not sure if 15-second runtime with a couple of fill patterns will suffice to determine GPU memory errors, but until I see the source or at least more details on how it works, I can't really tell if it even does anything.



- You can try raising the memory clock until it fails on the test.
- Finding memory errors is a complicated topic. Basically what it does is writes (on allocated chunk), then reads to check that the written data is correct. The patterns are: sequential, random, sequential backwards, overlapping/non-overlapping blocks. The data written is either random (then a second pass inverted), or walking (sparse) ones (and then inverted).

About memory errors, I reckon there are 3 possibilities:
1) you got a bad chip or board. It will be detected
2) the memory clock is too high. That will be detected
3) "weak board, transient errors" - some boards simply have a higher transient error rates than others. The error rates can range from a few errors per year to several thousands per year. This will (in many cases) not be detected by GpuMemTest. The best way to detect it would be to use ECC. Otherwise, a memory test which runs overnight would increase the confidence in the board, but many cases would still go undetected. But, anyways, this kind of problem is unlikely to have any major impact on your system, especially if you are just gaming.


----------



## redeye (Mar 23, 2016)

have you tried the pattern 492492492492.... to test the gpu memory?

it seems that the 492 pattern is the magic hammer for the "row hammer" bug/error on memory sticks...


----------



## Kevin C (Mar 23, 2016)

The row hammering test is not performed at all.

492.. that would be  010010010010..., every third bit set. GpuMemTest uses a pattern with every fifth bit set (10000100001...), every eleventh bit set and every thirteenth bit set, all of that walking and also inverted.


----------



## 111frodon (Mar 23, 2016)

Cannot download the file. Tried many times, every times it tells me ERR_CONNECTION_RESET when i click on the red link.


----------



## Kevin C (Mar 23, 2016)

111frodon said:


> Cannot download the file. Tried many times, every times it tells me ERR_CONNECTION_RESET when i click on the red link.



Strange...
a) To try with HTTPS protocol, use the following link:
https://www.learn-programming-book.com/files/gpumemtest/install-GpuMemTest-1.2.exe

b) Try a different browser

c) If both a) and b) fail, then there might be something wrong with your Internet connection.


----------



## trog100 (Mar 23, 2016)

my chrome browser on win 10 wont download it unless i select keep at the bottom.. it defaults to discard.. after that win 10 does the same thing before installing it.. 

i think its because its new and unknown.. 

trog


----------



## 111frodon (Mar 24, 2016)

Tried chrome amd IE, both links from the first post and with HTTPS protocol, both failed. I can hardly tell there's anything wrong with my connection, as any other thing i usually do on the net is working (downloading, browsing, watching, utorrent). Weird...


----------



## P4-630 (Mar 24, 2016)

111frodon said:


> Tried chrome amd IE, both links from the first post and with HTTPS protocol, both failed. I can hardly tell there's anything wrong with my connection, as any other thing i usually do on the net is working (downloading, browsing, watching, utorrent). Weird...



Your IP might be blacklisted


----------



## generaleramon (Mar 24, 2016)

Hi. I've tested my 290x(4GB). it allocate 2160MB of Vram. my card is not stable at 1500mhz ram(blackscreen during 3dmark), but i can pass this test, i think is too short and not so hard on the memory system of the card. This app will be usefull if optimized


----------



## Kevin C (Mar 24, 2016)

111frodon said:


> Tried chrome amd IE, both links from the first post and with HTTPS protocol, both failed. I can hardly tell there's anything wrong with my connection, as any other thing i usually do on the net is working (downloading, browsing, watching, utorrent). Weird...



Perhaps your antivirus does not allow you to download .exe files. Or it might be some new "safe browsing" scheme.


----------



## Kevin C (Mar 24, 2016)

generaleramon said:


> Hi. I've tested my 290x(4GB). it allocate 2160MB of Vram. my card is not stable at 1500mhz ram(blackscreen during 3dmark), but i can pass this test, i think is too short and not so hard on the memory system of the card. This app will be usefull if optimized



Interesting. Could you please run GpuMemTest once more, then send me the "Devices log" and "Execution log" on kevinc at programming4beginners.com


----------



## generaleramon (Mar 24, 2016)

i can't find contact on your site. 2880mb used this time.

```
====================================================
GpuMemTest v1.2
Platform name   :AMD Accelerated Parallel Processing
Platform version:OpenCL 2.0 AMD-APP (2004.6)
Device name     :Hawaii
Device version  :OpenCL 1.2 AMD-APP (2004.6)
Driver version  :2004.6 (VM)
Platform selected #: 1
Device selected #: 1
Time: 2016-03-24 19:20:22 +0100
Initializing
Spilling out of device memory detected: 3532 MiB in 6 chunks.
Releasing extra memory.
Memory chunks count:  5
    Chunk 0  size: 754974720
    Chunk 1  size: 754974720
    Chunk 2  size: 754974720
    Chunk 3  size: 754974720
    Chunk 4  size: 0
Allocated 2880 MiB total, in 5 chunks
    Seed: 1458880130
    [test 1/8 pass 1/4] Random data, sequential
    Test time:  3284 ms
    [test 1/8 pass 2/4] Random data, sequential
    Test time:  3282 ms
    [test 1/8 pass 3/4] Random data, sequential
    Test time:  3294 ms
    [test 1/8 pass 4/4] Random data, sequential
    Test time:  3281 ms
    [test 2/8 pass 1/2] Block copy
    Test time:  4118 ms
    [test 2/8 pass 2/2] Block copy
    Test time:  2817 ms
    [test 3/8 pass 1/6] Walking inversions, stride 5 bits
    Test time:  3182 ms
    [test 3/8 pass 2/6] Walking inversions, stride 5 bits
    Test time:  3184 ms
    [test 3/8 pass 3/6] Walking inversions, stride 5 bits
    Test time:  3187 ms
    [test 3/8 pass 4/6] Walking inversions, stride 5 bits
    Test time:  3196 ms
    [test 3/8 pass 5/6] Walking inversions, stride 5 bits
    Test time:  3192 ms
    [test 3/8 pass 6/6] Walking inversions, stride 5 bits
    Test time:  3185 ms
    [test 4/8 pass 1/5] Random access, random data - write, read/write, read
    Test time:  4254 ms
    [test 4/8 pass 2/5] Random access, random data - write, read/write, read
    Test time:  4245 ms
    [test 4/8 pass 3/5] Random access, random data - write, read/write, read
    Test time:  4239 ms
    [test 4/8 pass 4/5] Random access, random data - write, read/write, read
    Test time:  4248 ms
    [test 4/8 pass 5/5] Random access, random data - write, read/write, read
    Test time:  4244 ms
    [test 5/8 pass 1/4] Block copy, sparse inversions, overlapping
    Test time:  4969 ms
    [test 5/8 pass 2/4] Block copy, sparse inversions, overlapping
    Test time:  4976 ms
    [test 5/8 pass 3/4] Block copy, sparse inversions, overlapping
    Test time:  4698 ms
    [test 5/8 pass 4/4] Block copy, sparse inversions, overlapping
    Test time:  4947 ms
    [test 6/8 pass 1/4] Block copy, random data, overlapping
    Test time:  3632 ms
    [test 6/8 pass 2/4] Block copy, random data, overlapping
    Test time:  3504 ms
    [test 6/8 pass 3/4] Block copy, random data, overlapping
    Test time:  3590 ms
    [test 6/8 pass 4/4] Block copy, random data, overlapping
    Test time:  3504 ms
    [test 7/8 pass 1/12] Walking inversions, stride 11 bits, backwards
    Test time:  3078 ms
    [test 7/8 pass 2/12] Walking inversions, stride 11 bits, backwards
    Test time:  3082 ms
    [test 7/8 pass 3/12] Walking inversions, stride 11 bits, backwards
    Test time:  3084 ms
    [test 7/8 pass 4/12] Walking inversions, stride 11 bits, backwards
    Test time:  3085 ms
    [test 7/8 pass 5/12] Walking inversions, stride 11 bits, backwards
    Test time:  3086 ms
    [test 7/8 pass 6/12] Walking inversions, stride 11 bits, backwards
    Test time:  3086 ms
    [test 7/8 pass 7/12] Walking inversions, stride 11 bits, backwards
    Test time:  3090 ms
    [test 7/8 pass 8/12] Walking inversions, stride 11 bits, backwards
    Test time:  3091 ms
    [test 7/8 pass 9/12] Walking inversions, stride 11 bits, backwards
    Test time:  3080 ms
    [test 7/8 pass 10/12] Walking inversions, stride 11 bits, backwards
    Test time:  3085 ms
    [test 7/8 pass 11/12] Walking inversions, stride 11 bits, backwards
    Test time:  3104 ms
    [test 7/8 pass 12/12] Walking inversions, stride 11 bits, backwards
    Test time:  3090 ms
    [test 8/8 pass 1/14] Walking inversions, stride 13 bits
    Test time:  3189 ms
    [test 8/8 pass 2/14] Walking inversions, stride 13 bits
    Test time:  3183 ms
    [test 8/8 pass 3/14] Walking inversions, stride 13 bits
    Test time:  3186 ms
    [test 8/8 pass 4/14] Walking inversions, stride 13 bits
    Test time:  3188 ms
    [test 8/8 pass 5/14] Walking inversions, stride 13 bits
    Test time:  3188 ms
    [test 8/8 pass 6/14] Walking inversions, stride 13 bits
    Test time:  3197 ms
    [test 8/8 pass 7/14] Walking inversions, stride 13 bits
    Test time:  3189 ms
    [test 8/8 pass 8/14] Walking inversions, stride 13 bits
    Test time:  3197 ms
    [test 8/8 pass 9/14] Walking inversions, stride 13 bits
    Test time:  3186 ms
    [test 8/8 pass 10/14] Walking inversions, stride 13 bits
    Test time:  3201 ms
    [test 8/8 pass 11/14] Walking inversions, stride 13 bits
    Test time:  3182 ms
    [test 8/8 pass 12/14] Walking inversions, stride 13 bits
    Test time:  3201 ms
    [test 8/8 pass 13/14] Walking inversions, stride 13 bits
    Test time:  3187 ms
    [test 8/8 pass 14/14] Walking inversions, stride 13 bits
    Test time:  3186 ms
End execution
Total time:  175957 ms
All tests OK.
```


```
GpuMemTest v1.2
time: 2016-03-24 19:23:58 +0100
OpenCL platform count: 1
=============================
AMD Accelerated Parallel Processing
    Advanced Micro Devices, Inc.
    OpenCL 2.0 AMD-APP (2004.6)
    FULL_PROFILE
     ===Devices===
    Hawaii
        default device
        Advanced Micro Devices, Inc.
        OpenCL 1.2 AMD-APP (2004.6)
        2004.6 (VM)
        FULL_PROFILE
        device type      : GPU
        maxThreadN       : 256
        threadDimN       : 3
        threadDim        : (256,256,256)
        memBits          : 32
        globalMemSize MiB: 3072
        maxAllocSize  MiB: 2880
        mallocAllignment : 256
        cacheLineBytes   : 64
        available        : YES
        ecc support      : NO
        deviceClockMHz   : 1100
        computeUnits     : 44
    AMD FX(tm)-8320 Eight-Core Processor          
        AuthenticAMD
        OpenCL 1.2 AMD-APP (2004.6)
        2004.6 (sse2,avx,fma4)
        FULL_PROFILE
        device type      : CPU
        maxThreadN       : 1024
        threadDimN       : 3
        threadDim        : (1024,1024,1024)
        memBits          : 32
        globalMemSize MiB: 2048
        maxAllocSize  MiB: 1024
        mallocAllignment : 128
        cacheLineBytes   : 64
        available        : YES
        ecc support      : NO
        deviceClockMHz   : 4816
        computeUnits     : 8
=============================
Suitable platforms count: 1
AMD Accelerated Parallel Processing (OpenCL 2.0 AMD-APP (2004.6))
    Hawaii
```


----------



## Kevin C (Mar 24, 2016)

It appears that only 3GB of GPU memory are available to OpenCL programs on your board. This is a common issue on AMD boards. The device is running at 1100 MHz GPU clock.

It is possible that in the previous test run some of the GPU memory was unavailable due to being used by other programs, or because of some leaked memory.

Perhaps you should reset your computer and then try to run GpuMemTest again to see whether it works at *stock* GPU speed / 1500 MHz memory. Then you should try 3DMark at the same frequencies.

But anyway, GpuMemTest will be unable to test the entire memory of your GPU.


----------



## Kevin C (Mar 24, 2016)

Ok, so, from now on, I'm recommending not to use GpuMemTest for overclocking memory on AMD GPUs.


----------



## Solaris17 (Mar 24, 2016)

this is sweet thanks you should keep up dev on it.


----------



## Ikaruga (Mar 26, 2016)

Would it be possible to see the source code ('Github it' perhaps)?


----------



## Kevin C (Mar 27, 2016)

Well, generally speaking, I would like to keep the source code of this program for myself.

But, if you are interested in some specific part of code, I guess that I could post some snippets.


----------



## birdie (Jan 19, 2017)

@Kevin C 

Doesn't seem to support GPUs with more than 4GB of VRAM. 

Are updates planned?


----------

