Compute Unified Device Architecture
This project will thoroughly introduce NVIDIA’s Compute Unified Device Architecture (CUDA), starting with an overview on the history and current state of CPUs and GPUs, including an analysis of architectural differences between these computing units and architectural differences between different manufacturers of the same computing units. Also included will be an analysis on differences of how software programming models, frameworks, toolkits, and compilers maximize the potential of these architectures. Use cases for parallel computing with GPUs will be analyzed, as well as implemented. Tests will be made regarding the performance of CUDA vs OpenCL.