diff --git a/cgbn_stage1.cu b/cgbn_stage1.cu index 77e66ef32c87fae26b56d0bd179c09b80198ffc3..61215a5e4635e82d69d7457ea013d6b026eea7bf 100644 --- a/cgbn_stage1.cu +++ b/cgbn_stage1.cu @@ -733,10 +733,18 @@ int cgbn_ecm_stage1(mpz_t *factors, int *array_found, typedef cgbn_params_t<8, 2048> cgbn_params_2048; typedef cgbn_params_t<16, 3072> cgbn_params_3072; typedef cgbn_params_t<16, 4096> cgbn_params_4096; + typedef cgbn_params_t<16, 6144> cgbn_params_6144; + typedef cgbn_params_t<16, 8192> cgbn_params_8192; + typedef cgbn_params_t<32, 12288> cgbn_params_12288; + typedef cgbn_params_t<32, 20480> cgbn_params_20480; available_kernels.push_back((uint32_t)cgbn_params_1536::BITS); available_kernels.push_back((uint32_t)cgbn_params_2048::BITS); available_kernels.push_back((uint32_t)cgbn_params_3072::BITS); available_kernels.push_back((uint32_t)cgbn_params_4096::BITS); + available_kernels.push_back((uint32_t)cgbn_params_6144::BITS); + available_kernels.push_back((uint32_t)cgbn_params_8192::BITS); + available_kernels.push_back((uint32_t)cgbn_params_12288::BITS); + available_kernels.push_back((uint32_t)cgbn_params_20480::BITS); #endif /* Pointer to CUDA kernel. */ @@ -771,6 +779,18 @@ int cgbn_ecm_stage1(mpz_t *factors, int *array_found, } else if (BITS == cgbn_params_4096::BITS) { TPI = cgbn_params_4096::TPI; kernel = kernel_double_add<cgbn_params_4096>; + } else if (BITS == cgbn_params_6144::BITS) { + TPI = cgbn_params_6144::TPI; + kernel = kernel_double_add<cgbn_params_6144>; + } else if (BITS == cgbn_params_8192::BITS) { + TPI = cgbn_params_8192::TPI; + kernel = kernel_double_add<cgbn_params_8192>; + } else if (BITS == cgbn_params_12288::BITS) { + TPI = cgbn_params_12288::TPI; + kernel = kernel_double_add<cgbn_params_12288>; + } else if (BITS == cgbn_params_20480::BITS) { + TPI = cgbn_params_20480::TPI; + kernel = kernel_double_add<cgbn_params_20480>; #endif } else { outputf (OUTPUT_ERROR, "CGBN kernel not found for %d bits\n", BITS); diff --git a/test.gpuecm b/test.gpuecm index bb0c129e4dcf7e7a194bba19dd619d91b969f227..dad8089eca6b3330c433af4863866e160c6208b3 100755 --- a/test.gpuecm +++ b/test.gpuecm @@ -98,9 +98,10 @@ echo "2^512+1" | $ECM 587 0 echo "2^1018-1" | $ECM -sigma 3:92 4 0 checkcode $? 2 -# try 2^1019-1: should give an error +# try 2^1019-1: should give an error (exit code 1) +# EDIT: with CGBN it exits normally with no factor echo "2^1019-1" | $ECM -sigma 3:92 4 0 -checkcode $? 1 +checkcode $? 0 # test for when stage 2 on CPU is needed echo "2^349-1" | $ECM -sigma 3:13 587 1261