![]() |
[QUOTE=VictordeHolland;454658]I think you both mean ARM Cortex A53 (or A57). A58 doesnt exist (yet) ;).
List of ARM Cortex A: [url]http://www.arm.com/products/processors/cortex-a[/url][/QUOTE] A53, that's correct :redface: |
[QUOTE=ewmayer;454652]Hi, Luigi:
Cortex-A58 ... so 128-bit vector instructions OK, but they actually get executed 64-bits at a time? Thanks for the kind offer of help - a remote-access account would be great, but no biggie since the fewer-core dev-boards are cheap. If you could LMK which precise dev-board I should get to get true 128-bit exec capability, that would be helpful. Post a pic of your rig once it's set up![/QUOTE] Yesterday I downloaded the hardware guide and programming manuals for both the A53 and the NEON/NE[sub]10[/sub] system, I will let you know how the A53 (or other processors) performs on 128 bits. IIRC, LaurV is the guru on such processors. As per the remote access, I don't have a public IP right now, but I can request it if needed. |
Hi!
Finally i received my PINE64 device. Looks great!!! [CODE]ubuntu@pine64:~/Solaris/mlucas-14.1$ lscpu Architecture: aarch64 Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 4 CPU max MHz: 1344.0000 CPU min MHz: 480.0000 ubuntu@pine64:~/Solaris/mlucas-14.1$ cat /proc/cpuinfo Processor : AArch64 Processor rev 4 (aarch64) processor : 0 processor : 1 processor : 2 processor : 3 Features : fp asimd aes pmull sha1 sha2 crc32 CPU implementer : 0x41 CPU architecture: AArch64 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4 Hardware : sun50iw1p1 [/CODE]But I can't compile mlucas. [CODE]ubuntu@pine64:~/Solaris/mlucas-14.1$ sudo make make all-am make[1]: Entering directory '/home/ubuntu/Solaris/mlucas-14.1' CC $NORMAL_O $THREADS_O Makefile:2984: recipe for target 'NORMAL_O-THREADS_O.stamp' failed make[1]: *** [NORMAL_O-THREADS_O.stamp] Error 1 make[1]: Leaving directory '/home/ubuntu/Solaris/mlucas-14.1' Makefile:2084: recipe for target 'all' failed make: *** [all] Error 2[/CODE]Is here something special for ARM? Or in generally i can't compile mlucas on arm? |
[QUOTE=Lorenzo;454690]Hi!
Finally i received my PINE64 device. Looks great!!! [CODE]ubuntu@pine64:~/Solaris/mlucas-14.1$ lscpu Architecture: aarch64 Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 4 CPU max MHz: 1344.0000 CPU min MHz: 480.0000 ubuntu@pine64:~/Solaris/mlucas-14.1$ cat /proc/cpuinfo Processor : AArch64 Processor rev 4 (aarch64) processor : 0 processor : 1 processor : 2 processor : 3 Features : fp asimd aes pmull sha1 sha2 crc32 CPU implementer : 0x41 CPU architecture: AArch64 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4 Hardware : sun50iw1p1 [/CODE]But I can't compile mlucas. [CODE]ubuntu@pine64:~/Solaris/mlucas-14.1$ sudo make make all-am make[1]: Entering directory '/home/ubuntu/Solaris/mlucas-14.1' CC $NORMAL_O $THREADS_O Makefile:2984: recipe for target 'NORMAL_O-THREADS_O.stamp' failed make[1]: *** [NORMAL_O-THREADS_O.stamp] Error 1 make[1]: Leaving directory '/home/ubuntu/Solaris/mlucas-14.1' Makefile:2084: recipe for target 'all' failed make: *** [all] Error 2[/CODE]Is here something special for ARM? Or in generally i can't compile mlucas on arm?[/QUOTE] Did you try [code]./configure[/code] before running make? |
Yes. Sure.
[CODE]ubuntu@pine64:~/Solaris/mlucas-14.1$ ubuntu@pine64:~/Solaris/mlucas-14.1$ sudo ./configure 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... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes 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 for style of include used by make... GNU checking dependency style of gcc... none checking for library containing ceil, log, pow, sqrt, sincos, floor, lrint, atan... -lm checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -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 fenv.h usability... yes checking fenv.h presence... yes checking for fenv.h... yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking mach/mach.h usability... no checking mach/mach.h presence... no checking for mach/mach.h... no checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdlib.h... (cached) yes checking for string.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 for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for inline... inline checking for pid_t... yes checking for size_t... yes checking for uint64_t... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible realloc... yes checking for clock_gettime... yes checking for gethrtime... no checking for gettimeofday... yes checking for memset... yes checking for pow... yes checking for sqrt... yes checking for strerror... yes checking for strstr... yes checking for strtoul... yes checking whether _LARGEFILE_SOURCE is declared... no checking build system type... aarch64-unknown-linux-gnu checking host system type... aarch64-unknown-linux-gnu checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands ubuntu@pine64:~/Solaris/mlucas-14.1$ sudo make make all-am make[1]: Entering directory '/home/ubuntu/Solaris/mlucas-14.1' CC $NORMAL_O $THREADS_O Makefile:2984: recipe for target 'NORMAL_O-THREADS_O.stamp' failed make[1]: *** [NORMAL_O-THREADS_O.stamp] Error 1 make[1]: Leaving directory '/home/ubuntu/Solaris/mlucas-14.1' Makefile:2084: recipe for target 'all' failed make: *** [all] Error 2 [/CODE] |
Did you download the .tar from the mlucas main page or the debian package from Vang?
|
[QUOTE=VictordeHolland;454693]Did you download the .tar from the mlucas main page or the debian package from Vang?[/QUOTE]
I have dowloaded from here: [url]http://www.mersenneforum.org/mayer/README.html[/url] |
[QUOTE=Lorenzo;454694]I have dowloaded from here: [url]http://www.mersenneforum.org/mayer/README.html[/url][/QUOTE]
Since you're using the auto-make version (which first appeared in v14), that's the correct one. I've contacted my ARM-build guru - same fellow who put together the auto-make stuff - about your make failure, will let you know as soon as we get a clue. I do know we needed to fiddle the platform.h file for some ARM systems, but that appears unrelated to your issue. If you do end up needing a not-yet-released version of said .h file, I'll post it here. |
David Willmore - another ARM user who I cc'ed on my mail to Alex Vong - says:
[i] Have him start over and this time don't build as root. Then we might get a better idea.[/i] I suggest you try that and post the output here. Assuming that also fails, you can try a manual-build; cd to the src dir of the install where all the .h and .c files reside, 'mkdir MY_OBJ' and cd into that dir, then first try just a single-file compile: gcc -c -Os -m64 -DUSE_THREADS ../Mlucas.c If that succeeds, try all the sourcefiles, here with output piped to a logfile: gcc -c -Os -m64 -DUSE_THREADS ../*.c >& build.log You can 'grep -i error build.log' to check for compile errors - if there are any, post the logfile here. If no compile errors, try linking: gcc -o Mlucas *.o -lm -lpthread -lrt |
1 Attachment(s)
I've tried first part of manual instruction but without success.
[CODE]ubuntu@pine64:~/Solaris/mlucas-14.1/src/MY_OBJ$ gcc -c -Os -m64 -DUSE_THREADS ../Mlucas.c gcc: error: unrecognized command line option ‘-m64’ ubuntu@pine64:~/Solaris/mlucas-14.1/src/MY_OBJ$ gcc -c -Os -DUSE_THREADS ../Mlucas.c In file included from ../types.h:30:0, from ../align.h:29, from ../Mlucas.h:29, from ../Mlucas.c:26: ../platform.h:1072:4: error: #error Multithreading currently only supported for Linux/GCC builds! #error Multithreading currently only supported for Linux/GCC builds! ^ ../Mlucas.c: In function ‘ernstMain’: ../Mlucas.c:1170:88: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] "WARN: Mlucas.c: a[] = 0x%08X not aligned on 128-byte boundary!\n", (uint32)a); ^ ../Mlucas.c:459:3: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result] fgets(in_line, STR_MAX_LEN, fp); ^ [/CODE] So looks like -m64 option don't allow here. I did a list of allowed options (please have a look at attached file). |
[QUOTE=Lorenzo;454734]I've tried first part of manual instruction but without success.
[CODE]ubuntu@pine64:~/Solaris/mlucas-14.1/src/MY_OBJ$ gcc -c -Os -m64 -DUSE_THREADS ../Mlucas.c gcc: error: unrecognized command line option ‘-m64’ ubuntu@pine64:~/Solaris/mlucas-14.1/src/MY_OBJ$ gcc -c -Os -DUSE_THREADS ../Mlucas.c In file included from ../types.h:30:0, from ../align.h:29, from ../Mlucas.h:29, from ../Mlucas.c:26: ../platform.h:1072:4: error: #error Multithreading currently only supported for Linux/GCC builds! #error Multithreading currently only supported for Linux/GCC builds! ^ ../Mlucas.c: In function ‘ernstMain’: ../Mlucas.c:1170:88: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] "WARN: Mlucas.c: a[] = 0x%08X not aligned on 128-byte boundary!\n", (uint32)a); ^ ../Mlucas.c:459:3: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result] fgets(in_line, STR_MAX_LEN, fp); ^ [/CODE] So looks like -m64 option don't allow here. I did a list of allowed options (please have a look at attached file).[/QUOTE] try [code] uname -a[/code] Raspberry PI 3 has a 64-bit enabled CPU, but works with 32-bit raspbian and ARMv7 subsystem. I'm mostly sure Pine64 comes configured with a 64-bit OS, but that would clear every doubt about it :smile: Also check the march= and mtune= values. And mcpu=native |
| All times are UTC. The time now is 04:24. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.