第1章引 言5 存数据的多个线程没有必要全部访问DRAM存储器,而是从小型缓存中直接读取。因此, GPU可以更多地专注于提升浮点计算能力。 GPU负责大规模的密集型数据并行计算,而CPU则负责执行不适合数据并行的计算。 因此,需要综合考虑GPU和CPU的优缺点,使大多数应用程序能同时使用GPU和CPU, 既能用CPU执行应用程序中的需要串行执行的部分,又能用GPU进行高密集并行计算。 2007年,NVIDIA推出CUDA(Compute Unified Device Architecture,统一计算设备架构)这 一编程模型,是想在应用程序中充分利用CPU和GPU各自的优点。 另一个要点是,应用程序开发人员在选择何种处理器来运行他们的应用软件时,性能 不是唯一的决定因素。许多其他因素甚至更为重要。首先,选择的处理器必须在市场上有 很大的占有额,这是选择安装处理器的首要条件。原因很简单,软件开发的目的是满足众 多客户的需求,开发成本需要由客户支付。用市场上少见的处理器开发的应用程序很难得 到客户的认可。这也正是客户为什么不选择传统的并行计算系统,而选择通用的微处理器 系统。只有极少数由政府部门和大公司资助的在早期并行计算系统上开发的应用程序获得 成功。这种情况随着众核CPU的出现有所改变。由于GPU已经在PC市场上普及,数以 亿计的GPU已售出,几乎所有的PC上都有GPU。到目前为止,G80处理器以及后继产品 已经成功售出超过200万。这还是第一次因为市场上有如此多的并行产品而使得大规模并 行计算变得可行。存在这样庞大的市场对于应用程序开发人员充满了巨大的经济吸引力。 其他重要的决定因素还包括很容易获得GPU,并且GPU的实用性很强。到2006年为 止,并行软件应用程序通常运行在数据中心服务器或者部门的集群服务器上,但这种特殊 的执行环境往往限制了并行应用程序的使用。例如,在医学影像系统中,所发表的论文是 基于64个结点的集群服务器,而基于磁共振成像(MRI)机器的临床应用都依托于PC和特 殊硬件加速器结合的平台。原因很简单,一些大公司,如通用电气(GE)和西门子(Siemens), 没有把磁共振成像技术和集群服务器有机地结合起来应用于临床中,而这在学术领域内的 应用却相当广泛。事实上,国家卫生研究所National Institutes of Health,NHD曾一度拒绝 资助并行编程项目在医学中的应用,他们觉得并行软件的影响是有限的,因为大规模的集 群服务器在临床中根本难以成功运行。通用电气公司由于在这方面有了技术的突破,现在 己经申请到NH的研究基金,主要研究GPU在MRI方面的应用。 在选择处理器时要考虑的另一个重要因素是执行高密度计算应用程序时要符合电气 L.要获得关于GPU计算发展和CUDA创建方面的背景知识,请参阅第2章