08-24-2019, 12:20 PM
unfortunately, it could be anything here.
maybe even your OpenCL kernel is not perfectly correct and it is only a matter of which vector size etc is being used to fail or succeed.
Without seeing the code it's very difficult to say.
It would also make sense to write a test modules tools/test_modules/*.pm to test all attack modes, vector widths, single vs multi hash etc...
There are some functions like make_u32x () vs the cast to it with: (u32x) x , that we had to introduce when starting to support CUDA (again). so it might be something very easy to fix and cases like this would explain that it only happens with CUDA.
please also always make sure to either "make clean" or remove the kernels/ (and maybe even the $HOME/.nv directory) to get rid of cached kernels etc. otherwise you are testing the old code instead of the changed kernel code.
maybe even your OpenCL kernel is not perfectly correct and it is only a matter of which vector size etc is being used to fail or succeed.
Without seeing the code it's very difficult to say.
It would also make sense to write a test modules tools/test_modules/*.pm to test all attack modes, vector widths, single vs multi hash etc...
There are some functions like make_u32x () vs the cast to it with: (u32x) x , that we had to introduce when starting to support CUDA (again). so it might be something very easy to fix and cases like this would explain that it only happens with CUDA.
please also always make sure to either "make clean" or remove the kernels/ (and maybe even the $HOME/.nv directory) to get rid of cached kernels etc. otherwise you are testing the old code instead of the changed kernel code.