gpu高性能编程cuda实战的前言
本书介绍了如何利用计算机中图形处理器(Graphics Process Unit, GPU)的强大计算功能来编写各种高性能的应用软件。虽然GPU的设计初衷是用于在显示器上渲染计算机图形(现在仍然主要用于这个目的),但在科学计算、工程、金融以及其他领域中,人们开始越来越多地使用GPU。我们将解决非图形领域中的问题的GPU程序统称为通用GPU程序。值得高兴的是,虽然你需要具备C或者C++的知识才能充分理解本书的内容,但却不需要具备计算机图形学的知识。任何图形学的基础都不要!GPU编程只是使你进一步增强现有的编程技术。
在NVIDIA GPU上编写程序来完成通用计算任务之前,你需要知道什么是CUDA。NVIDIA GPU是基于CUDA架构而构建的。你可以将CUDA架构视为NVIDIA构建GPU的模式,其中GPU既可以完成传统的图形渲染任务,又可以完成通用计算任务。要在CUDA GPU上编程,我们需要使用CUDA C语言。在本书前面的内容中可以看到,CUDA C本质上是对C进行了一些扩展,使其能够在像NVIDIA GPU这样的大规模并行机器上进行编程。
我们为经验丰富的C或者C++程序员编写了本书,这些程序员通常较为熟悉C语言,因此能很轻松地阅读或者编写C代码。本书不仅将进一步增强你的C语言编程能力,而且还能作为使用NVIDIA的CUDA C编程语言的一本快速入门书籍。你既不需要具备任何在大规模软件架构上工作的经验,也不需要有编写过C编译器或者操作系统内核的经历,此外也无需了解ANSI C标准的细枝末节。本书并没有花时间来回顾C语言的语法或者常用的C库函数,例如malloc()或者memcpy(),我们假设你对这些概念已经非常熟悉了。
虽然本书的目的并不是介绍通用的并行编程技术,但你在书中仍将学习到一些通用的并行编模式。此外,本书并不是一本详细介绍CUDA API的参考书,也不会详细介绍在开发CUDA C软件时可以使用的各种工具。因此,我们强烈建议将本书与NVIDIA的免费文档结合起来阅读,例如《NVIDIA CUDA Programming Guide》和《NVIDIA CUDA Best Practices Guide》等。然而,你不用费工夫去收集所有这些文档,因为我们将介绍你需要的所有内容。
不会费太多的周折,CUDA C编程领域欢迎你的到来!