Differentiate CUDA Cores(NVIDIA) and Stream processor(ATI/AMD)

In layman terms, CUDA Cores and Stream processors are exactly the same. The question is similar to asking whether Intel and AMD CPUs are the same or not. The difference in names is mostly commercial branding.

Both NVIDIA and ATI/AMD cards are multi-core units excelling in executing parallel programs.

The difference is that AMD stream processors are smaller, simpler, and run on lower frequency. NVIDIA CUDA cores are bigger, more complex and run on a higher frequency. That's why one cannot judge by the number of processors.

Both cards use different architectures, where CUDA are more general-purpose. This difference also shows in the way programs are compiled to run on these cards. The CUDA compiler does less optimization, letting the card assign the cores as needed at runtime, while the AMD compiler optimizes much more as regarding core assignments.

Another difference is developer support, where NVIDIA does a much bigger effort to woo developers to their cards. This is why there are many more libraries, code snippets and developer resources in general available for NVIDIA.

The effect of this difference in architecture depends on the task to do, and whether a greater number of processors, although slower ones, improves the performance or not. For example, AMD cards are much better for Bitcoin mining. For graphics, the comparison usually comes up as a close match for similarly-priced cards.