mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > Msieve

Reply
 
Thread Tools
Old 2009-10-12, 19:10   #23
mdettweiler
A Sunny Moo
 
mdettweiler's Avatar
 
Aug 2007
USA (GMT-5)

141518 Posts
Default

Just out of curiosity, can the GPU version of msieve do everything that the CPU version can? I see a lot in this thread about polynomial selection, but nothing for QS, NFS postprocessing, etc. If it can do those, how do those compare speed-wise with the CPU version? (All of my systems have integrated graphics, otherwise I'd just check this myself. )

Also, does the GPU application do *everything* on the GPU, or are there still some tasks that are done on the CPU? I'm having a hard time figuring out from some comments here where stage 2 of NFS poly selection is done.

Thanks.
mdettweiler is offline   Reply With Quote
Old 2009-10-12, 19:10   #24
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

1101110101012 Posts
Default

The overhead from launching kernels should be very minor; doing so takes microseconds, whereas each kernel runs for a good-size fraction of a second.

mdettweiler: The GPU binary can do everything that the ordinary binary can (except degree 4 poly selection). Stage 2 still takes place on the CPU; stage 1 has very regular data access patterns that make it easy to map to a GPU, and this is the only code that runs on a GPU currently.

Boy, forum posts are a poor substitute for multi-way chat :)

Last fiddled with by jasonp on 2009-10-12 at 19:18
jasonp is offline   Reply With Quote
Old 2009-10-12, 19:21   #25
henryzz
Just call me Henry
 
henryzz's Avatar
 
"David"
Sep 2007
Cambridge (GMT/BST)

23×3×5×72 Posts
Default

Quote:
Originally Posted by jasonp View Post
The overhead from launching kernels should be very minor; doing so takes microseconds, whereas each kernel runs for a good-size fraction of a second.

mdettweiler: The GPU binary can do everything that the ordinary binary can (except degree 4 poly selection). Stage 2 still takes place on the CPU; stage 1 has very regular data access patterns that make it easy to map to a GPU, and this is the only code that runs on a GPU currently.

Boy, forum posts are a poor substitute for multi-way chat :)
what might make things simpler would be running the stage 1 and stage 2 separately like ggnfs does
it would be nice to test things like the gpu version plus the ggnfs second stage
are both of your stages better/faster than ggnfs's?

Last fiddled with by henryzz on 2009-10-12 at 19:23
henryzz is offline   Reply With Quote
Old 2009-10-12, 19:28   #26
xilman
Bamboozled!
 
xilman's Avatar
 
"π’‰Ίπ’ŒŒπ’‡·π’†·π’€­"
May 2003
Down not across

1075310 Posts
Default

Quote:
Originally Posted by jrk View Post
You need the stage1_core.ptx file in your msieve directory. If you are on Linux you'll need to compile this file per frmky's instructions in the second post here.
Got it. It now works for the C160 posted earlier in the thread!

Now that it's functional I'll be able to start development in earnest.

Thanks for your help.


Paul
xilman is offline   Reply With Quote
Old 2009-10-12, 19:35   #27
henryzz
Just call me Henry
 
henryzz's Avatar
 
"David"
Sep 2007
Cambridge (GMT/BST)

23·3·5·72 Posts
Default

10 people viewing this thread currently including 3 supermods and 3 mods
how often does that happen?
henryzz is offline   Reply With Quote
Old 2009-10-12, 19:38   #28
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

3,541 Posts
Default

Paul: Good to hear.

Henry, I don't know how even the GPU version of stage 1 compares to pol5 (the algorithm used in pol51m0b would be very difficult to port to a GPU). Stage 2 is much more powerful on msieve; pol51opt really cannot produce a polynomial with a skew larger than 1 million, whereas msieve's stage 2 can easily handle 100x that much.

I thought about separating and batching stage 1 and stage 2, and they're well-separated in the source tree, but doing stage 2 immediately once stage 1 finds a hit relieves the user of balancing the load between the two stages. I'm not convinced it's better this way, though.

Also, you mention graphics cards nowadays and everyone's ears perk up :)

Last fiddled with by jasonp on 2009-10-12 at 19:38
jasonp is offline   Reply With Quote
Old 2009-10-12, 20:32   #29
jrk
 
jrk's Avatar
 
May 2008

3·5·73 Posts
Default

What has happened when msieve prints "crap"?
jrk is offline   Reply With Quote
Old 2009-10-12, 20:57   #30
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

3,541 Posts
Default

If the rational polynomial is P * x - M, the code works by choosing P and then determining M so that the rational polynomial satisfies a specific modular condition. If the resulting M is close enough to a reference number M0, then the algebraic polynomial has a smaller coefficients than usual, and is forwarded to stage 2 for optimization. There's a check on P and M before that happens, and sometimes that check fails. Whether that's because P and M are bad, or the check is erroneous, I don't know yet. There are other internal checks on P and they currently pass.
jasonp is offline   Reply With Quote
Old 2009-10-12, 21:19   #31
ltd
 
ltd's Avatar
 
Apr 2003

22·193 Posts
Default

Just wanted to confirm that with the latest release the CPU is idle during stage 1 for me also.
ltd is offline   Reply With Quote
Old 2009-10-13, 04:40   #32
Batalov
 
Batalov's Avatar
 
"Serge"
Mar 2008
Phi(4,2^7658614+1)/2

36·13 Posts
Thumbs up

Quote:
Originally Posted by ltd View Post
Just wanted to confirm that with the latest release the CPU is idle during stage 1 for me also.
Tru dat.

I happened to have the old binary (because I was waiting for something to finish before a mandatory reboot after installing the 2.3 drivers). Then I rebooted, installed the toolkit and tried the yesterday's version. Arrgh. Huge kernel activity (red in monitor, if you set it to visible).

Then, the new version (10/12 2:52pm). Great! No kernel activity (almost).
The graphics is quite sluggish, so the card must be doing somethin'.

My card is an ancient 8600 GT, but I couldn't resist trying.
Batalov is offline   Reply With Quote
Old 2009-10-13, 05:19   #33
Batalov
 
Batalov's Avatar
 
"Serge"
Mar 2008
Phi(4,2^7658614+1)/2

100101000001012 Posts
Default

Quote:
Originally Posted by jrk View Post
What has happened when msieve prints "crap"?
Tourette's syndrom?
Actually I was very interested, too. It does say that. A lot.
Batalov is offline   Reply With Quote
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
Compiling Msieve with GPU support LegionMammal978 Msieve 6 2017-02-09 04:28
5+ GPU support TheMawn GPU Computing 3 2014-07-13 02:31
Support AVX Unregistered Information & Answers 5 2011-07-05 17:12
Msieve with GNFS support R.D. Silverman Msieve 465 2010-01-11 20:59
Athlon64 support? JuanTutors Software 1 2004-06-04 02:46

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


Sat Jul 17 00:48:02 UTC 2021 up 49 days, 22:35, 1 user, load averages: 2.00, 1.58, 1.42

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.