Remove CPU fallbacks when GPU pow2 fails
This commit is contained in:
1 parent
79d821c475
commit
158c51f659
6 files changed
+248
-40
No files matched your search
@@ -31,7 +31,8 @@ internal static partial class PrimeOrderCalculator
|
||||
PrimeOrderSearchConfig config,
|
||||
PrimeOrderHeuristicDevice device)
|
||||
{
|
||||
using var scope = UsePow2Mode(device);
|
||||
bool enableGpuPow2 = device == PrimeOrderHeuristicDevice.Gpu;
|
||||
using var scope = UsePow2Mode(device, enableGpuPow2);
|
||||
MontgomeryDivisorData divisorData;
|
||||
if (prime <= ulong.MaxValue)
|
||||
{
|
||||
@@ -51,7 +52,7 @@ internal static partial class PrimeOrderCalculator
|
||||
|
||||
ulong prime64 = (ulong)prime;
|
||||
divisorData = MontgomeryDivisorData.FromModulus(prime64);
|
||||
PrimeOrderResult result = Calculate(prime64, previous, divisorData, config, device);
|
||||
PrimeOrderResult result = Calculate(prime64, previous, divisorData, config, device, enableGpuPow2);
|
||||
return new PrimeOrderResultWide(result.Status, result.Order);
|
||||
}
|
||||
else
|
||||
@@ -1030,6 +1031,11 @@ internal static partial class PrimeOrderCalculator
|
||||
{
|
||||
return wideRemainder;
|
||||
}
|
||||
|
||||
PrimeOrderGpuHeuristics.ReportPow2Failure(
|
||||
"wide prime order pow2 check",
|
||||
modulus,
|
||||
wideStatus);
|
||||
}
|
||||
|
||||
return exponent.Pow2MontgomeryModWindowed(modulus);
|
||||
|
||||
Reference in new issue
Block a user