memtest_vulkan - stress test video memory for stability during overclocking or repair. Opensource & crossplatform tool written in vulkan compute. Developed as an alternative to OpenCL-based tool memtestCL Just start application, wait several minutes and stop testing by Ctrl+C. Detected errors are displayed immediately during test run. Sceenshot from over-overclocked 3060TI: The most transparent way to get prebuilt binaries - download github artifacts from https://github.com/GpuZelenograd/memtest_vulkan/actions/runs/3140130070
Nice find! This is really helpful to actually see at what point your getting vram memory errors if your overclocking.
This is a neat tool! Seems useful for quick bandwidth benchmarking too. Runs as-is on Linux with both RADV with a 6600 XT (3.0@8x) and a 3060 (closed drivers, 3.0@16x). There's a notable bandwidth difference. Code: [espionage724@fedora x86_64-linux-memtest_vulkan-v0.4.0]$ '/home/espionage724/Downloads/Linux binaries (x86_64 and aarch64)/x86_64-linux-memtest_vulkan-v0.4.0/memtest_vulkan' https://github.com/GpuZelenograd/memtest_vulkan v0.4.0 by GpuZelenograd To finish testing use Ctrl+C 1: Bus=0x0A:00 DevId=0x73FF 8GB AMD RADV DIMGREY_CAVEFISH 2: Bus=0x00:00 DevId=0x0000 2GB llvmpipe (LLVM 14.0.0, 256 bits) (first device will be autoselected in 0 seconds) Override index to test: ...first device autoselected Testing 1: Bus=0x0A:00 DevId=0x73FF 8GB AMD RADV DIMGREY_CAVEFISH 1 iteration. Since last report passed 81.47037ms written 3.2GB, read: 6.5GB 119.7GB/sec 14 iteration. Since last report passed 1.06255302s written 42.2GB, read: 84.5GB 119.3GB/sec 76 iteration. Since last report passed 5.054044753s written 201.5GB, read: 403.0GB 119.6GB/sec 445 iteration. Since last report passed 30.079508667s written 1199.2GB, read: 2398.5GB 119.6GB/sec ^C memtest_vulkan: no any errors, testing PASSed. press any key to continue... Code: [espionage724@fedora Downloads]$ '/home/espionage724/Downloads/memtest_vulkan' https://github.com/GpuZelenograd/memtest_vulkan v0.4.0 by GpuZelenograd To finish testing use Ctrl+C 1: Bus=0x08:00 DevId=0x2487 12GB NVIDIA GeForce RTX 3060 2: Bus=0x00:00 DevId=0x0000 2GB llvmpipe (LLVM 14.0.0, 256 bits) (first device will be autoselected in 0 seconds) Override index to test: ...first device autoselected Testing 1: Bus=0x08:00 DevId=0x2487 12GB NVIDIA GeForce RTX 3060 1 iteration. Since last report passed 58.452606ms written 7.2GB, read: 10.9GB 310.1GB/sec 18 iteration. Since last report passed 1.033171499s written 123.2GB, read: 184.9GB 298.2GB/sec 102 iteration. Since last report passed 5.000616067s written 609.0GB, read: 913.5GB 304.5GB/sec 605 iteration. Since last report passed 30.048590232s written 3646.8GB, read: 5470.1GB 303.4GB/sec 1105 iteration. Since last report passed 30.017061157s written 3625.0GB, read: 5437.5GB 301.9GB/sec ^C memtest_vulkan: no any errors, testing PASSed. press any key to continue...
I should note that while the test uses a lot of memory bandwidth - it should not be treated as a "max bandwidth benchmark". For some cards it utilizes nearly 100% of bandwidth, but much less for other, the smallest known to me - less than 40% for Radeon VII on linux. It is designed only as a stablity/correctness check tool, not as bandwidth benchmark. One of the reasons - the memory access pattern is not linear, but more a "mixed-order sequence of a linear blocks" with quite long address calculations. It helps in finding memory errors related to address lines, but the overall bandwidth usage is sometimes much smaller then theoretical maximum.
(this should go to the starting post, but I can't edit it) I've fixed several bugs affecting selecting vulkan memory types were fixed and included in next version. See release notes and downloads at github https://github.com/GpuZelenograd/memtest_vulkan/releases