# PRPLL NTT now supports both CUDA and OpenCL

**URL:** <https://forums.developer.nvidia.com/t/prpll-ntt-now-supports-both-cuda-and-opencl/367918>\
**Category:** CUDA Programming and Performance\
**Created:** [April 26, 2026, 7:23am UTC](https://forums.developer.nvidia.com/t/prpll-ntt-now-supports-both-cuda-and-opencl/367918 "2026-04-26T07:23:21Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![wfgarnett3](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@wfgarnett3](https://forums.developer.nvidia.com/u/wfgarnett3)\
**Post date:** [April 26, 2026, 7:23am UTC](https://forums.developer.nvidia.com/t/prpll-ntt-now-supports-both-cuda-and-opencl/367918/1 "2026-04-26T07:23:21Z")

</div>

For the Great Internet Mersenne Prime Seach (GIMPS) ([https://www.mersenne.org](https://www.mersenne.org)), PRPLL NTT now supports CUDA in addition to OpenCL for primality testing using either FP64 FFT or integer NTT.

Special thanks to Mersenne Forum user “Sherpa”, who shared their source code for translating OpenCL into CUDA code at the link below.

[https://github.com/shitcoinsherpa/Frey-PRPLL](https://github.com/shitcoinsherpa/Frey-PRPLL)

George Woltman just provided the first official release of a CUDA version of PRPLL.

Current versions:

Linux OpenCL: [https://www.dropbox.com/scl/fi/o22fl…lhcbpx225&dl=0](https://www.dropbox.com/scl/fi/o22flfjhj07ok6laxjb1n/prpll?rlkey=e23lw5x5qv3954u9lhcbpx225&dl=0)  
Linux CUDA: [https://www.dropbox.com/scl/fi/o35sl…c8sg87q0h&dl=0](https://www.dropbox.com/scl/fi/o35slyw9wk3d977ch2rer/prpll?rlkey=ax99yz4vadw0e1xoc8sg87q0h&dl=0)  
Windows OpenCL: [https://www.dropbox.com/scl/fi/04uef…y2r7jfh42&dl=0](https://www.dropbox.com/scl/fi/04uefblsxf00m9dl4q3is/prpll.exe?rlkey=jccovx4khxze8xzsy2r7jfh42&dl=0)  
Windows CUDA: [https://www.dropbox.com/scl/fi/l5pyn…mbx0crmax&dl=0](https://www.dropbox.com/scl/fi/l5pyn86q0brzpmxgf94hx/prpll.exe?rlkey=di2f2nog6wfkdjhrmbx0crmax&dl=0)  
Windows CUDA static-linked: [https://www.dropbox.com/scl/fi/3rvda…qtixk2xed&dl=0](https://www.dropbox.com/scl/fi/3rvdargnqogcwq31c068r/prpll.exe?rlkey=4kssd7b9sy7s0pcqqtixk2xed&dl=0)

[https://github.com/gwoltman/gpuowl](https://github.com/gwoltman/gpuowl)

---

<div class="post-metadata">

**Author:** ![wfgarnett3](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@wfgarnett3](https://forums.developer.nvidia.com/u/wfgarnett3)\
**Post date:** [June 16, 2026, 7:44am UTC](https://forums.developer.nvidia.com/t/prpll-ntt-now-supports-both-cuda-and-opencl/367918/2 "2026-06-16T07:44:15Z")

</div>

The GIMPS largest prime number project is going great with this optimized CUDA / OpenCL software.

Feel free to join: follow instructions shown in Setup Wizard for PRPLL NTT section:

[https://download.mersenne.ca/mirror/AutoPrimeNet/quick-start-guide.html](https://download.mersenne.ca/mirror/AutoPrimeNet/quick-start-guide.html)

Some sample timings for Mersenne Prime 136279841:

**NVIDIA RTX PRO 6000 Blackwell Server Edition**

Integer NTT

180 microseconds per iteration

**RTX 5090**

Integer NTT

185 microseconds per iteration

**NVIDIA H100 80GB HBM3**

FP64 FFT

196 microseconds per iteration

**NVIDIA A100-SXM4-40GB**

FP64 FFT

378 microseconds per iteration

**RTX 4060**

Integer NTT

1365 microseconds per iteration

---

<div class="post-metadata">

**Author:** ![wfgarnett3](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@wfgarnett3](https://forums.developer.nvidia.com/u/wfgarnett3)\
**Post date:** [August 23, 2026, 12:10am UTC](https://forums.developer.nvidia.com/t/prpll-ntt-now-supports-both-cuda-and-opencl/367918/3 "2026-08-23T00:10:20Z")

</div>

New faster versions of PRPLL NTT just released:

> **[nightly.link | Repository gwoltman/gpuowl | Run #32581298596](https://nightly.link/gwoltman/gpuowl/actions/runs/32581298596)**

---

<div class="post-metadata">

**Author:** ![wfgarnett3](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@wfgarnett3](https://forums.developer.nvidia.com/u/wfgarnett3)\
**Post date:** [September 1, 2026, 6:51am UTC](https://forums.developer.nvidia.com/t/prpll-ntt-now-supports-both-cuda-and-opencl/367918/4 "2026-09-01T06:51:36Z")

</div>

Iteration times for the latest August 22 version of PRPLL NTT are shown below.

My fuzzy math (which could be wrong) and Nvidia Insight Compute seem to both show for H100 for smaller Mersenne Prime 74207281 that its 82.5 microseconds per iteration using 4M FP64 FFT and fitting entirely in L2 cache is hitting 3 TeraBytes per second of L2 cache bandwidth in that scenario – pretty impressive :)

**Testing Mersenne Prime 136279841 using August 22 version of PRPLL NTT**

**NVIDIA RTX PRO 6000 Blackwell Server Edition:**

M61+M31 Integer NTT (type 1)  
156.1 microseconds per iteration

FP64 FFT (type 0 / no prefix)  
849.6 microseconds per iteration

**NVIDIA H100 80GB HBM3:**

FP64+M31 Hybrid FFT (type 51)  
182.0 microseconds per iteration

FP64 FFT (type 0 / no prefix)  
192.6 microseconds per iteration

M61+M31 Integer NTT (type 1)  
250.1 microseconds per iteration

**NVIDIA A100-SXM4-40GB:**

FP64+M31 Hybrid FFT (type 51)  
331.5 microseconds per iteration

FP64 FFT (type 0 / no prefix)  
381.4 microseconds per iteration

M61+M31 Integer NTT (type 1)  
464.2 microseconds per iteration

[RTX\_PRO\_6000\_CUDA\_NTT\_gpuowl-0.log](https://forums.developer.nvidia.com/uploads/short-url/nc66zcsPNvPZ3bgpT6kXmMiT9b4.log) (10.6 KB)

[A100\_CUDA\_NTT\_gpuowl-0.log](https://forums.developer.nvidia.com/uploads/short-url/wxWWlr8UgUd4fwRW0pFxLiGZXVm.log) (16.3 KB)

[H100\_CUDA\_FP64\_customized\_512\_8\_512\_tune\_gpuowl-0.log](https://forums.developer.nvidia.com/uploads/short-url/rCfYCyZrTV2frmxfGTRQQofqsWF.log) (7.4 KB)

[H100\_CUDA\_FP64\_gpuowl-0.log](https://forums.developer.nvidia.com/uploads/short-url/6ZgUqMa36aZPiM5UJ8ns8xQt53W.log) (27.7 KB)

[H100\_CUDA\_NTT\_gpuowl-0.log](https://forums.developer.nvidia.com/uploads/short-url/2vVfwfrAoz2KhprxoQ0zQzcdql3.log) (19.8 KB)

[RTX\_PRO\_6000\_FP64\_CUDA\_gpuowl-0.log](https://forums.developer.nvidia.com/uploads/short-url/2nZchZyVJGZB4zqp3mVqU0WdQp3.log) (8.3 KB)

[A100\_OpenCL\_FP64\_gpuowl-0.log](https://forums.developer.nvidia.com/secure-uploads/nvidia/original/4X/a/5/0/a50f1b35a8b138fbb19ef1d4143c9bf3f49ce0ab.log) (1.2 KB)

---

<div class="post-metadata">

**Author:** ![wfgarnett3](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@wfgarnett3](https://forums.developer.nvidia.com/u/wfgarnett3)\
**Post date:** [October 15, 2026, 7:51am UTC](https://forums.developer.nvidia.com/t/prpll-ntt-now-supports-both-cuda-and-opencl/367918/5 "2026-10-15T07:51:21Z")

</div>

New faster October 9 versions of PRPLL NTT here:

[https://download.mersenne.ca/PRPLL-NTT/2026-10-09](https://download.mersenne.ca/PRPLL-NTT/2026-10-09)

George Woltman and team have done an amazing job using Claude to optimize PRPLL NTT a lot.

The software supports the following:

type 0: FP64 FFT  
type 1: M31+M61 Integer NTT  
type 2: FP32+M61 Hybrid FFT  
type 3: M61 Integer NTT  
type 4: FP32+M31+M61 Hybrid FFT  
type 51: FP64+M31 Hybrid FFT

Some sample timings testing Mersenne Prime 136279841:

**NVIDIA RTX PRO 6000 Blackwell Server Edition**  
124.9 microseconds per iteration (FFT: 4M 2:512:8:512:202 (32.49 bpw))

**RTX 5090**  
135 microseconds per iteration (FFT: 4M 2:512:8:512:202 (32.49 bpw))

**RTX 4070 Ti Super**  
325 microseconds per iteration (FFT: 3.50M 1:512:7:512:202 (37.13 bpw))

**RTX 4060**  
1071 microseconds per iteration (FFT: 2.75M 4:256:11:512:202 (47.26 bpw))
