1) unrar.dll - это скомпилированная библиотека динамических ссылок. Они выполняются на процессоре. Графические процессоры имеют совершенно другой машинный код и совершенно другую модель исполнения, поэтому они не могут запускать библиотеки DLL.
Вы можете попытаться реализовать обратный вызов из GPU в CPU через события или создать интерпретатор x86 на GPU, но они почти наверняка будут работать медленнее, чем просто на CPU.
Использование unrar.dll - не единственный способ запрограммировать восстановление пароля RAR. Вместо этого вы можете просто создать собственный код для процессора и графического процессора с нуля.
2) Они работают так, что код процессора явно запрашивает, чтобы какой-нибудь код графического процессора выполнялся на графическом процессоре.
3) Я точно не знаю. Я бы предположил, однако, что у него есть программа GPU, которая пробует много разных комбинаций, и выигрывает от того, что они запускаются параллельно.
4) CUDA более зрелый, чем ручей. brook + может быть таким же простым для простых задач, но не настолько полнофункциональным. Для новых проектов большинство людей теперь выбрали бы OpenCL вместо Brook +.
(Я не уверен, что вы собираетесь делать, но ни один из вышеперечисленных, вероятно, не даст ничего зловещего.)