mersenneforum.org  

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

Reply
 
Thread Tools
Old 2021-01-21, 16:50   #1
snijele
 
Jan 2021
Osijek, Croatia

2 Posts
Default Prime95 FFT log meaning

Hi,

I am trying to figure out meaning behind some logged parameters behind Prime95 logs while doing LL test. Concrete log line is:

Code:
Resuming primality test of M63351487 using FMA3 FFT length 3360K, Pass1=448, Pass2=7680, clm=4, 6 threads
M63351487 is obviously number under test
FMA3 is a CPU instruction set emloyed
FFT is Fast Fourier Transform algorithm

1. What is meaning behind Pass1, Pass2 and clm?
2. What is meaning of FFT length? My understanding of FFT is basic.
snijele is offline   Reply With Quote
Old 2021-01-21, 18:49   #2
Uncwilly
6809 > 6502
 
Uncwilly's Avatar
 
"""""""""""""""""""
Aug 2003
101×103 Posts

3·55 Posts
Default

The FFT length is the size of the FFT that is used. If an FFT is done that is too close to the size of the number that needs to be tested, then the 'noise' at the end of the calculation can cause problems. But, if one uses an FFT that is too large, then the data take too many cycles to complete. For any given exponent, software, and hardware there will be an ideal FFT size.
Uncwilly is online now   Reply With Quote
Old 2021-01-21, 23:03   #3
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

3·11·223 Posts
Default

Quote:
Originally Posted by snijele View Post
1. What is meaning behind Pass1, Pass2 and clm?
2. What is meaning of FFT length? My understanding of FFT is basic.

Welcome to GIMPS!

It is not expected that these values would be meaningful to you. These values let me identify exactly which assembly code is being executed. The FFT is split into two "passes". This is not a requirement of FFTs in general, but for best performance one usually wants to load as much FFT data into the L2 or L3 cache and do as much work as possible, then write it back to memory.

Internally, a number of different pass sizes are available which means there are several different ways to implement an FFT size. For example, a 1M FFT could be 512x2K or 1Kx1K or 2Kx512, etc.

In 25 years, I don't think anyone has asked what clm is. clm is a prime95-internals-only abbreviation for cache-line-multiplier. The assembly code can process 1, 2, or 4 cache lines at a time, which sometimes results in a few percent speed difference on various CPU architectures.
Prime95 is offline   Reply With Quote
Old 2021-01-22, 07:09   #4
LaurV
Romulan Interpreter
 
LaurV's Avatar
 
Jun 2011
Thailand

52×7×53 Posts
Default

Thanks for explanation George. I was wondering sometimes too, but never dared to ask... Now you gave enough material to kriesel to write another of his interminable tutorials
LaurV is offline   Reply With Quote
Old 2021-01-22, 14:22   #5
henryzz
Just call me Henry
 
henryzz's Avatar
 
"David"
Sep 2007
Cambridge (GMT/BST)

2×41×71 Posts
Default

Quote:
Originally Posted by Prime95 View Post
Welcome to GIMPS!

It is not expected that these values would be meaningful to you. These values let me identify exactly which assembly code is being executed. The FFT is split into two "passes". This is not a requirement of FFTs in general, but for best performance one usually wants to load as much FFT data into the L2 or L3 cache and do as much work as possible, then write it back to memory.

Internally, a number of different pass sizes are available which means there are several different ways to implement an FFT size. For example, a 1M FFT could be 512x2K or 1Kx1K or 2Kx512, etc.

In 25 years, I don't think anyone has asked what clm is. clm is a prime95-internals-only abbreviation for cache-line-multiplier. The assembly code can process 1, 2, or 4 cache lines at a time, which sometimes results in a few percent speed difference on various CPU architectures.
I was under the impression that clm stood for something related to propagating carries. Is carry propagation always handled the same by GWNUM? I was under the impression that it can be relaxed if you are not near an FFT boundary.
henryzz is offline   Reply With Quote
Old 2021-01-22, 15:42   #6
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

3·11·223 Posts
Default

Carry propagation is handled the same way for all FFT implementations.
Prime95 is offline   Reply With Quote
Old 2021-01-25, 14:03   #7
snijele
 
Jan 2021
Osijek, Croatia

2 Posts
Default

Quote:
Originally Posted by Uncwilly View Post
The FFT length is the size of the FFT that is used. If an FFT is done that is too close to the size of the number that needs to be tested, then the 'noise' at the end of the calculation can cause problems. But, if one uses an FFT that is too large, then the data take too many cycles to complete. For any given exponent, software, and hardware there will be an ideal FFT size.
Thanks! Guess I need to take a deep dive into FFT to figure it out more.

Quote:
Originally Posted by Prime95 View Post
Welcome to GIMPS!

It is not expected that these values would be meaningful to you. These values let me identify exactly which assembly code is being executed. The FFT is split into two "passes". This is not a requirement of FFTs in general, but for best performance one usually wants to load as much FFT data into the L2 or L3 cache and do as much work as possible, then write it back to memory.

Internally, a number of different pass sizes are available which means there are several different ways to implement an FFT size. For example, a 1M FFT could be 512x2K or 1Kx1K or 2Kx512, etc.

In 25 years, I don't think anyone has asked what clm is. clm is a prime95-internals-only abbreviation for cache-line-multiplier. The assembly code can process 1, 2, or 4 cache lines at a time, which sometimes results in a few percent speed difference on various CPU architectures.
Thanks for welcome and explanation. At the moment I am trying to figure out FFT algorithm, so logical step was to try to understand what Prime95 does and how it does it, since I am software engineer, so looking at source code might bring clarity faster than math equations. :)

I have checked the source code a bit, but with all optimizations and assembly code it is a bit overwhelming to be honest. I'll deep dive into forum and literature for time being, and ask further questions on FFT details in appropriate subforum.

Cheers!
snijele is offline   Reply With Quote
Old 2021-01-27, 13:42   #8
henryzz
Just call me Henry
 
henryzz's Avatar
 
"David"
Sep 2007
Cambridge (GMT/BST)

2·41·71 Posts
Default

Quote:
Originally Posted by snijele View Post
Thanks! Guess I need to take a deep dive into FFT to figure it out more.



Thanks for welcome and explanation. At the moment I am trying to figure out FFT algorithm, so logical step was to try to understand what Prime95 does and how it does it, since I am software engineer, so looking at source code might bring clarity faster than math equations. :)

I have checked the source code a bit, but with all optimizations and assembly code it is a bit overwhelming to be honest. I'll deep dive into forum and literature for time being, and ask further questions on FFT details in appropriate subforum.

Cheers!
You might find https://mersenneforum.org/showthread.php?t=120 useful. I would imagine youtube might be a good place to look as well.
henryzz is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
meaning of regular flashes of hot lead wildrabbitt Hardware 8 2015-06-22 10:29
Summary statistics meaning Unregistered Information & Answers 2 2013-05-19 10:31
meaning of earth and globe science_man_88 Lounge 0 2010-10-22 19:48
Meaning and format of Phi, GF roger Miscellaneous Math 9 2007-01-21 06:33
what's the meaning of the numbers in the FACTORS.CMP wreck Software 2 2006-08-30 04:46

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

Sun Mar 7 00:33:11 UTC 2021 up 93 days, 20:44, 0 users, load averages: 0.87, 1.36, 1.58

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.