mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > Msieve

Reply
 
Thread Tools
Old 2015-12-31, 23:12   #12
wombatman
I moo ablest echo power!
 
wombatman's Avatar
 
May 2013

110111010012 Posts
Default

It can be, but MSieve doesn't work with CUDA 6.5.
wombatman is online now   Reply With Quote
Old 2015-12-31, 23:36   #13
ATH
Einyen
 
ATH's Avatar
 
Dec 2003
Denmark

C5716 Posts
Default

Ok, which version should I try then?

I read in the mfaktc thread that it does not work with CUDA 7.0 and 7.5. Are those ok for Msieve?
ATH is offline   Reply With Quote
Old 2015-12-31, 23:43   #14
wombatman
I moo ablest echo power!
 
wombatman's Avatar
 
May 2013

6E916 Posts
Default

I know 5.5 works. I don't think any version after that currently works. I believe I tried 6.0, 6.5, and 7.0RC. It may be worthwhile to try 7.0 (official release) and 7.5 to see if they're ok. I don't fully understand (or remember, frankly) exactly what the problem is, but it will build everything fine. When you run it, however, it immediately throws an error.

Last fiddled with by wombatman on 2015-12-31 at 23:44
wombatman is online now   Reply With Quote
Old 2016-01-01, 01:05   #15
ATH
Einyen
 
ATH's Avatar
 
Dec 2003
Denmark

35×13 Posts
Default

