openwall / openwall/john

Try rewriting bcrypt-opencl to use recent GPUs' shuffles

Open
#3,638 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C
Stars
13.6k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

It might be possible to make bcrypt-opencl up to 4x faster through having the 4 parallel S-box lookups actually done in parallel and then the results transferred to one work-item using recent GPUs' shuffle instructions.

For NVIDIA, see the last few paragraphs in:
https://lists.openwall.net/phc-discussions/2018/04/28/1

For AMD:
https://gpuopen.com/amd-gcn-assembly-cross-lane-operations/

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the bcrypt-opencl implementation in the repository and read the linked NVIDIA and AMD cross-lane-operation references first. Determine whether the four parallel S-box lookups can use recent GPU shuffle instructions, then benchmark supported GPUs; done means a working rewrite with measured performance improvement.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.