Skip to content

merge msieve-s changes - #97

Merged
bbuhrow merged 20 commits into
masterfrom
msieve-s
Sep 24, 2026
Merged

bbuhrow merged 20 commits into
masterfrom
msieve-s

Conversation

@bbuhrow

@bbuhrow bbuhrow commented Sep 24, 2026

Copy link
Copy Markdown
Owner

No description provided.

buhrow and others added 20 commits August 26, 2026 17:08
(cpu_hashtable, cpu_gerbicz, gpu_cubsort, gpu_gerbicz) drawn from 3 repositories
(kyleaskine's msieve-s, jasonp's sourceforge "polysize" branch, and yafu's trunk) into a
common framework feeding a multithreaded stage 2.
+ all four stage 1 implementations are mostly working (known problem with gpu_gerbicz for small inputs)
+ multithreaded stage 2 is working
+ working on tests of stage 1 hits
+ working on characterizing full pipeline for various sized N
+ next is dynamic stage1/2 load balancing
+ also need to test that multithreaded yafu -nps and -npr still work
test additions for poly stage 1 (unused) and slightly changed how yafu bundles up nfs_args for poly select
reenable test_mode, harmless if not invoked.
passing the murphy E based early abort through to msieve, which now handles it.
also reenabled a piece of test_mode I had forgotten to last time.
+ allow live stats updating in test_mode
+ print murphy-e heuristic if active
fix bug in stage1_sieve_gpu with trivial root case.
print estimated gnfs job time and polyselect time in polyselect if tune data exists.
guard printing nfs_args in polyselect with VFLAG
+ fix gerbicz stage1 to look at wall clock time for coeff deadlines
+ proper send/recieve of coeff deadline and poly deadline between yafu and msieve thru nfs_args
+ fix gpu_gerbicz for small inputs by capping special_q batch size
+ cpu no longer uses stage2 threadpool, just processes hits as they happen (gpu still uses it)
+ experimental cpu special_q batch size chunking (not needed with new corrected coeff deadline enforcing
+ gpu stage 1 needed threadid woven through to handle_collision
…pecial Q to process prior to start

+ uses that in the live update for tracking progress
…iles

+ better total-work estimation logic in search_coeff_core
+ added a utility for running experiments on coeff_deadline
+ default pbatch now 5000 to make sure enough coefficients to make use of all threads
+ python tool to plot murphyE histograms generated in a run
… siever, over the default ggnfs.

Must have a working cuda-sieve ./bench, this just points to it, similar to the current paradigm with lasieve.
known issue with params - cuda-sieve will want it's own parameters
+ added test/ files.  I think they are also in master branch, but this solves some compiler complaints here in the branch.
will worry about it during merge.
+ msvc builds and runs the two cpu poly selection options. need more testing overall, and a way to build gpu poly select.
… and gpu_gerbicz with either native toolchain or clang-cl

+ also builds both cpu variants, so same stage1 choices are possible with VS builds.
+ remove spurious printf's in gpu stage1
todo: need to sort out where this goes (it is also in include/) and then use it throughout the library.
@bbuhrow
bbuhrow merged commit 963dbe9 into master Sep 24, 2026
12 checks passed
@bbuhrow
bbuhrow deleted the msieve-s branch September 24, 2026 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant