mersenneforum.org  

Go Back   mersenneforum.org > Great Internet Mersenne Prime Search > Hardware

Reply
 
Thread Tools
Old 2018-12-01, 02:28   #1
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

1D7716 Posts
Default Skylake X linux test please

Can someone with a Skylake X CPU please run a quick test. You'll need linux and gcc installed.

See https://www.mersenneforum.org/showpo...0&postcount=29
Prime95 is offline   Reply With Quote
Old 2018-12-01, 05:59   #2
GP2
 
GP2's Avatar
 
Sep 2003

5·11·47 Posts
Default

For Ernst's main.c from the linked post, I compiled with gcc -O3 -march=skylake-avx512 main.c using gcc --version = gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)

Running a.out gives no output.

This is on an AWS machine, Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz

I don't know if "Skylake X" is different from some other kind of Skylake???
GP2 is offline   Reply With Quote
Old 2018-12-01, 06:28   #3
ATH
Einyen
 
ATH's Avatar
 
Dec 2003
Denmark

2·1,579 Posts
Default

You need to run:
time ./a.out

I did on a c5d.large in the other thread:

Quote:
On a EC2 c5d.large (1 core / 2vCPU Xeon 8124M 3.00 Ghz, gcc 7.2):

real 0m0.675s
user 0m0.668s
sys 0m0.000s

Let us know if you need testing on more cores?
ATH is offline   Reply With Quote
Old 2018-12-01, 06:46   #4
GP2
 
GP2's Avatar
 
Sep 2003

50318 Posts
Default

On a one-core (2 vCPU) c5d.large on AWS I got:

Code:
real    0m0.765s
user    0m0.765s
sys     0m0.000s
On a two-core (4 vCPU) c5d.xlarge on AWS I got:

Code:
real    0m0.707s
user    0m0.707s
sys     0m0.000s
and on a one-core n1-highcpu-2 on Google Compute Engine with gcc 8.2.0 I got:

Code:
real    0m0.961s
user    0m0.957s
sys     0m0.004s
On the latter, /proc/cpuinfo just gives generic "Intel(R) Xeon(R) CPU @ 2.00GHz"

There is a discrepancy with ATH's timing on the identical c5d.large instance. I did pause mprime while I ran the test. Perhaps different compiler versions, or different kernels with Spectre fixes that slow down execution? I am using the latest version of Amazon Linux 2.

Perhaps the likeliest explanation is simply the shared tenancy with other AWS users on the same physical hardware. I have some instances running mprime about 10% faster than others on the same instance type, it's the luck of the draw.

Last fiddled with by GP2 on 2018-12-01 at 07:07
GP2 is offline   Reply With Quote
Old 2018-12-01, 07:00   #5
ewmayer
2ω=0
 
ewmayer's Avatar
 
Sep 2002
República de California

101101011111112 Posts
Default

Quote:
Originally Posted by GP2 View Post
For Ernst's main.c from the linked post, I compiled with gcc -O3 -march=skylake-avx512 main.c using gcc --version = gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)

Running a.out gives no output.
Note, no output means 'error free' in this case - I probably should've added a 'success!' printf in that case, but just FYI.

