GPU friendliness GPU-friendly 32-bit integers, SIMD No/low memory needs Low register pressure GPU-unfriendly Exceeding total memory available on typical GPU cards However, there may be a practical recomputation vs. memory trade-off - in fact, it's deliberate in scrypt Variable S-boxes exceeding fast memory size per thread (work-item in OpenCL parlance) Data-dependent branching - may work, but is tricky and risky - let's not do it Deep enough tree (not just an if/else in a loop) to make eager execution inefficient Beware of side-channel leaks - a sufficient reason not to use data-dependent branching CPU-unfriendly algorithms Small S-boxes, bit permutations, unusual transforms