CUDA – The future of high performance computing?
CUDA is NVIDIA’s parallel computing architecture that enables dramatic increases in computing performance by harnessing the power of the GPU (graphics processing unit).
GPUs are massively multi-threaded many-core-chips.GPU threads are extremely lightweight, thus thread creation and context switching are essentially free. As they have this highly parallel structure, they are more effective than general-purpose CPUs for a range of complex algorithms.
CUDA is formed of a small set of extensions to the C programming language, which allows the power of GPU’s to be harnessed for task normal performed by the CPU.
This can speed up algorithms which require large amounts of computation, especially those which can make use of parallel computation, such as AI problems, Dense linear algebra, Sequencing (virus scanning, genomics), sorting and the list goes on.
Many company’s and research project already make use of large GPU clusters, for projects, I believe the imitate future of high performance computing. and with more and more powerful GPUs being shipped in home computers many modern programs may be able to take advantage of large amounts of parallel computing power to produce optimal/close to optimal solutions to NP problems, as a matter of course.