WvanWoerden/G6K-GPU-Tensor

something wrong in function `kernel_bucketing` in `GPUStreamGeneral.cu`

Closed this issue · 1 comments

Hello, developer, when I implement the command
python lwe_challenge.py 40 --lwe/alpha 0.035 --threads 2 --gpus 1
with the pnj-bkz blocksize = 89, it returns the error:

 File "lwe_challenge_last_pump.py", line 322, in <module>
    lwe()
  File "lwe_challenge_last_pump.py", line 312, in lwe
    stats = run_all(lwe_kernel, list(all_params.values()), # noqa
  File "/home/cryptothesis/summer/G6K-GPU-Tensor/g6k/utils/cli.py", line 109, in run_all
    res = f(copy.deepcopy(job))
  File "lwe_challenge_last_pump.py", line 202, in lwe_kernel
    pump_n_jump_bkz_tour(g6k, tracer, blocksize, jump=jump,
  File "/home/cryptothesis/summer/G6K-GPU-Tensor/g6k/algorithms/bkz.py", line 118, in pump_n_jump_bkz_tour
    pump(g6k, tracer, kappa, beta, f, **pump_params)
  File "/home/cryptothesis/summer/G6K-GPU-Tensor/g6k/algorithms/pump.py", line 159, in pump
    if not wrapped_sieve(pump):
  File "/home/cryptothesis/summer/G6K-GPU-Tensor/g6k/algorithms/pump.py", line 37, in wrapped_sieve
    pump.g6k(alg=alg, tracer=pump.tracer)
  File "g6k/siever.pyx", line 1263, in g6k.siever.Siever.__call__
    with tracer.context("gpu"):
  File "g6k/siever.pyx", line 1264, in g6k.siever.Siever.__call__
    self.gpu_sieve(reset_stats=reset_stats) 
  File "g6k/siever.pyx", line 1172, in g6k.siever.Siever.gpu_sieve
    sig_on()
cysignals.signals.SignalError: Segmentation fault

Besides, while I debug on this error, I just found out that there's something wrong in function kernel_bucketing in GPUStreamGeneral.cu, maybe there's a RAM allocate error or the threads/warps/fragment allocate error. But I cannot find out the concrete error. Hope your help, thanks!

Fixed in branch python3lwe.