我是GPU编程的新手,我使用brook +语言在ATI流处理器上进行暴力破解RAR密码恢复,但我发现用brook +语言编写的内核不允许任何调用普通函数(除了内核)功能),我的问题是:
1)如何在这种情况下使用unrar.dll(到unrar归档文件)API?这是编程RAR密码恢复的唯一方法吗?
2)使用GPU的crack和ElcomSoft软件怎么样?
3)该程序中GPU(ATI Stream处理器或CUDA)内部功能的确切作用是什么?
4)nVidia / CUDA技术比ATI / brook +语言更容易/更灵活吗?
答案 0 :(得分:2)
1)unrar.dll是一个编译的动态链接库。这些在CPU上执行。 GPU具有截然不同的机器代码和非常不同的执行模型,因此它们无法运行dll。
你可以尝试通过事件实现从GPU到CPU的回调,或者在GPU上构建一个x86解释器,但这几乎肯定比在CPU上运行要慢。
使用unrar.dll不是编写RAR密码恢复的唯一方法。您可以从头开始为CPU和GPU构建自己的代码。
2)他们通过让CPU代码明确要求在GPU上运行某些GPU代码来工作。
3)我完全不知道。我猜它虽然有一个GPU程序可以尝试许多不同的组合,并且可以从并行运行中获益。
4)CUDA比布鲁克+更成熟。 brook +对于简单的任务来说可能同样容易,但不是那么完整。对于新项目,大多数人现在会选择OpenCL而不是brook +。(我不确定你打算做什么,但上述任何一项似乎都不会使任何事情变得险恶。)