06-21-2016, 11:38 AM
I'd like to add a new algorithm to hashcat (3.00). It seems to me that e.g. https://github.com/hashcat/oclHashcat/co...2ac427179c
is a good starting point. I've got some questions though:
In the diffs I see that four kernels are added: OpenCL/m*_a[0-3].cl. Why 4? What's the use of a0/a1/a2/a3? On my test setup, using a3 only works. When / why are the other kernels needed?
In the OpenCL kernel (in my case a3, see above) I see two funtions that seem to contain the core code: mXXXXXm and mXXXXXs, where XXXXX is the number of the algorithm. During implementation of my first algoritms I mentioned that in my test setup I only need to change mXXXXXs: I can even comment critical parts of mXXXXXm without affecting the outcome of tests. When / why is the mXXXXXm function needed?
Can somebody provide me with tips 'n tricks for debugging OpenCL kernels? I'm looking for ways to check values of variables etc., thing like a printf that runs / triggers from the kernel and displays data to console out.
Thank you for your help.
John
is a good starting point. I've got some questions though:
In the diffs I see that four kernels are added: OpenCL/m*_a[0-3].cl. Why 4? What's the use of a0/a1/a2/a3? On my test setup, using a3 only works. When / why are the other kernels needed?
In the OpenCL kernel (in my case a3, see above) I see two funtions that seem to contain the core code: mXXXXXm and mXXXXXs, where XXXXX is the number of the algorithm. During implementation of my first algoritms I mentioned that in my test setup I only need to change mXXXXXs: I can even comment critical parts of mXXXXXm without affecting the outcome of tests. When / why is the mXXXXXm function needed?
Can somebody provide me with tips 'n tricks for debugging OpenCL kernels? I'm looking for ways to check values of variables etc., thing like a printf that runs / triggers from the kernel and displays data to console out.
Thank you for your help.
John