mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   GMP-ECM (https://www.mersenneforum.org/forumdisplay.php?f=55)
-   -   ECM for CUDA GPUs in latest GMP-ECM ? (https://www.mersenneforum.org/showthread.php?t=16480)

chris2be8 2020-08-09 16:28

Hello,

Consecutive sigmas should not be a problem. I've been running ECM-GPU on my GPUs for several years and it seems to make no difference.

The only thing I can think of is to check the ranges don't overlap (eg if colab always seeds the RNG with the same values).

If it's not that then just put down to fate. I've had enough lucky hits and unlucky misses to balance out over the long run.

Chris

EdH 2020-09-27 19:47

GMP-ECM Won't Compile for my System - edit: Card is arch 2.0
 
[B]Edit: [/B]I'm leaving this post up in case someone else has this issue, but adding a note that the card I have is apparently rather old and is only arch 2.0. Therefore, I have given up attempting to make it useful.

[strike]GMP-ECM compiles fine without GPU. But, with "--enable-gpu" I get a "memcpy" error:[/strike]
[code]
. . .
ptxas info : Function properties for _Z15Cuda_Ell_DblAddPA32_VjS1_S1_S1_j
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 32 registers, 12288 bytes smem, 356 bytes cmem[0]
ptxas info : Compiling entry function '_Z16Cuda_Init_Devicev' for 'sm_50'
ptxas info : Function properties for _Z16Cuda_Init_Devicev
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 2 registers, 320 bytes cmem[0]
ptxas info : 384 bytes gmem, 4 bytes cmem[3]
ptxas info : Compiling entry function '_Z15Cuda_Ell_DblAddPA32_VjS1_S1_S1_j' for 'sm_52'
ptxas info : Function properties for _Z15Cuda_Ell_DblAddPA32_VjS1_S1_S1_j
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 32 registers, 12288 bytes smem, 356 bytes cmem[0]
ptxas info : Compiling entry function '_Z16Cuda_Init_Devicev' for 'sm_52'
ptxas info : Function properties for _Z16Cuda_Init_Devicev
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 2 registers, 320 bytes cmem[0]
ptxas info : 384 bytes gmem, 4 bytes cmem[3]
ptxas info : Compiling entry function '_Z15Cuda_Ell_DblAddPA32_VjS1_S1_S1_j' for 'sm_53'
ptxas info : Function properties for _Z15Cuda_Ell_DblAddPA32_VjS1_S1_S1_j
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 32 registers, 12288 bytes smem, 356 bytes cmem[0]
ptxas info : Compiling entry function '_Z16Cuda_Init_Devicev' for 'sm_53'
ptxas info : Function properties for _Z16Cuda_Init_Devicev
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 2 registers, 320 bytes cmem[0]
[B]/usr/include/string.h:[/B] In function [B]'void* __mempcpy_inline(void*, const void*, size_t)'[/B]:
[B]/usr/include/string.h:652:42: [COLOR=Red]error: '[/COLOR]memcpy'[/B] was not declared in this scope
return (char *) memcpy (__dest, __src, __n) + __n;
[COLOR=Lime]^[/COLOR]
Makefile:2558: recipe for target 'cudakernel.lo' failed
make[2]: *** [cudakernel.lo] Error 1
make[2]: Leaving directory '/home/math99/Math/ecmgpu'
Makefile:1897: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/math99/Math/ecmgpu'
Makefile:777: recipe for target 'all' failed
make: *** [all] Error 2
[/code]Here's the "./configure" output, in case that is of help:
[code]
$ ./configure --enable-gpu --with-gmp=/usr/local/
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for CC and CFLAGS in gmp.h... yes CC=gcc CFLAGS=-O2 -pedantic -fomit-frame-pointer -m64 -mtune=sandybridge -march=sandybridge
checking whether CC=gcc and CFLAGS=-O2 -pedantic -fomit-frame-pointer -m64 -mtune=sandybridge -march=sandybridge works... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... none needed
checking dependency style of gcc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for int64_t... yes
checking for uint64_t... yes
checking for unsigned long long int... yes
checking for long long int... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking whether time.h and sys/time.h may both be included... yes
checking for size_t... yes
checking if assembly code is ELF... yes
checking for suitable m4... m4
checking how to switch to text section... .text
checking how to export a symbol... .globl
checking what assembly label suffix to use... :
checking if globals are prefixed by underscore... no
checking how to switch to text section... (cached) .text
checking how to export a symbol... (cached) .globl
checking for assembler .type directive... .type $1,@$2
checking for working alloca.h... yes
checking for alloca... yes
checking for ANSI C header files... (cached) yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking for strings.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking io.h usability... no
checking io.h presence... no
checking for io.h... no
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for windows.h... no
checking for psapi.h... no
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking for sys/types.h... (cached) yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking aio.h usability... yes
checking aio.h presence... yes
checking for aio.h... yes
checking for working strtod... yes
checking for pow in -lm... yes
checking for floor in -lm... yes
checking for sqrt in -lm... yes
checking for fmod in -lm... yes
checking for cos in -lm... yes
checking for aio_read in -lrt... yes
checking for GetProcessMemoryInfo in -lpsapi... no
checking for isascii... yes
checking for memset... yes
checking for strchr... yes
checking for strlen... yes
checking for strncasecmp... yes
checking for strstr... yes
checking for access... yes
checking for unlink... yes
checking for isspace... yes
checking for isdigit... yes
checking for isxdigit... yes
checking for time... yes
checking for ctime... yes
checking for gethostname... yes
checking for gettimeofday... yes
checking for getrusage... yes
checking for memmove... yes
checking for signal... yes
checking for fcntl... yes
checking for fileno... yes
checking for setvbuf... yes
checking for fallocate... yes
checking for aio_read... yes
checking for aio_init... yes
checking for _fseeki64... no
checking for _ftelli64... no
checking for malloc_usable_size... yes
checking gmp.h usability... yes
checking gmp.h presence... yes
checking for gmp.h... yes
checking for recent GMP... yes
checking if GMP is MPIR... no
checking whether we can link against GMP... yes
checking if gmp.h version and libgmp version are the same... (6.2.0/6.2.0) yes
checking for __gmpn_add_nc... yes
checking for __gmpn_mod_34lsub1... yes
checking for __gmpn_redc_1... yes
checking for __gmpn_redc_2... yes
checking for __gmpn_mullo_n... yes
checking for __gmpn_redc_n... yes
checking for __gmpn_preinv_mod_1... yes
checking for __gmpn_mod_1s_4p_cps... yes
checking for __gmpn_mod_1s_4p... yes
checking for __gmpn_mul_fft... yes
checking for __gmpn_fft_next_size... yes
checking for __gmpn_fft_best_k... yes
checking for __gmpn_mulmod_bnm1... yes
checking for __gmpn_mulmod_bnm1_next_size... yes
checking whether assembler supports --noexecstack option... yes
checking whether compiler knows __attribute__((hot))... yes
checking for xsltproc... no
checking whether self tests are run under valgrind... no
checking cuda.h usability... yes
checking cuda.h presence... yes
checking for cuda.h... yes
checking that CUDA Toolkit version is at least 3.0... (7.5) yes
checking for cuInit in -lcuda... yes
checking that CUDA Toolkit version and runtime version are the same... (7.5/7.5) yes
checking for nvcc... /usr/bin/nvcc
checking for compatibility between gcc and nvcc... yes
checking that nvcc know compute capability 20... yes
checking that nvcc know compute capability 21... yes
checking that nvcc know compute capability 30... yes
checking that nvcc know compute capability 32... yes
checking that nvcc know compute capability 35... yes
checking that nvcc know compute capability 37... yes
checking that nvcc know compute capability 50... yes
checking that nvcc know compute capability 52... yes
checking that nvcc know compute capability 53... yes
checking that nvcc know compute capability 60... no
checking that nvcc know compute capability 61... no
checking that nvcc know compute capability 62... no
checking that nvcc know compute capability 70... no
checking that nvcc know compute capability 72... no
checking that nvcc know compute capability 75... no
checking if nvcc know ptx instruction madc... yes
creating config.m4
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating athlon/Makefile
config.status: creating pentium4/Makefile
config.status: creating x86_64/Makefile
config.status: creating powerpc64/Makefile
config.status: creating aprtcle/Makefile
config.status: creating build.vc12/Makefile
config.status: creating build.vc12/assembler/Makefile
config.status: creating build.vc12/ecm/Makefile
config.status: creating build.vc12/ecm_gpu/Makefile
config.status: creating build.vc12/libecm/Makefile
config.status: creating build.vc12/libecm_gpu/Makefile
config.status: creating build.vc12/tune/Makefile
config.status: creating build.vc12/bench_mulredc/Makefile
config.status: creating config.h
config.status: creating ecm.h
config.status: ecm.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
configure: Configuration:
configure: Build for host type x86_64-pc-linux-gnu
configure: CC=gcc, CFLAGS=-W -Wall -Wundef -O2 -pedantic -fomit-frame-pointer -m64 -mtune=sandybridge -march=sandybridge -DWITH_GPU -DECM_GPU_CURVES_BY_BLOCK=16
configure: Linking GMP with /usr/local//lib/libgmp.a
configure: Using asm redc code from directory x86_64
configure: Not using SSE2 instructions in NTT code
configure: Using APRCL to prove factors prime/composite
configure: Assertions enabled
configure: Shell command execution disabled
configure: OpenMP disabled
configure: Memory debugging disabled
[/code][strike]Any assistance would be appreciated.[/strike]
Edit: Assistance no longer requested.

storm5510 2020-10-10 15:32

I have two different variations of [I]GMP-ECM[/I]. Below are the titles each displays when they are fist started:

[QUOTE]GMP-ECM 7.0.4-dev [configured with MPIR 2.7.2, --enable-gpu, --enable-openmp] [ECM]

GMP-ECM 7.0.5-dev [configured with GMP 6.1.2, --enable-asm-redc] [ECM][/QUOTE] The compiled binaries are vastly different in size. The top is 761K bytes. The bottom is 4,396K bytes. I have two machines with the same OS, Windows 7 Pro. One is an i5 and the other is a Xeon. The top runs on both. The bottom will not run on the Xeon. Both will run on my i7 with Windows 10 Pro. I stick with the one which runs on everything.

The GPU functions in the top, I do not bother with. Only going to 2^1014 would not help anything that may go beyond.

It appears that development on [I]GMP-ECM[/I] has stalled. If this is true, then it is very sad.

:two cents:

kruoli 2020-10-13 09:36

[QUOTE=storm5510;559439]It appears that development on [I]GMP-ECM[/I] has stalled. If this is true, then it is very sad.[/QUOTE]

There were seven commits in the last month: [URL="http://gforge.inria.fr/activity/?group_id=135"]http://gforge.inria.fr/activity/?group_id=135[/URL].

kriesel 2020-10-13 15:16

[QUOTE=kruoli;559727]There were seven commits in the last month: [URL]http://gforge.inria.fr/activity/?group_id=135[/URL].[/QUOTE]
At a glance, those appear to me to be maintenance, not development.

mathwiz 2020-10-13 19:27

[QUOTE=kriesel;559752]At a glance, those appear to me to be maintenance, not development.[/QUOTE]

It would be great to get an official comment from the primary developers about what future development, if any, is planned.

SethTro 2020-10-14 00:48

the repository was moved to [url]https://gitlab.inria.fr/zimmerma/ecm[/url]

as gforge.inria.fr is being deprecated.

I believe it is still being actively developed

storm5510 2020-10-14 14:21

I assume if anything major comes along, it will be posted here? :question:

Stargate38 2020-12-25 01:15

I want to run GPU-ECM on Windows, but I haven't found any precompiled binaries. Anyone willing to give me compiling instructions for Windows, preferably using the Linux subsystem, or know where I can find existing binaries? I don't have Visual Studio (not even the Community edition, as I don't want a MS account connected to my PC, mostly for privacy reasons).

VBCurtis 2020-12-25 02:09

It's built-in to any copy of GMP-ECM 7. Check the "news" file within an ECM download.
Do you mean there are no binaries available for GMP-ECM 7.0.1 or newer?

Stargate38 2020-12-26 21:39

Oops. I didn't pay any attention to that. I guess I should RTM before asking any questions.


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

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