Damn of course CUDA 5.5 does not work with VS2013, so I have to uninstall both CUDA6.5 and VS2013 and install CUDA 5.5 and VS2012 :( VS and CUDA sucks.

Last fiddled with by ATH on 2016-01-01 at 01:05
ATH is offline   Reply With Quote
Old 2016-01-01, 02:55   #16
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

354110 Posts
Default

Yes, the jumping around of versions is very annoying.

I didn't know about MSYS2; it's nice. Configuring GMP has problems that look very much like I saw with Mingw64, but at least this distribution has a precompiled GMP available, and that's good enough.

Msieve builds without issue, GMP-ECM configure fails but I can get it to succeed by running Sysinternals Process Monitor simultaneously, I think because it slows down the configure so the rapid-delete-after-create doesn't happen. Maybe it's the AV software on the machine.

Hopefully this will be enough to replace the b40c library with CUB, so latter-day Nvidia toolkits can work again.
jasonp is offline   Reply With Quote
Old 2016-01-01, 02:59   #17
wombatman
I moo ablest echo power!
 
wombatman's Avatar
 
May 2013

33518 Posts
Default

Sweet!

If you want some testing as you update, I'd be happy to help.
wombatman is online now   Reply With Quote
Old 2016-01-01, 03:20   #18
ATH
Einyen
 
ATH's Avatar
 
Dec 2003
Denmark

35·13 Posts
Default

Quote:
Originally Posted by jasonp View Post
I didn't know about MSYS2; it's nice. Configuring GMP has problems that look very much like I saw with Mingw64, but at least this distribution has a precompiled GMP available, and that's good enough.
It is strange you have such problems compiling GMP and GMP-ECM. I think I saw the issue you have long ago in the original MSYS but MSYS2 has worked for me on like 4 different computers with Windows 7, 8.1 and 10.

Maybe try and stop the antivirus software just while compiling GMP?

Which CUDA and Visual Studio versions are you using to compile Msieve? Do you have time in the next days/week to check if the warnings I posted are ok on the non-gpu msieve versions I compiled?

My CUDA compilation got even further now with CUDA5.5 and VS2012, it managed to build "stage1_core_sm11.ptx", "stage1_core_sm13.ptx" and "stage1_core_sm20.ptx" now. But it still failed eventually:

Code:
gcc -O3 -m64 -mavx -fomit-frame-pointer -march=sandybridge -mtune=sandybridge -D_FILE_OFFSET_BITS=64 -DNDEBUG -D_LARGEFILE64_SOURCE  -Wall -W -DMSIEVE_SVN_VERSION="\"988\"" -I. -Iaprcl -Iinclude -Ignfs -Ignfs/poly -Ignfs/poly/stage1 -I/usr/local/include -I/c/CUDA5.5/include -DHAVE_GMP_ECM -I"/C/CUDA5.5/include" -Ib40c -DHAVE_CUDA demo.c -o msieve  \
                libmsieve.a -lecm "/C/CUDA5.5/lib/win32/cuda.lib" -lz -lgmp -lm -lpthread -L/usr/local/lib
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x45): undefined reference to `cuEventDestroy_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x5a): undefined reference to `cuEventDestroy_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x74): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x86): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x98): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0xaa): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0xd0): undefined reference to `cuStreamDestroy_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0xec): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x148): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x155): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x177): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x199): undefined reference to `cuCtxDestroy_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x4f7): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x508): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x51c): undefined reference to `cuMemAlloc_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x534): undefined reference to `cuMemAlloc_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x687): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x69f): undefined reference to `cuMemAlloc_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x743): undefined reference to `cuCtxCreate_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x769): undefined reference to `cuModuleLoad'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x818): undefined reference to `cuStreamCreate'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x82e): undefined reference to `cuMemAlloc_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x85e): undefined reference to `cuMemsetD8_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x966): undefined reference to `cuMemAlloc_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x981): undefined reference to `cuMemAlloc_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x9e0): undefined reference to `cuMemAlloc_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0xa24): undefined reference to `cuMemAlloc_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0xa38): undefined reference to `cuMemAlloc_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0xa4e): more undefined references to `cuMemAlloc_v2' follow
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0xa83): undefined reference to `cuEventCreate'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0xa9c): undefined reference to `cuEventCreate'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0xb0e): undefined reference to `cuModuleLoad'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0xb7a): undefined reference to `cuModuleLoad'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0xd6a): undefined reference to `cuFuncSetBlockShape'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x1301): undefined reference to `cuMemcpyHtoDAsync_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x1323): undefined reference to `cuMemcpyHtoDAsync_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x158a): undefined reference to `cuEventRecord'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x15bf): undefined reference to `cuMemcpyHtoDAsync_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x15ec): undefined reference to `cuMemsetD8Async'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x1874): undefined reference to `cuFuncSetBlockShape'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x1892): undefined reference to `cuLaunchGridAsync'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x1a1a): undefined reference to `cuLaunchGridAsync'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x1a32): undefined reference to `cuEventRecord'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x1a46): undefined reference to `cuEventSynchronize'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x1a69): undefined reference to `cuEventElapsedTime'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x1aca): undefined reference to `cuMemcpyDtoHAsync_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x1adb): undefined reference to `cuStreamSynchronize'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x1d37): undefined reference to `cuMemsetD8Async'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x2347): undefined reference to `cuMemFree_v2'
libmsieve.a(stage1_sieve_gpu.no):stage1_sieve_gpu.c:(.text+0x236c): undefined reference to `cuMemAlloc_v2'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x22b): undefined reference to `cuInit'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x23b): undefined reference to `cuDeviceGetCount'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x268): undefined reference to `cuDeviceGet'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x287): undefined reference to `cuDeviceGetName'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x2a1): undefined reference to `cuDeviceComputeCapability'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x2b5): undefined reference to `cuDeviceGetProperties'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x31e): undefined reference to `cuDeviceTotalMem_v2'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x339): undefined reference to `cuDeviceGetAttribute'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x354): undefined reference to `cuDeviceGetAttribute'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x36a): undefined reference to `cuDeviceGetAttribute'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x527): undefined reference to `cuModuleGetFunction'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x53d): undefined reference to `cuFuncGetAttribute'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x5dd): undefined reference to `cuParamSetSize'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x6e0): undefined reference to `cuParamSetv'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x720): undefined reference to `cuParamSetv'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x75a): undefined reference to `cuParamSeti'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x79a): undefined reference to `cuParamSeti'
libmsieve.a(cuda_xface.o):cuda_xface.c:(.text+0x7e8): undefined reference to `cuParamSetv'
collect2.exe: error: ld returned 1 exit status
Makefile:266: recipe for target 'all' failed
make: *** [all] Error 1

Last fiddled with by ATH on 2016-01-01 at 03:21
ATH is offline   Reply With Quote
Old 2016-01-01, 03:30   #19
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

3,541 Posts
Default

Is there a 64-bit cuda.lib?
jasonp is offline   Reply With Quote
Old 2016-01-01, 03:32   #20
ATH
Einyen
 
ATH's Avatar
 
Dec 2003
Denmark

35·13 Posts
Default

Yes, there is a "cuda.lib" in the "Cuda5.5\lib\x64" directory.

Edit: Thank you! The CUDA libs was set to win32 in the Makefile:

CUDA_LIBS = "$(CUDA_ROOT)/lib/win32/cuda.lib"

I changed win32 to x64 and now it compiled!!!!!

Last fiddled with by ATH on 2016-01-01 at 03:40
ATH is offline   Reply With Quote
Old 2016-01-01, 05:23   #21
ATH
Einyen
 
ATH's Avatar
 
Dec 2003
Denmark

35×13 Posts
Default

So I got the CUDA version compiled and it works. Trying the polynomial selection it is running with 0% CPU load and 99% GPU load, but during compiling it still had all the same warnings as posted earlier.
ATH is offline   Reply With Quote
Old 2016-01-01, 05:56   #22
wombatman
I moo ablest echo power!
 
wombatman's Avatar
 
May 2013

33518 Posts
Default

With CUDA 5.5, right?
wombatman is online now   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Newer milestone thread Uncwilly Data 3421 2021-07-12 16:10
Help needed - M77 232 917 celebration build jbpace Hardware 19 2018-01-10 16:32
Performance of cuda-ecm on newer hardware? fivemack GMP-ECM 14 2015-02-12 20:10
Newer msieves are slow on Core i7 mklasson Msieve 9 2009-02-18 12:58
Use of large memory pages possible with newer linux kernels Dresdenboy Software 3 2003-12-08 14:47

All times are UTC. The time now is 01:33.


Sat Jul 17 01:33:28 UTC 2021 up 49 days, 23:20, 1 user, load averages: 1.55, 1.39, 1.28

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

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.