mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   GPU Computing (https://www.mersenneforum.org/forumdisplay.php?f=92)
-   -   mfaktc: a CUDA program for Mersenne prefactoring (https://www.mersenneforum.org/showthread.php?t=12827)

kriesel 2019-05-07 17:06

[QUOTE=Rodrigo;516039]OK, I have [URL="https://www.nvidia.com/Download/driverResults.aspx/105040/en-us"]this driver[/URL] installed, it's the one that the Nvidia site led me to when entering the particulars on the driver downloads page.

How does one check which version of Windows MFAKTC 0.21 was compiled for? The ZIP file contains 32- and 64-bit versions and this XP is 32 bits, so...

Regarding the other types of info you asked about, I've struck out on all of them. The [URL="http://us.download.nvidia.com/Windows/368.81/368.81-winxp-desktop-release-notes-updated.pdf"]release notes[/URL] for this driver were of no help, and I didn't find anything that looked useful in Device Manager. A Web search for "what CUDA level does 368.81 driver support" didn't turn up anything; the [URL="https://www.geforce.com/hardware/desktop-gpus/geforce-gtx-960/specifications"]specifications[/URL] page for the 960 says merely that "Yes" it supports CUDA, but not [B]what[/B] levels.
:bob:[/QUOTE]
Sorry, I earlier posted GTX960 needed CUDA 5.2. That was wrong. It supports compute capabality 5.2, a completely different distinction.
I don't see the GTX960 listed as among the gpu models that driver version supports. 950 yes, 960 no. But maybe it's ok. Are you able to run other CUDA software on the gpu?

[URL]http://us.download.nvidia.com/Windows/368.81/368.81-winxp-desktop-release-notes-updated.pdf[/URL] Table 3.1 in section 3, "Supported NVIDIA desktop products"
Mfaktc on GTX960 might require CUDA8 though. I' m not sure that's supported for XP.

I don't have any GTX9xx to compare directly against, nor currently any gpu-equipped XP. My GTX 10xx are on Windows 7 systems and 64-bit OS; they are all at CUDA 8 which is required for them for mfaktc, although earlier CUDA versions work ok for CUDAPm1 or CUDALucas as I recall. I'm running an old Quadro 2000 on Vista but that is 64 bit too. I had run version 0.20 or 0.21 of mfaktc on Quadro 2000 on 32bit XP pentium-4 systems, but both those 2 systems failed some time ago so I can not check details there.

The message you started with reminds me of an incompatibility I ran into when attempting to run a version of Mlucas compiled on one cpu type (E5645 on Win 7) on an older cpu type and much older OS (pentium NT 4).

So, we have possible compatibility variables:
CUDA level app and dlls,
driver level present and what that supports,
gpu model & compute capability level,
32 vs 64 bitness,
OS type and version compatibility,
cpu types allowed/supported in the CUDA app,
cpu type present on run system.

It gets even more interesting when mixing old and new gpus in the same system, since support of old gpus is phased out, so old gpus require a driver old enough to support them, while new gpus require a driver new enough to support them, and NVIDIA allows only one NVIDIA gpu driver per system, and with sufficiently old and new gpus there may be few, one or no simultaneous solution. [URL]https://www.mersenneforum.org/showpost.php?p=490615&postcount=4[/URL]

Rodrigo 2019-05-07 21:43

[QUOTE=kriesel;516053]Sorry, I earlier posted GTX960 needed CUDA 5.2. That was wrong. It supports compute capabality 5.2, a completely different distinction.
I don't see the GTX960 listed as among the gpu models that driver version supports. 950 yes, 960 no. But maybe it's ok. Are you able to run other CUDA software on the gpu?
[/QUOTE]
Thanks for following up, @kriesel. We've made some progress. As I write this, the GTX 960 in the XP is running the "short test" of the CUDA 6.5 version of CUDALucas, without complaint.

I'll be happy to provide output text if that will help.

Rodrigo 2019-05-08 15:18

In case my previous post left the wrong impression, the original issue has yet to be solved, as MFAKTC still refuses to run.

Any ideas for how to approach the matter, now that we know that another CUDA 6.5 program (CUDALucas) does work?

kriesel 2019-05-08 23:07

[QUOTE=Rodrigo;516046]According to the first post on [URL="https://stackoverflow.com/questions/30820513/what-is-the-correct-version-of-cuda-for-my-nvidia-driver#30820690"]this page[/URL], the 368.81 driver should support CUDA 8.0 as well as previous levels. The thread addresses Ubuntu, but I have to think that the concepts are equally applicable to Windows.[/QUOTE]Not quite equally (and that's probably why that page uses XX some places). But close enough for your purposes I think.

GTX960 is Maxwell which has compute capability 5.2 which requires at least CUDA6.5 for full support.

Searching online for an error message you reported, "is not a valid Win32 application" leads to links like
[URL]https://www.techwalla.com/articles/how-to-fix-a-not-valid-win32-application[/URL]
I would ignore the advice there about using certain emulators though, since my impression is things
like VirtualBox do not provide sufficient access to the underlying gpu for gpu applications to work.

I haven't found a good way to determine what version of Windows, or what type of cpu, a given executable file requires.
Typically this is handled in the software documentation. What [B]c[/B]pu type is in your XP system? If the mfaktc you're trying to use requires a higher [B]c[/B]pu type, or OS, it's game over.
[URL]https://www.intel.com/content/www/us/en/support/topics/utility-tools.html[/URL] [URL]https://cpuid.com/softwares/cpu-z.html[/URL] etc will tell you what you have.
Even the Visual Studio dumper doesn't tell what cpu type is required.
[URL]https://stackoverflow.com/questions/4610091/not-a-valid-win32-application[/URL]

Try a different mfaktc download?
Try a newer OS perhaps on USB bootable stick on your cpu and gpu?
There are entirely too many flavors: [URL]https://en.wikipedia.org/wiki/Comparison_of_Microsoft_Windows_versions[/URL]

Possibly running something like this would provide some hints about what is going wrong with the newer mfaktc on your xp system, although it may be a deeper dive than you want to try.
[URL]https://docs.microsoft.com/en-us/sysinternals/downloads/debugview[/URL]
[URL]https://docs.microsoft.com/en-us/cpp/build/reference/dumpbin-reference?view=vs-2019[/URL] requires a Visual Studio install

Maybe try [URL]https://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/windows-7-and-exe-is-not-a-valid-win-32/8f8c4d85-5015-47ec-82d1-5d0ebe7a8bd4[/URL]
or [URL]https://www.youtube.com/watch?v=mABpeLwbolY[/URL]

Where did you download from, the mfaktc version you're having trouble with?
How do the downloaded file's properties compare to those shown at [URL]https://download.mersenne.ca/mfaktc/mfaktc-0.21[/URL]

All the above is about the first error message you identified as showing up.
There's also the "access denied" one. Is any file in the folder restricted such as read only, not execute? Check permissions of all files, and also the folder.

Unfortunately, a CUDALucas run does not provide information about the cpu involved, or much else that's likely to shed light on the mfaktc issue you reported.
It's encouraging though that you're able to run SOMETHING gpu oriented with the driver and gpu that's in place on the OS (XP) that's there.


[CODE]CUDALucas v2.06beta 32-bit build, compiled Apr 16 2017 @ 21:23:16

You may experience a small delay on 1st startup to due to Just-in-Time Compilation

[B]binary compiled for CUDA 6.50
CUDA runtime version 6.50
CUDA driver version 8.0[/B]

------- DEVICE 0 -------
name GeForce GTX 1050 Ti
ECC Support? Disabled
Compatibility 6.1
clockRate (MHz) 1468
memClockRate (MHz) 3504
totalGlobalMem 4294967295
totalConstMem 65536
l2CacheSize 1048576
sharedMemPerBlock 49152
regsPerBlock 65536
warpSize 32
memPitch 2147483647
maxThreadsPerBlock 1024
maxThreadsPerMP 2048
multiProcessorCount 6
maxThreadsDim[3] 1024,1024,64
maxGridSize[3] 2147483647,65535,65535
textureAlignment 512
deviceOverlap 1
pciDeviceID 0
pciBusID 40[/CODE][CODE]mfaktc v0.21 (64bit built)

Compiletime options
THREADS_PER_BLOCK 256
SIEVE_SIZE_LIMIT 32kiB
SIEVE_SIZE 193154bits
SIEVE_SPLIT 250
MORE_CLASSES enabled

Runtime options
SievePrimes 25000
SievePrimesAdjust 1
SievePrimesMin 5000
SievePrimesMax 100000
NumStreams 3
CPUStreams 3
GridSize 3
GPUSievePrimes 82486
GPUSieveSize 64Mi bits
GPUSieveProcessSize 16Ki bits
Checkpoints enabled
CheckpointDelay 300s
WARNING: Cannot read WorkFileAddDelay from mfaktc.ini, set to 600s by default
WorkFileAddDelay 600s
Stages enabled
StopAfterFactor bitlevel
PrintMode full
V5UserID Kriesel
ComputerID condorette-q2000
ProgressHeader "Date Time | class Pct | time ETA | GHz-d/day Sieve Wait"
ProgressFormat "%d %T | %C %p%% | %t %e | %g %s %W%%"
AllowSleep no
TimeStampInResults yes

CUDA version info
[B] binary compiled for CUDA 6.50
CUDA runtime version 6.50
CUDA driver version 8.0[/B]

CUDA device info
name Quadro 2000
compute capability 2.1
max threads per block 1024
max shared memory per MP 49152 byte
number of multiprocessors 4
CUDA cores per MP 48
CUDA cores - total 192
clock rate (CUDA cores) 1251MHz
memory clock rate: 1304MHz
memory bus width: 128 bit

Automatic parameters
threads per grid 1048576
random selftest offset 29825
GPUSievePrimes (adjusted) 82486
GPUsieve minimum exponent 1055144

running a simple selftest...
Selftest statistics
number of tests 107
successfull tests 107[/CODE]I recall being required to use the CUDA 8 version of mfaktc to get it going on GTX10xx. [CODE]mfaktc v0.21 (64bit built)

Compiletime options
THREADS_PER_BLOCK 256
SIEVE_SIZE_LIMIT 32kiB
SIEVE_SIZE 230945bits
SIEVE_SPLIT 250
MORE_CLASSES disabled

Runtime options
SievePrimes 25000
SievePrimesAdjust 1
SievePrimesMin 5000
SievePrimesMax 100000
NumStreams 3
CPUStreams 3
GridSize 3
GPUSievePrimes 82486
GPUSieveSize 64Mi bits
GPUSieveProcessSize 16Ki bits
Checkpoints enabled
CheckpointDelay 300s
WARNING: Cannot read WorkFileAddDelay from mfaktc.ini, set to 600s by default
WorkFileAddDelay 600s
Stages enabled
StopAfterFactor bitlevel
PrintMode full
V5UserID Kriesel
ComputerID condorette-gtx1050ti
ProgressHeader "Date Time | class Pct | time ETA | GHz-d/day Sieve Wait"
ProgressFormat "%d %T | %C %p%% | %t %e | %g %s %W%%"
AllowSleep no
TimeStampInResults yes

CUDA version info
[B] binary compiled for CUDA 8.0
CUDA runtime version 8.0
CUDA driver version 8.0
[/B]
CUDA device info
name GeForce GTX 1050 Ti
compute capability 6.1
max threads per block 1024
max shared memory per MP 98304 byte
number of multiprocessors 6
clock rate (CUDA cores) 1468MHz
memory clock rate: 3504MHz
memory bus width: 128 bit

Automatic parameters
threads per grid 786432
random selftest offset 16198
GPUSievePrimes (adjusted) 82486
GPUsieve minimum exponent 1055144

running a simple selftest...
Selftest statistics
number of tests 107
successfull tests 107

selftest PASSED![/CODE]All the above code sections are from the same 64bit Windows 7 system. I think trying a CUDA8 version of mfaktc is not an option for you, since CUDA8 only comes in 64-bit flavor, and your XP is 32 bit. Maybe try v7.0 or 7.5 if you have it?


From a different system (Windows 10, so 64 bit):[CODE]mfaktc v0.21 (32bit built)

Compiletime options
THREADS_PER_BLOCK 256
SIEVE_SIZE_LIMIT 32kiB
SIEVE_SIZE 193154bits
SIEVE_SPLIT 250
MORE_CLASSES enabled

Runtime options
SievePrimes 25000
SievePrimesAdjust 1
SievePrimesMin 5000
SievePrimesMax 100000
NumStreams 3
CPUStreams 3
GridSize 3
GPUSievePrimes 82486
GPUSieveSize 64Mi bits
GPUSieveProcessSize 16Ki bits
Checkpoints enabled
CheckpointDelay 30s
WorkFileAddDelay 600s
Stages enabled
StopAfterFactor bitlevel
PrintMode full
V5UserID (none)
ComputerID (none)
ProgressHeader "Date Time | class Pct | time ETA | GHz-d/day Sieve Wait"
ProgressFormat "%d %T | %C %p%% | %t %e | %g %s %W%%"
AllowSleep no
TimeStampInResults no

CUDA version info
binary compiled for CUDA 6.50
CUDA runtime version 6.50
CUDA driver version 7.50

CUDA device info
name Quadro K4000
compute capability 3.0
max threads per block 1024
max shared memory per MP 49152 byte
number of multiprocessors 4
CUDA cores per MP 192
CUDA cores - total 768
clock rate (CUDA cores) 810MHz
memory clock rate: 2808MHz
memory bus width: 192 bit

Automatic parameters
threads per grid 1048576
random selftest offset 2966
GPUSievePrimes (adjusted) 82486
GPUsieve minimum exponent 1055144

running a simple selftest...
Selftest statistics
number of tests 107
successfull tests 107

selftest PASSED![/CODE]32bit apps will run on a 64bit OS and hardware, but 64bit apps won't run on a 32bit OS or hardware.
If you're still completely stuck getting mfaktc v0.21 to run on your GTX960 on XP, you could try downloading an earlier version from the mirror site. Or if your older gpu is still present in the system, experiment with what mfaktc variations will run on that and try the exact same thing on the GTX960.

LaurV 2019-05-09 06:21

This tread repeats exactly my case, few years ago (the discussion is on the forum).

Mfaktc won't run on XP32 with new cards, no matter what, or at least, not solvable in short time (or we don't know yet the short path to solve it).

Solution: switch to 64 bit OS (Win 7, still using it).

nomead 2019-05-09 09:20

Sounds like the precompiled binary needs to be compiled again on an old enough version of Visual Studio that still supports XP. It's not a 32-bit vs. 64-bit thing, but some things changed between XP and Vista. Maybe I'll be able to do some tests later this evening, but no promises.

nomead 2019-05-09 10:12

Sorry, failed. VS2012 complained that it needs to run on a 32-bit machine to compile 32-bit executables; all I have is 64-bit Windows 7. And at least VS2012 wouldn't install on the 32-bit XP machine I still have at work. Maybe I'll still think of something but this wasn't it.

Rodrigo 2019-05-10 17:27

@kriesel, @LaurV, and @nomead: thank you very much for investigating this frustrating issue.

Turns out that the machine in question came with a second set of operating system disks, for Vista Business x32. I installed Vista this morning alongside XP, installed the 32-bit Vista/7 driver for the GTX960, and ran the self-test for the CUDA 6.5 version of MFAKTC 0.21 -- success! :smile: A sample TF also worked.

Next I tried running the CUDA 8.0 version. This one threw an error: the CUDA runtime version is listed as 539041.24 and it needs to match "the CUDA toolkit version used during compile."

So we have a working solution with CUDA 6.5. However, can someone fill me in on the part about the CUDA runtime version being 539041.24 instead of 8.0 as one might expect?

kriesel 2019-05-10 18:31

[QUOTE=Rodrigo;516401]@kriesel, @LaurV, and @nomead: thank you very much for investigating this frustrating issue.

Turns out that the machine in question came with a second set of operating system disks, for Vista Business x32. I installed Vista this morning alongside XP, installed the 32-bit Vista/7 driver for the GTX960, and ran the self-test for the CUDA 6.5 version of MFAKTC 0.21 -- success! :smile: A sample TF also worked.

Next I tried running the CUDA 8.0 version. This one threw an error: the CUDA runtime version is listed as 539041.24 and it needs to match "the CUDA toolkit version used during compile."

So we have a working solution with CUDA 6.5. However, can someone fill me in on the part about the CUDA runtime version being 539041.24 instead of 8.0 as one might expect?[/QUOTE]It's been a while so I don't remember the details, but I recall getting seemingly random CUDA levels reported when there was some sort of fatal mismatch, like maybe the program version CUDA level exceeds the driver support or something.

kriesel 2019-05-10 20:20

In linux, with a too-low driver version for the CUDA level, you get CUDA 0.0 runtime indicated, per thread [URL]https://www.mersenneforum.org/showthread.php?t=21651[/URL].

On one of my Win7 x64 systems, I was able to duplicate your runtime mismatch issue, sort of (different alleged runtime number).
[CODE]Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
>mfaktc-win-64
mfaktc v0.21 (64bit built)

Compiletime options
THREADS_PER_BLOCK 256
SIEVE_SIZE_LIMIT 32kiB
SIEVE_SIZE 193154bits
SIEVE_SPLIT 250
MORE_CLASSES enabled

Runtime options
SievePrimes 25000
SievePrimesAdjust 1
SievePrimesMin 5000
SievePrimesMax 100000
NumStreams 3
CPUStreams 3
GridSize 3
GPU Sieving enabled
GPUSievePrimes 82486
GPUSieveSize 64Mi bits
GPUSieveProcessSize 16Ki bits
Checkpoints enabled
CheckpointDelay 30s
WorkFileAddDelay 600s
Stages enabled
StopAfterFactor bitlevel
PrintMode full
V5UserID (none)
ComputerID (none)
AllowSleep no
TimeStampInResults no

CUDA version info
binary compiled for CUDA 10.0
CUDA runtime version 13697.32
CUDA driver version 8.0
ERROR: current CUDA driver version is lower than the CUDA toolkit version used d
uring compile!
Please update your graphics driver.[/CODE]The message is a bit misleading, since the runtime driver in the same folder is v10.0.

[CODE]>dir
Volume in drive C has no label.
Volume Serial Number is 947C-6AF8

Directory of C:\Users\ken\My Documents\mfaktc-cuda10-test

05/10/2019 03:21 PM <DIR> .
05/10/2019 03:21 PM <DIR> ..
09/17/2015 02:00 AM 19,231 Changelog.txt
09/17/2015 02:00 AM 35,821 COPYING
08/26/2018 06:33 AM 416,256 [B]cudart64_100.dll[/B]
09/30/2018 02:13 PM 1,745,408 mfaktc-win-64.exe
09/17/2015 02:00 AM 9,118 mfaktc.ini
09/17/2015 02:00 AM 13,279 README.txt
6 File(s) 2,239,113 bytes[/CODE]But apparently the driver CUDA level limitation causes something to go wrong.
[CODE]C:\Users\ken\Documents>"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe
"
Fri May 10 15:27:53 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 378.92 Driver Version: 378.92 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro 4000 WDDM | 0000:03:00.0 Off | N/A |
|100% 93C P0 N/A / N/A | 135MiB / 2048MiB | 99% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 1080 WDDM | 0000:04:00.0 Off | N/A |
| 87% 82C P2 118W / 240W | 377MiB / 8192MiB | 100% Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 5436 C ... Documents\mfaktc-q4000\mfaktc-win-64.exe N/A |
| 1 5868 C ...CUDALucas2.06beta-CUDA8.0-Windows-x64.exe N/A |
+-----------------------------------------------------------------------------+[/CODE]Driver v378.92 is only capable of CUDA 8, per its release notes.
I've put together a small compabitility grid at [URL]https://www.mersenneforum.org/showpost.php?p=490615&postcount=4[/URL]

Rodrigo 2019-05-10 22:58

Nice work there with the compatibility grids! :tu:

FWIW, the GTX960 NVIDIA driver on the new Vista installation is 365.19 (x32).


All times are UTC. The time now is 22:55.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.