Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
304 commits
Select commit Hold shift + click to select a range
d075f47
Changed comments on why MUL64 inline is needed
gwoltman Apr 29, 2026
b9663e6
Minor change that should speed up kernel compilations
gwoltman Apr 30, 2026
644fde4
Enhanced csqa (complex-square-and-add) to use mad64 via weakMulAdd.
gwoltman Apr 30, 2026
590c4d1
Eliminate a cmul in the little-used GF61 onePairMul routine.
gwoltman Apr 30, 2026
a40510c
Save one cmul in GF31 onePairMul
gwoltman Apr 30, 2026
0d6809e
Neatened GF31 onePairSquare
gwoltman Apr 30, 2026
3135c79
Ifdefed recent GF61 onePairSquare improvement. CUDA compiler couldn'…
gwoltman May 1, 2026
3791d56
23 bits of float precision is not enough to optionaDouble and optiona…
gwoltman May 3, 2026
1d5df44
Fixed typo in openCL compile of previous commit
gwoltman May 3, 2026
85c61cb
Fixed crash bug looking up BPW on the experimental FFT types 52 and 53
gwoltman May 3, 2026
5e7f189
Fix !ENABLE_BETTER_ONEPAIRSQ. All GF61 NTTs have been broken for a w…
gwoltman May 3, 2026
04e6753
Finished frac_bits makeover.
gwoltman May 3, 2026
ea7e1b4
Fixed the constant multiplier in fftMiddleOut because FP32 weights ar…
gwoltman May 4, 2026
e53a41b
With FP32 bug fixed, the BPW is updated with higher allowed values fo…
gwoltman May 4, 2026
f7e11d8
Added tdulcet's suggested fix for the Windows-buffering-logfile-outpu…
gwoltman May 4, 2026
da51b2a
If proof generation fails, lower and lower proof powers are tried. U…
gwoltman May 7, 2026
2c9a2e8
Fixed bug where worktodo-0.txt file name was not printed properly. f…
gwoltman May 9, 2026
53b35ff
Trying again with Windows pathname bug fix.
gwoltman May 9, 2026
73172df
Added ETA to LL status lines
gwoltman May 13, 2026
445f17a
Outpu per-iteration timing down to the 1/10th of a microsecond. Bata…
gwoltman May 14, 2026
59aaf73
Moved Context to GpuCommon. Made Gpu class responsible for creating …
gwoltman May 15, 2026
e213b6f
Potential fix for the "Read GPU error" problem!
gwoltman May 15, 2026
d76e4a7
Windows asserted using _IOLBF, 0 in setvbuf. Switched to _IONBF.
gwoltman May 17, 2026
e98adb1
First cut at multiple command queues. Off by default. Can be turned…
gwoltman May 17, 2026
f9a2c06
Used #if to not include some code that was giving some OpenCL ccmpile…
gwoltman May 17, 2026
6e22d6a
Reworked kernel calls. The ping-pong nature of !in_place and the fav…
gwoltman May 20, 2026
0bd593e
Fixed yet another Windws treats long as 32-bits bug.
gwoltman May 24, 2026
0b54a8c
Detect nVidia compute capability to set HAS_PTX properly. Lets nVidi…
gwoltman May 25, 2026
a3e4c7e
Another attempt at fixing the GPU read failed error.
gwoltman May 25, 2026
7b6b2c1
Restrict usage of WMUL=4 for WIDTH=1K and WMUL=2 for WIDTH=4K
gwoltman May 26, 2026
b2d530f
Updated CI to support building with CUDA.
tdulcet Mar 30, 2026
ea498d2
Updated CI to test on Ubuntu 26.04.
tdulcet Jun 11, 2026
0bf9080
Made Clang-Tidy fixes.
tdulcet Jun 12, 2026
294cc48
Workaround AMD's Windows OpenCL compiler whining about always true if…
gwoltman Jun 29, 2026
14a981c
CUDA backend: unload CUmodules via refcount to fix OOM leak
MarkRose Jul 19, 2026
485fdad
Created an openCL-like interface to support CUDA graphs.
gwoltman Jul 20, 2026
b4992d6
Implemented L2-striping (a lot of work that sadly was not faster on a…
gwoltman Jul 20, 2026
ece75b0
Merge pull request #5 from MarkRose/leak-fix
gwoltman Jul 20, 2026
5ac97e7
Merge branch 'master' into ci
gwoltman Jul 20, 2026
b609cfa
Merge pull request #4 from tdulcet/ci
gwoltman Jul 20, 2026
8de0c21
Fixed issues from merging tdulcet's Clang fixes.
gwoltman Jul 20, 2026
a5c96af
Fixed issue with CUDA graps on CUDA 11 (cuGraphInstantiate interface …
gwoltman Jul 20, 2026
1bf3bd6
Fixed a lot of Windows MSVC compiler warning messages.
gwoltman Jul 21, 2026
47463ba
Removed CUDA debugging code accidently left in ROE calculations.
gwoltman Jul 21, 2026
0f03b5b
Successfully ran 2000 iterations of exponent 4.3B (more than 32 bits).
gwoltman Jul 21, 2026
84b5b9c
Allow tuning FFT6431 (FFT type 51). TitanV may find this useful.
gwoltman Jul 22, 2026
037067b
Fix (hopefully) errors using CUDA graphs and workers=2
gwoltman Jul 22, 2026
4ff6c10
Removed unused halfbar. Fixed mis-typecast in shufl32.
gwoltman Jul 22, 2026
1105947
Tune the NOREG option. I'm seeing better timings with NOREG on Titan…
gwoltman Jul 22, 2026
da522b3
Updated CI to add MSVC builds.
tdulcet Jul 23, 2026
d814306
Removed the legacy PrimeNet script.
tdulcet Jul 23, 2026
378df26
Merge pull request #6 from tdulcet/msvc
gwoltman Jul 23, 2026
dc18f72
Require a clear advantage before overriding the default GRAPHS=1 sett…
gwoltman Jul 23, 2026
a2fff80
Merge branch 'master' of github.com:gwoltman/gpuowl
gwoltman Jul 23, 2026
ce05c9f
Tweaked help text
gwoltman Jul 23, 2026
9270110
Output GPU name at start up.
gwoltman Jul 23, 2026
c577f98
Allow changing the L1 cache config when using CUDA
gwoltman Jul 24, 2026
b4716e9
Added L!CUDA to list of recognized -use options
gwoltman Jul 24, 2026
0852d80
Output -time timings to more precision (RTX 5090 is bloody fast!). A…
gwoltman Jul 25, 2026
2b555a3
Fixed typo
gwoltman Jul 26, 2026
ee9fe63
Added CD workflow to build release executables.
tdulcet Jul 26, 2026
8fb01aa
Merge pull request #7 from tdulcet/cd
gwoltman Jul 26, 2026
8b7d6ce
The selfTest code (for developers only) was causing issues on some GP…
gwoltman Jul 27, 2026
76d68d0
Merge branch 'master' of github.com:gwoltman/gpuowl
gwoltman Jul 27, 2026
4a23f04
Fixed typo bugs in unused LDSSWIZ code
gwoltman Jul 29, 2026
9d4be52
Updated CD workflow based on feedback.
tdulcet Jul 27, 2026
8f820d8
Implemented LDS padding for SHUFL_BYTES=4. Not used.
gwoltman Jul 29, 2026
9b5300c
Merge pull request #8 from tdulcet/cd
gwoltman Jul 30, 2026
6f1e5d7
Restored a bit of useless code. Having the useless code improves per…
gwoltman Jul 30, 2026
9884e92
Merge branch 'master' of github.com:gwoltman/gpuowl
gwoltman Jul 30, 2026
080df11
Fixed more compiler warning messages
gwoltman Aug 2, 2026
9d3716a
More fixes for compiler warnings
gwoltman Aug 4, 2026
7e24213
Fixed another compiler warning.
gwoltman Aug 6, 2026
f5e377c
Slight cleanup to max ROE calculations.
gwoltman Aug 6, 2026
6e38ac2
Latest tweaks to CUDA kernel register usage.
gwoltman Aug 7, 2026
1ef7716
Wrote code to set CUDA LDS carveout. Did not help on mt laptop GPU. …
gwoltman Aug 10, 2026
14e2160
Fixed NCLOAD TRIG31 macro. Fixed read() and write() routines to use …
gwoltman Aug 14, 2026
4dd32c9
Created combo datatypes such as T2_GF61. This generate cleaner PTX c…
gwoltman Aug 15, 2026
0194d2e
OpenCL: rename the Z61 fma() overload so it stops hiding the builtin
jyohukuchan Aug 17, 2026
46f0375
Fix wrong residue table after reducePower()
Quantum64 Aug 21, 2026
a351da3
Merge pull request #10 from Quantum64/master
gwoltman Aug 21, 2026
7c58534
Merge pull request #9 from jyohukuchan/up/fix-fma-overload
gwoltman Aug 21, 2026
96646c3
Second attempt at using the C preprocessor to effect C++ templates.
gwoltman Aug 22, 2026
bac6d60
Merge branch 'master' of github.com:gwoltman/gpuowl
gwoltman Aug 22, 2026
92f92e2
Try reduced power proof on CRCError
Quantum64 Aug 22, 2026
d58ef5f
One more include file needed fixing for new combo types (templating)
gwoltman Aug 22, 2026
2379071
Merge pull request #11 from Quantum64/master
gwoltman Aug 22, 2026
6cf0dcd
Faster WIDTH and HEIGHT = 1K (radix 8). Improved GF31 cmul. Allow H…
gwoltman Sep 1, 2026
b6f77e2
Merge branch 'master' of github.com:gwoltman/gpuowl
gwoltman Sep 1, 2026
53ac8f0
I asked AI Claude to fix CUDA shim's implementation of barriers and f…
gwoltman Sep 13, 2026
97cb528
Fix updateStats() call arity in the FFT64 carry kernel STATS path
MarkRose Sep 13, 2026
c0b80dd
Add missing make_i96(i64 hi, u32 lo) to the alternate i96 implementat…
MarkRose Sep 13, 2026
9633f1a
Document and enforce the CARRY32 bpw limit
MarkRose Sep 13, 2026
ee9eb50
Fix barriers reached by only part of the workgroup in carryFused
MarkRose Sep 13, 2026
475f894
Fix missing else that made every "FFT size" -fft spec throw
MarkRose Sep 13, 2026
6fba41c
Validate blockSize read from the savefile
MarkRose Sep 13, 2026
f5a4337
Pass the real workgroup count to updateStats from carry()
MarkRose Sep 13, 2026
ad2bf1b
Fix three inaccurate comments/messages
MarkRose Sep 13, 2026
70d6e79
Do not truncate the worktodo exponent to 32 bits
MarkRose Sep 13, 2026
43da00d
Fix LDS write index in shufl's padded "second RADIX == 4" case
MarkRose Sep 13, 2026
33a0296
Give short runs durable checkpoints
MarkRose Sep 13, 2026
f50dc0b
Fix carryB silently dropping a carry that escapes its group
MarkRose Sep 14, 2026
f647009
Merge pull request #12 from MarkRose/fix-carry-stats-arity
gwoltman Sep 14, 2026
0df77f4
Merge pull request #13 from MarkRose/fix-i96-make-overload
gwoltman Sep 14, 2026
03f5553
Merge branch 'master' into fix-carry-updatestats-groups
gwoltman Sep 14, 2026
4d3e322
Merge pull request #21 from MarkRose/fix-worktodo-exponent-truncation
gwoltman Sep 14, 2026
9f7e2a9
Merge pull request #19 from MarkRose/fix-carry-updatestats-groups
gwoltman Sep 14, 2026
c3a8a5d
Merge pull request #22 from MarkRose/fix-shufl-bytes-16-radix4
gwoltman Sep 14, 2026
3244a78
Merge pull request #17 from MarkRose/fix-savefile-blocksize
gwoltman Sep 14, 2026
d883477
Merge pull request #24 from MarkRose/fix-carryb-dropped-carry
gwoltman Sep 14, 2026
cd1c633
Merge pull request #16 from MarkRose/fix-fft-size-spec
gwoltman Sep 14, 2026
8568676
Merge pull request #14 from MarkRose/fix-carry32-bpw-bound
gwoltman Sep 14, 2026
d66327e
Merge pull request #23 from MarkRose/fix-short-run-checkpoints
gwoltman Sep 14, 2026
e805a79
Merge pull request #15 from MarkRose/fix-carryfused-divergent-barrier
gwoltman Sep 14, 2026
758ed28
Tidied up AI change to bar() bug in carryFused. As suggested, duplic…
gwoltman Sep 15, 2026
4e61502
Merge pull request #20 from MarkRose/fix-stale-comments
gwoltman Sep 15, 2026
6cb4c12
Merge branch 'master' of github.com:gwoltman/gpuowl
gwoltman Sep 15, 2026
436bdb4
Got OLD_FENCE=0 working on nVidia. Not faster on TitanV. Added sync…
gwoltman Sep 15, 2026
0a87aec
Oops, forgot to commit this file with OLD_FENCE fix.
gwoltman Sep 15, 2026
088dd8d
Undid OLD_FENCE using barsync fix for nVidia. The !OLD_FENCE code is…
gwoltman Sep 15, 2026
3dd7c5d
Claude-inspired fix for the nVidia OLD_FENCE=0 bug.
gwoltman Sep 15, 2026
00b3935
Args: make -version print the version
deacix Sep 15, 2026
a8cc8b5
CUDA shim: fill buffers with 8-byte (and other word-multiple) pattern…
deacix Sep 15, 2026
8b95525
main: exit 1 on an unhandled exception, 0 on a normal end
deacix Sep 15, 2026
2ba2368
Signal: stop gracefully on SIGTERM and on a "stop" file in the run di…
deacix Sep 15, 2026
a34b052
Makefile: let VERSION be passed in
deacix Sep 15, 2026
7e0dfff
CUDA shim: answer CL_DEVICE_TOPOLOGY_AMD from the device's PCI bus id…
deacix Sep 15, 2026
57947a1
CUDA shim: load NVRTC's CUBIN, fall back to the PTX JIT
deacix Sep 15, 2026
256678a
KernelCompiler: compile the kernels in parallel under CUDA
deacix Sep 15, 2026
aa06a97
CUDA: programmatic dependent launch behind -use PDL=1
deacix Sep 15, 2026
bd878f6
Merge pull request #25 from deacix/x1476/0001-version-flag-prints
gwoltman Sep 15, 2026
efc3a21
Merge pull request #29 from deacix/x1476/0005-cuda-fill-8-byte-patterns
gwoltman Sep 15, 2026
b33f383
Merge pull request #26 from deacix/x1476/0002-exit-codes
gwoltman Sep 15, 2026
bb6731c
Merge pull request #27 from deacix/x1476/0003-sigterm-and-stop-file
gwoltman Sep 15, 2026
26812ef
Merge pull request #28 from deacix/x1476/0004-makefile-version-override
gwoltman Sep 15, 2026
1f951c9
Merge pull request #30 from deacix/x1476/0012-cuda-shim-pci-topology
gwoltman Sep 15, 2026
9860255
Tune FFTs sorted by maximum exponent handled by the FFT.
gwoltman Sep 15, 2026
2b0ca4c
Merge pull request #31 from deacix/x1476/0007-cuda-cubin-with-ptx-fal…
gwoltman Sep 16, 2026
80958ce
Merge pull request #32 from deacix/x1476/0010-parallel-nvrtc-compile
gwoltman Sep 16, 2026
cbd99e3
Remove PDL option from help until it is proven worthwhile.
gwoltman Sep 16, 2026
97e65a0
Merge pull request #33 from deacix/x1476/0011-pdl-behind-use-flag
gwoltman Sep 16, 2026
65d5f08
Added restrict at AI's suggestion - cannot hurt.
gwoltman Sep 16, 2026
8893502
Fixed compiler warning message about possibly uninitialized variable
gwoltman Sep 17, 2026
ad96461
Define barsync() only where the hardware supports it
MarkRose Sep 17, 2026
ceb996c
Fix stray brace in the NCLOAD(TrigSingleFP32) PTX string
MarkRose Sep 17, 2026
86d3f40
CUDA shim: guard g_allocatedBuffers with a mutex
MarkRose Sep 17, 2026
b08eb4b
Make the 4-byte shufl_and_fft2 path actually perform the fft2
MarkRose Sep 17, 2026
1ed23cb
Fix the 4-byte F_Z31 shufl read for WG != 64, 512
MarkRose Sep 17, 2026
d2b3a74
Require L2_STRIPING to divide the stripe count
MarkRose Sep 17, 2026
37c4dbb
Allows sharing LDS memory among partitioned workgroups. Is slower on…
gwoltman Sep 17, 2026
e00f721
Merge branch 'master' of github.com:gwoltman/gpuowl
gwoltman Sep 17, 2026
982b74f
Stop the statistics kernels writing past the sample buffers
MarkRose Sep 17, 2026
35a03be
Fix the L2_STRIPING branch of fftHin's line numbering
MarkRose Sep 17, 2026
7e6e208
Do not lose a finished PRP result over proof generation
MarkRose Sep 17, 2026
480af43
Tag every multiplication's ROE sample as a multiplication
MarkRose Sep 17, 2026
26a9f93
Skip a Cert worktodo line whose .cert start file is missing
MarkRose Sep 17, 2026
32c3d7e
Make file errors std::exceptions so top-level handlers catch them
MarkRose Sep 17, 2026
554af7e
Only accept Mersenne "1,2,E,-1" shapes on PRP worktodo lines
MarkRose Sep 17, 2026
ef82c28
Validate -log, -save and -maxAlloc values and "!" config lines
MarkRose Sep 17, 2026
a04a255
Escape strings in the result JSON
MarkRose Sep 17, 2026
3cc4673
Check the savefile header's exponent before sizing the residue read
MarkRose Sep 17, 2026
72804e4
CycleFile: do not promote a partial file when the write threw
MarkRose Sep 17, 2026
b4c2340
Two file-utility edge cases: empty readAll(), deleteLine temp cleanup
MarkRose Sep 17, 2026
fa0ab04
tune.txt: skip an unparseable line instead of using an uninitialised …
MarkRose Sep 17, 2026
d79f2a2
FFTConfig::maxExp must use this config's maxBpw, not the shape's best
MarkRose Sep 17, 2026
1c96a99
Default INPLACE=1 on nVidia GPUs
MarkRose Sep 17, 2026
6e3f811
Validate FFT shape and variant at runtime
MarkRose Sep 17, 2026
d3d440b
Honour the FFT type for size-only -fft specs and prefixed size ranges
MarkRose Sep 17, 2026
74935f5
Do not use CUDA graphs under -profile
MarkRose Sep 17, 2026
5242928
Checkpoint CERT assignments
MarkRose Sep 17, 2026
50a2daf
Serialize the global-worktodo claim across worker threads
MarkRose Sep 17, 2026
8bce298
Ignore worktodo lines whose exponent is not prime
MarkRose Sep 17, 2026
0470ae0
Merge pull request #36 from MarkRose/fix-ncload-f32-ptx-typo
gwoltman Sep 17, 2026
1bc817c
Merge branch 'master' into fix-shufl-fft2-4byte
gwoltman Sep 17, 2026
5ada1dc
Merge pull request #59 from MarkRose/fix-profile-disables-graphs
gwoltman Sep 17, 2026
dfecaf7
Changed AI fix for disabling GRAPHS for -time. You'll get a warning …
gwoltman Sep 17, 2026
1e3d784
Merge pull request #61 from MarkRose/perf-inplace-default-nvidia
gwoltman Sep 17, 2026
04c529a
Merge pull request #56 from MarkRose/fix-fftconfig-maxexp-variant
gwoltman Sep 17, 2026
ad109a9
Merge pull request #55 from MarkRose/fix-tune-line-ignored-continue
gwoltman Sep 17, 2026
bcd7d62
Merge pull request #46 from MarkRose/fix-cert-missing-file-skip
gwoltman Sep 17, 2026
0aff70e
Merge pull request #44 from MarkRose/fix-mul-roe-tagging
gwoltman Sep 17, 2026
2f7252c
Merge pull request #42 from MarkRose/fix-ffthin-striping-compile
gwoltman Sep 17, 2026
61ecb5f
Merge pull request #58 from MarkRose/fix-fftshape-validation
gwoltman Sep 17, 2026
b27a069
Merge pull request #57 from MarkRose/fix-fft-size-spec-type
gwoltman Sep 17, 2026
700d421
Merge pull request #51 from MarkRose/fix-savefile-header-exponent
gwoltman Sep 17, 2026
c22b178
Merge pull request #52 from MarkRose/fix-worktodo-composite-exponent
gwoltman Sep 17, 2026
a6cf64f
Merge pull request #40 from MarkRose/fix-l2-striping-divisor
gwoltman Sep 17, 2026
40384a7
Merge pull request #35 from MarkRose/fix-barsync-non-ptx-compile
gwoltman Sep 17, 2026
7baf012
Merge pull request #37 from MarkRose/fix-cuda-shim-buffer-set-race
gwoltman Sep 17, 2026
8032e0d
Merge pull request #38 from MarkRose/fix-shufl-fft2-4byte
gwoltman Sep 17, 2026
cd6e0f4
Merge branch 'master' into fix-shufl-f32-4byte-read
gwoltman Sep 17, 2026
fa3823f
Merge pull request #39 from MarkRose/fix-shufl-f32-4byte-read
gwoltman Sep 17, 2026
b2d423d
Merge pull request #41 from MarkRose/fix-stats-buffer-bound
gwoltman Sep 17, 2026
bba507d
Merge pull request #43 from MarkRose/fix-proof-result-not-lost
gwoltman Sep 17, 2026
36d2494
Merge pull request #45 from MarkRose/fix-file-errors-are-exceptions
gwoltman Sep 17, 2026
66f10fd
Merge pull request #47 from MarkRose/fix-getwork-claim-mutex
gwoltman Sep 17, 2026
a2ce7a1
Merge pull request #48 from MarkRose/fix-worktodo-prp-line-shape
gwoltman Sep 17, 2026
7bf5e7a
Merge pull request #49 from MarkRose/fix-args-validation
gwoltman Sep 17, 2026
64ed019
Merge pull request #50 from MarkRose/fix-result-json-escaping
gwoltman Sep 17, 2026
1b70146
Merge pull request #53 from MarkRose/fix-cyclefile-promote-on-throw
gwoltman Sep 17, 2026
6bc75b1
Merge pull request #54 from MarkRose/fix-file-utility-edges
gwoltman Sep 17, 2026
829b540
Merge pull request #60 from MarkRose/feat-cert-checkpoints
gwoltman Sep 17, 2026
4b2e181
Fall back to OpenCL C 3.0 where 2.0 is unavailable; pass no compile o…
MarkRose Sep 18, 2026
36bf699
CI: compile the kernels and pass a Gerbicz check on a POCL CPU device
MarkRose Sep 18, 2026
5f1cffd
Merge pull request #65 from MarkRose/ci-kernel-compile-smoke
gwoltman Sep 18, 2026
5cf29bf
CUDA shim: don't trust CUBIN for --maxrregcount, use the PTX path ins…
gwoltman Sep 19, 2026
ecfbaee
Merge branch 'master' of github.com:gwoltman/gpuowl
gwoltman Sep 19, 2026
34ac865
carryFused: qualify the ready-flag atomics as global
MarkRose Sep 19, 2026
fd8def3
main: exit non-zero when a worker dies on an exception
MarkRose Sep 19, 2026
b2c1022
CI: make the kernel smoke job fast, informative, and run it on arm64 too
MarkRose Sep 19, 2026
b37fc62
Merge pull request #67 from MarkRose/ci-smoke-followup
gwoltman Sep 20, 2026
bb048df
Merge pull request #69 from MarkRose/fix-atomic-global-qualifier
gwoltman Sep 20, 2026
f63da28
Merge pull request #68 from MarkRose/fix-worker-exception-exit-code
gwoltman Sep 20, 2026
ae8aa0c
tailMul: add TAIL_KERNELS support (double-wide / split-kernel), match…
gwoltman Sep 20, 2026
f7fc0fa
CI: fix the kernel-smoke log dump, which never ran on failure
MarkRose Sep 20, 2026
1b06345
Merge pull request #70 from MarkRose/ci-smoke-review-followup
gwoltman Sep 20, 2026
1fe537a
Do not skip the sub-group barrier where the hardware is not in lock-step
MarkRose Sep 20, 2026
0e67b41
Merge pull request #71 from MarkRose/fix-warp-lockstep-barrier
gwoltman Sep 20, 2026
c337b3c
shufl: the 4-byte path must honour r, like the 8- and 16-byte paths
MarkRose Sep 20, 2026
dc56c31
shufl: fix the LDSSWIZ read index for workgroups other than 64
MarkRose Sep 20, 2026
e41a3e1
Disabling MULTI_Q under -time must reach the kernels too
MarkRose Sep 20, 2026
f05075e
TrigBufCache: give each key field its own bits instead of adding them
MarkRose Sep 20, 2026
1186c6f
LDSbar: drop the lock-step early return, as bar(WG) and barsync() did
MarkRose Sep 20, 2026
7033598
KernelCompiler: print the linked program's build log, not the compile…
MarkRose Sep 20, 2026
1a1f8e7
Refuse OLD_FENCE=0 where no wavefront runs in lock-step
MarkRose Sep 20, 2026
0776fee
CI: require the residue to be the same under several -use settings
MarkRose Sep 20, 2026
515a27a
tailMul: read the "low" line with the half-workgroup lane, not get_lo…
MarkRose Sep 20, 2026
3d0449f
updateStats: barrier the roundoff reduction by hardware, not by size
MarkRose Sep 21, 2026
9d8f393
LDS sharing: fix the region and semaphore arithmetic, and refuse what…
MarkRose Sep 21, 2026
128c0aa
shufl: make the FP32/GF31 "second RADIX == 8" index workgroup-general
MarkRose Sep 21, 2026
76863a3
-use TAIL_KERNELS governs tailMul as well now
MarkRose Sep 21, 2026
5ccb98e
Merge pull request #84 from MarkRose/fix-tail-kernels-help
gwoltman Sep 21, 2026
317eb50
Merge pull request #81 from MarkRose/fix-updatestats-barrier
gwoltman Sep 21, 2026
884adf9
Merge pull request #80 from MarkRose/fix-tailmul-lowme
gwoltman Sep 21, 2026
bbd00b1
Merge pull request #72 from MarkRose/fix-shufl-4byte-partial-radix
gwoltman Sep 21, 2026
255e001
Merge pull request #73 from MarkRose/fix-ldsswiz-shufl-read
gwoltman Sep 21, 2026
e591c29
Merge pull request #74 from MarkRose/fix-multiq-disable-reaches-kernels
gwoltman Sep 21, 2026
d8067a4
Merge pull request #75 from MarkRose/fix-trigcache-key-aliasing
gwoltman Sep 21, 2026
aec3fcd
Merge pull request #78 from MarkRose/fix-old-fence-requires-lockstep
gwoltman Sep 21, 2026
6fbfd8e
Merge pull request #76 from MarkRose/fix-ldsbar-lockstep
gwoltman Sep 21, 2026
ab2c95f
Merge pull request #77 from MarkRose/fix-link-build-log
gwoltman Sep 21, 2026
0a98694
Merge pull request #79 from MarkRose/ci-residue-invariant
gwoltman Sep 21, 2026
1166d83
Merge pull request #82 from MarkRose/fix-lds-sharing-arithmetic
gwoltman Sep 21, 2026
ef690c9
Merge pull request #83 from MarkRose/fix-shufl-wg-general
gwoltman Sep 21, 2026
784e712
Make restrict on the trig/weight table pointers optional: -use ENABLE…
gwoltman Sep 21, 2026
928e0b6
Don't list ENABLE_RESTRICT among the supported -use keys
gwoltman Sep 21, 2026
95119d2
AMD: optional per-kernel waves-per-SIMD cap; default 2 for the in-pla…
gwoltman Sep 21, 2026
3121d98
AMD register cap: use the existing REGMI64/REGMO64/REGTS64/REGCF64 (e…
gwoltman Sep 21, 2026
ef3014a
Rename numCudaRegisters to numRegisters (it now also serves AMD)
gwoltman Sep 21, 2026
3fb186b
AMD register cap: don't apply it to the tailSquareZero / tailMulZero …
gwoltman Sep 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 163 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
name: CD

on:
push:
tags:
- '*'
workflow_dispatch:

jobs:
Linux-OpenCL:
name: Linux OpenCL

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
fetch-tags: true
- name: Script
run: |
docker run --rm -i -v "$GITHUB_WORKSPACE:/workspace" -w /workspace centos:7 bash -s <<'EOF'
set -e -o pipefail
sed -i -e '/^mirrorlist/d;/^#baseurl=/{s,^#,,;s,/mirror,/vault,;}' /etc/yum.repos.d/CentOS*.repo
# yum update -y
yum install -y centos-release-scl epel-release
sed -i -e '/^mirrorlist/d;/^# *baseurl=/{s,^# *,,;s,/mirror,/vault,;}' /etc/yum.repos.d/CentOS*.repo
yum install -y devtoolset-11-gcc-c++ devtoolset-11-libstdc++-static make git ocl-icd-devel

source /opt/rh/devtoolset-11/enable
g++ --version
ldd --version

make STATIC_RUNTIME=1 -j "$(nproc)"
cp -vr README.* LICENSE tools/ build-release/
cd build-release
rm -f -- *.o
./prpll -h
EOF
- uses: actions/upload-artifact@v7
with:
name: PRPLL-NTT_linux_x64_opencl
path: build-release/*

Linux-CUDA:
name: Linux CUDA

runs-on: ubuntu-latest
strategy:
matrix:
include:
- cuda: '13.2.1'
container: 'rockylinux8'
- cuda: '12.9.2'
container: 'rockylinux8'
- cuda: '11.8.0'
container: 'centos7'
- cuda: '10.2'
container: 'centos7'
fail-fast: false
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
fetch-tags: true
- name: Script
run: |
docker run --rm -i -v "$GITHUB_WORKSPACE:/workspace" -w /workspace "nvcr.io/nvidia/cuda:${{ matrix.cuda }}-devel-${{ matrix.container }}" bash -s <<'EOF'
set -e -o pipefail
if [[ "${{ matrix.container }}" == centos* ]]; then
sed -i -e '/^mirrorlist/d;/^#baseurl=/{s,^#,,;s,/mirror,/vault,;}' /etc/yum.repos.d/CentOS*.repo
# yum update -y
yum install -y centos-release-scl epel-release
sed -i -e '/^mirrorlist/d;/^# *baseurl=/{s,^# *,,;s,/mirror,/vault,;}' /etc/yum.repos.d/CentOS*.repo
yum install -y devtoolset-11-gcc-c++ devtoolset-11-libstdc++-static make git
source /opt/rh/devtoolset-11/enable
else
# dnf update -y
dnf install -y gcc-toolset-11-gcc-c++ make git
source /opt/rh/gcc-toolset-11/enable
fi

g++ --version
ldd --version

make CUDA=1 STATIC_RUNTIME=1 STATIC_CUDA=${{ matrix.cuda != '10.2' && '1' || '0' }} -j "$(nproc)"
cp -vr README.* LICENSE tools/ build-cuda/
cd build-cuda
rm -f -- *.o
if [[ "${{ matrix.cuda }}" == "10.2" ]]; then
cp -v /usr/local/cuda/lib64/{libnvrtc.so.10.2,libnvrtc-builtins.so.10.2} .
fi
# ./prpll -h
EOF
- uses: actions/upload-artifact@v7
with:
name: PRPLL-NTT_linux_x64_cuda_${{ matrix.cuda }}
path: build-cuda/*

Windows-OpenCL:
name: Windows OpenCL

runs-on: windows-2022
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
fetch-tags: true
- uses: step-security/msvc-dev-cmd@v1
- name: Install OpenCL
run: |
vcpkg install opencl
- name: Before Script
shell: bash
run: |
bash genbundle.sh src/cuda/*.cuh src/cl/*.cl > src/bundle.cpp
printf '"%s"\n' "$(basename "$(git describe --tags --long --always)")" > src/version.inc
- name: Script
run: |
msbuild PRPLL.sln /m /p:Configuration=OpenCL-Release /p:StaticRuntime=true /p:OpenCLRoot=C:\vcpkg\installed\x64-windows
Copy-Item -Recurse README.*, LICENSE, tools\ build-msvc\OpenCL\Release\
cd build-msvc\OpenCL\Release\
& .\prpll -h
- uses: actions/upload-artifact@v7
with:
name: PRPLL-NTT_win_x64_opencl
path: build-msvc/OpenCL/Release/*

Windows-CUDA:
name: Windows CUDA

runs-on: windows-2022
strategy:
matrix:
cuda: ['13.2.1', '12.9.2', '11.8.0', '10.2.89']
fail-fast: false
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
fetch-tags: true
- uses: step-security/msvc-dev-cmd@v1
- name: Install CUDA Toolkit
uses: N-Storm/cuda-toolkit@v0.2.34
with:
cuda: ${{ matrix.cuda }}
- name: Before Script
shell: bash
run: |
bash genbundle.sh src/cuda/*.cuh src/cl/*.cl > src/bundle.cpp
printf '"%s"\n' "$(basename "$(git describe --tags --long --always)")" > src/version.inc
- name: Script
run: |
msbuild PRPLL.sln /m /p:Configuration=CUDA-Release /p:StaticRuntime=true /p:StaticCUDA=${{ matrix.cuda != '10.2.89' && 'true' || 'false' }}
Copy-Item -Recurse README.*, LICENSE, tools\ build-msvc\CUDA\Release\
cd build-msvc\CUDA\Release\
if ("${{ matrix.cuda }}" -eq "10.2.89") {
Copy-Item "$env:CUDA_PATH\bin\nvrtc64_102_0.dll", "$env:CUDA_PATH\bin\nvrtc-builtins64_102.dll" .
}
# & .\prpll -h
- uses: actions/upload-artifact@v7
with:
name: PRPLL-NTT_win_x64_cuda_${{ matrix.cuda }}
path: build-msvc/CUDA/Release/*
Loading
Loading