Bueno, primero, si me permitís, te voy a hacer un par de correcciones: Las palabras son "descifrado" (no desencrip*tacion), aprovecha y haría.
En cuanto a tu duda, yo lo que he visto en general es que OpenCL es mucho mejor en cuanto a GPGPU que las tecnologías individuales CUDA y STREAM, esto es porque no solo tiene un poco más de performance, sino que hace tu programa portable tanto a placas AMD como para placas Nvidia.
Sin embargo, si te vas a comprar una placa para GPGPU, siempre recomiendo AMD, esto es debido a que la arquitectura las hace mucho más eficientes.
Cuando uno va a calcular la capacidad de procesamiento en FLOPS (Floating-Point Operations per Second), se deben usar las siguientes fórmulas:
AMD: Stream Processing Units (SPUs) * 2 * Clock Speed (Mhz) = Capacidad en MFLOPS.
Nvidia: Cuda Cores (CCs) * 3 * Clock Speed (Mhz) = Capacidad en MFLOPS.
Ahora vos decis, por qué se recomienda AMD si los CCs pueden hacer tres operaciones por ciclo de procesador por segundo y los SPUs sólo 2, esto es debido a que en promedio las AMD traen muchos mas SPUs que las Nvidia traen CCs.
Por ejemplo, la placa más potente de AMD (y del mercado), la HD5970, posee 3200 SPUs y un Clock de stock de 725 Mhz, esto da una capacidad de stock de 4.64 TeraFLOPS.
La placa más potente de Nvidia (de escritorio, las tesla las dejamos para otro análisis ya que estas solo sirven para GPGPU y cuestan 8000 US$ cada una), la GTX 580, sólo tiene 512 CCs y un clock de stock de 772 Mhz, dando una potencia final de 1.185 TeraFlops.
Dependiendo de cuanto dinero dispongas, http://golubev.com/gpuest.htm ahi tenés estadísticas aproximadas de la capacidad, para apoyar lo que te digo y que no es algo que saqué de la galera XD.
Suerte
Un abrazo
APOKLIPTICO