Hello, I'm a new developer and decided to go from writing small good for nothing programs for practice, to actually making something useful, a RAR-PDF etc password recovery tool. The original plan was to make a simple program written in python that utilizes the CPU, but since I managed to interest some friends of mine in the project, we've decided to make an industry "competitive" (and with competitive I mean something worth someone's time) program that utilizes the GPU, since modern graphics' cards can test roughly 70 times more keys per second than modern CPUs. So it all comes down to how I can utilize a GPU's computing power, I know that with nvidia cards I can use CUDA but I'm kind of lost when it came to AMD cards, since I couldn't find a clear answer. My research up until now is that I should use OpenCL? I don't know, I'm pretty lost, from the looks of it, it seems more like it enhances the GPU performance rather than enhancing a program's performance with the GPU. Any and all answers are appreciated.