Praise 本书赞誉FORTRAN(盛行于20世纪60年代)是最早允许我们在大型机上编程的语言。之后是BASIC(流行于20世纪80年代)赋予我们为第一批微型计算机编写程序的能力。现在轮到CUDA,让我们可以为超级微型计算机编写程序。
本书介绍的技术能够帮助工程和数学等领域的研究者以超越微机100倍的速度执行计算任务。这使新的计算任务得以完成,也使本书得以成为颠覆传统规则的教程。
—Richard H. Rand,康奈尔大学机械与航空航天工程系教授、数学系教授本书结构合理,内容实用,能够帮助读者快速体验CUDA并行编程并即时得到结果。本书围绕不同科学和工程问题,展示了GPU编程的魅力。书中提供了优秀的示例程序和项目练习,让人读之愉悦。
—Mark Staveley博士,微软Azure高性能计算高级项目经理本书名副其实,手把手教授读者基本概念、核心策略、关键术语和典型示例。这些内容有机构成的教学体系以老道而深入的方式介绍高性能计算。本书同时适用于专家和普通读者。
—Joseph M. Iaquinto博士,VA Puget Sound公司研究专家本书体现的实用性与我为工程师讲授数值方法课程的教学方法具有惊人的一致性。本书将为工程专业的学生以及程序员补充新的数值计算工具箱,使他们能够基于CUDA进行高性能科学计算。对于有一定编程基础的CUDA初学者,本书堪称完美。建议读者遵从作者的建议,尽早好好练习实践项目。践行本书的理论,你将可以熟练应对GPU计算方面的项目,进入CUDA开发者行列。
—Lorena A. Barba,乔治华盛顿大学机械与航空航天工程系副教授致 谢
Acknowledgements我们需要向很多人致谢,没有他们也就没有这本书。
感谢我们的家人,在写作本书的过程中,我们对他们时有忽略。谢谢Laura Lewin和Pearson公司的所有人,他们为本书的编辑、出版和营销做了大量努力。多谢《CUDA专家手册:GPU编程权威指南》一书的作者Nicholas Wilt先生(曾任职于英伟达公司,现任职于亚马逊公司),是他建议我们与Laura联系,最终促成了本书的出版。同样需要感谢英伟达公司的Thomas Bradley、微软公司的Mark Staveley和康奈尔大学的Richard Rand,作为技术评审专家,他们提供了颇具建设性的评论、校正和见解。
谢谢华盛顿大学西雅图校区机械工程系的同事们。他们与我们上聊科技大势下聊底层技术细节,为本书贡献了素材。这些同事包括却不仅限于Mark Ganter、Di Zhang、Ben Weiss等人。他们帮本书绘制了多幅图片并提供了多个好用的软件帮我们制作标签和自动排版代码。我们也要感谢机械工程系系主任Per Reinhall,是他批准了我们的课程申请,正是这门课促使我们编写了本书的很多内容。另外要感谢同校放射科的David Haynor和西雅图VA医院的William Ledoux,他们的研究项目持续围绕着CUDA相关的技术探索。
特别感谢英伟达公司的员工们。包括首席执行官黄仁勋,他一直坚信并热情坚持基于GPU的并行计算;学术项目经理Chandra Cheij;高等教育与医疗行业主任Kimberly Powell;给我们帮助和启迪的CUDA大师Jon Saposhnik和Bob Crovella。最后同样的感谢送给战略营销主任Jay White,他长期支持西雅图地区的GPU计算交流会并是我们聚会的召集人。
我们还要感谢所有的学生。他们敢于参加华盛顿大学早期的CUDA课程,颇有冒险精神。特别是已毕业的硕士生Grant Marchelli(现在他已拿到了博士学位并受聘在Envitrum公司任职CTO),他参与了课程的很多关键环节,包括建立实验环境、提供示例代码并受邀讲课。特别感谢Gerald Barnett,当本书进入第一稿编辑环节时,他立即放下自己的事情,全情参与。
最后,真心感谢本书的读者。分享对象的价值取决于有没有合适的人去共享。谢谢你们对本书感兴趣。我们真诚地希望本书能为你们带来有用的经验和丰厚的回报。