Presumably George is hoping to find some hw/sw configuration which fails the test due to the same issue he encountered.
ewmayer is offline   Reply With Quote
Old 2018-12-01, 09:21   #6
fivemack
(loop (#_fork))
 
fivemack's Avatar
 
Feb 2006
Cambridge, England

23·11·73 Posts
Default

model name : Intel(R) Core(TM) i9-7940X CPU @ 3.10GHz
pineapple@pineapple:/tmp$ time ./a.out

real 0m0.755s
user 0m0.755s
sys 0m0.000s

model name : Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz
oak@oak:~$ time ./mayer-test

real 0m0.879s
user 0m0.876s
sys 0m0.004s
fivemack is offline   Reply With Quote
Old 2018-12-01, 16:39   #7
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

19×397 Posts
Default

Quote:
Originally Posted by fivemack View Post
model name : Intel(R) Core(TM) i9-7940X CPU @ 3.10GHz
pineapple@pineapple:/tmp$ time ./a.out

real 0m0.755s
user 0m0.755s
sys 0m0.000s
That's the one closest to my Skylake-X. Now we'll have to wait several days to see if my Skylake-X works.
Prime95 is offline   Reply With Quote
Old 2018-12-01, 19:44   #8
ewmayer
2ω=0
 
ewmayer's Avatar
 
Sep 2002
República de California

19·613 Posts
Default

Quote:
Originally Posted by Prime95 View Post
That's the one closest to my Skylake-X. Now we'll have to wait several days to see if my Skylake-X works.
Well, assuming it's not a hardware issue, where would you look next? You posted the following over in the original Skylake-X swizzle thread:

Quote:
Originally Posted by Prime95 View Post
The problematic "vpmovzxbq zmm31, xmm0" code is 62h, 62h, 7dh, 48h, 32h, 0f8h
The Intel manual says vpmovzxbq maps to the following opcode:

EVEX.256.66.0F38.WIG 32 /r

You have more experience with this low-level opcode-parsing than I - can you discern from the numbers you posted whether your assembler is producing the low-4-bytes-of-input-xmm-to-low-4-doubles-of-output-ymm half-width version of the instruction?
ewmayer is offline   Reply With Quote
Old 2018-12-02, 00:31   #9
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

19·397 Posts
Default

Quote:
Originally Posted by ewmayer View Post
The Intel manual says vpmovzxbq maps to the following opcode:

EVEX.256.66.0F38.WIG 32 /r

You have more experience with this low-level opcode-parsing than I
Actually, we have the same level of experience -- none. I have not tried to figure out what "EVEX.256.66.0F38.WIG 32" means. I got the "62h, 62h, 7dh, 48h, 32h, 0f8h" bytes frome the defuse.ca web site, which uses the GNU tool chain.
Prime95 is offline   Reply With Quote
Old 2018-12-02, 02:16   #10
ewmayer
2ω=0
 
ewmayer's Avatar
 
Sep 2002
República de California

19×613 Posts
Default

Quote:
Originally Posted by Prime95 View Post
Actually, we have the same level of experience -- none. I have not tried to figure out what "EVEX.256.66.0F38.WIG 32" means. I got the "62h, 62h, 7dh, 48h, 32h, 0f8h" bytes frome the defuse.ca web site, which uses the GNU tool chain.
What input format does that tool need? I have .s and .o files from compilation of the little test code I posted, perhaps seeing what the assembly for that code's vpmovzxbq instruction can be compared versus yours above. Here are gzipped .s and .o from my code, in case that might be of help:
Attached Files
File Type: gz main.o.gz (1.8 KB, 60 views)
File Type: gz main.s.gz (2.2 KB, 51 views)
ewmayer is offline   Reply With Quote
Old 2018-12-04, 15:17   #11
ldesnogu
 
ldesnogu's Avatar
 
Jan 2008
France

10001001102 Posts
Default

I tried with two different disassemblers, the one from GNU and the one that comes with LLVM. I don't know if it's of any help...


Code:
$ llvm-objdump-3.8 -d main.o  | grep vpmov
     337:    62 62 7d 48 32 f0     vpmovzxbq    %xmm0, %zmm30
     33d:    62 62 7d 48 32 f9     vpmovzxbq    %xmm1, %zmm31
$ objdump -d main.o  | grep vpmov
 337:    62 62 7d 48 32 f0        vpmovzxbq %xmm0,%zmm30
 33d:    62 62 7d 48 32 f9        vpmovzxbq %xmm1,%zmm31
ldesnogu is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Skylake vs Kabylake ET_ Hardware 17 2017-05-24 16:19
Skylake's power management under Linux is dreadful and you shouldn't buy one until it's fixed Dubslow Hardware 8 2016-04-15 09:14
Skylake and RAM scaling mackerel Hardware 34 2016-03-03 19:14
Skylake AVX-512 clarke Software 15 2015-03-04 21:48
blend / small FFT torture test on linux ? lukasz Linux 1 2007-01-09 16:16

All times are UTC. The time now is 23:26.


Fri Aug 6 23:26:57 UTC 2021 up 14 days, 17:55, 1 user, load averages: 3.71, 4.01, 4.03

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.