Memory consumption is a relative term. Please see http://crypto.stackexchange.com/questions/400/why-cant-one-implement-bcrypt-in-cuda The idea is that the table required to run bCrypt is too big to be stored in GPU registers. If it's stored in GDDR it can't be accessed in parallel, neutering the massive parallelism of GPU solutions. If it's stored in regular RAM it can be accessed in parallel, but very slowly, nullifying the benefits of GPU optimisation. Therefore, unless a major brakthrough in GPU password cracking is achieved, the relatively high memory usage of bCrypt prevents the use of super efficient GPU code to crack it. The main (but not only) reason why salted MD5 is considered unsafe is because it is extremely fast to compute by a massively parallelised GPU. So, no, the memory usage is not as high as you think it is.

Disclaimer: **I am not a cryptographer**. At best I am a complete n00b in password cracking. If I am wrong, please feel free to correct me – and let me learn something :)