返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • [正版] CUDA 编程:基础与实践 樊哲勇 CUDA programming: foundations and p
  • 本书用大量简单的代码展示 CUDA 编程的基础
    • 作者: 樊哲勇著
    • 出版社: 清华大学出版社
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    友一个文化制品专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 樊哲勇著
    • 出版社:清华大学出版社
    • 开本:16开
    • ISBN:9784767053694
    • 国别/地区:中国
    • 版权提供:清华大学出版社

            铺公告

      为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。

    温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货)。

      关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。

     

     

     书名:  CUDA 编程:基础与实践
     出版社:  清华大学出版社
     出版日期  2020
     ISBN号:  9787302564607
    本书是一本理想的学习 CUDA 编程的入门书籍。本书分两部分,第一部分(前十章)循序渐进地介绍 CUDA 编程的基础,第二部分(后五章)通过一个具体的计算物理应用实例——分子动力学模拟——来介绍如何从头开发一个大型的、高效的 CUDA 程序。

    樊哲勇,1983 年生,2010 年在南京大学物理系获理学博士学位,2010-2012 年在厦门大学物理系做博士后,2012-2014年在芬兰 Aalto 大学做博士后,2014-2016 在渤海大学任副教授,2016 年至今在芬兰 Aalto 大学做博士后。拥有 8 年 CUDA 编程经验,用 CUDA 开发了高效的分子动力学模拟程序 GPUMD 和量子输运程序 GPUQT,在计算物理的一流期刊《Computer Physics Communications》发表9篇原创论文。

    本书是一本理想的学习 CUDA 编程的入门书籍,理论与实操结合,难易适中。


    目   录

    第1章  GPU硬件与CUDA程序开发工具 1
    1.1  GPU 硬件简介 1
    1.2  CUDA 程序开发工具 4
    1.3  CUDA 开发环境搭建示例 6
    1.4  用nvidia-smi检查与设置设备 7
    1.5  其他学习资料 8
    第2章  CUDA中的线程组织 10
    2.1  C++语言中的HelloWorld程序 10
    2.2  CUDA中的HelloWorld程序 11
    2.2.1  只有主机函数的CUDA程序 11
    2.2.2  使用核函数的CUDA程序 12
    2.3  CUDA 中的线程组织 14
    2.3.1  使用多个线程的核函数 14
    2.3.2  使用线程索引 15
    2.3.3  推广至多维网格 17
    2.3.4  网格与线程块大小的限制 21
    2.4   CUDA 中的头文件 21
    2.5  用nvcc编译CUDA程序 22
    第3章  简单CUDA程序的基本框架 25
    3.1  例子:数组相加 25
    3.2  CUDA 程序的基本框架 27
    3.2.1  隐形的设备初始化 29
    3.2.2  设备内存的分配与释放 29
    3.2.3  主机与设备之间数据的传递 31
    3.2.4  核函数中数据与线程的对应 32
    3.2.5  核函数的要求 33
    3.2.6  核函数中if语句的必要性 34
    3.3  自定义设备函数 35
    3.3.1  函数执行空间标识符 35
    3.3.2  例子:为数组相加的核函数定义一个设备函数 36
    第4章  CUDA程序的错误检测 38
    4.1  一个检测CUDA运行时错误的宏函数 38
    4.1.1  检查运行时API函数 40
    4.1.2  检查核函数 42
    4.2  用CUDA-MEMCHECK检查内存错误 44
    第5章  获得GPU加速的关键 46
    5.1  用CUDA事件计时 46
    5.1.1  为C++程序计时 47
    5.1.2  为CUDA程序计时 48
    5.2  几个影响GPU加速的关键因素 50
    5.2.1  数据传输的比例 50
    5.2.2  算术强度 51
    5.2.3  并行规模 54
    5.2.4  总结 55
    5.3  CUDA 中的数学函数库 55
    第6章  CUDA的内存组织 57
    6.1  CUDA 的内存组织简介 57
    6.2  CUDA 中不同类型的内存 58
    6.2.1  全局内存 58
    6.2.2  常量内存 61
    6.2.3  纹理内存和表面内存 62
    6.2.4  寄存器 62
    6.2.5  局部内存 63
    6.2.6  共享内存 63
    6.2.7  L1和L2缓存 64
    6.3  SM 及其占有率 65
    6.3.1  SM 的构成 65
    6.3.2  SM 的占有率 65
    6.4  用CUDA运行时API函数查询设备 67
    第7 章  全局内存的合理使用 70
    7.1  全局内存的合并与非合并访问 70
    7.2  例子:矩阵转置 73
    7.2.1  矩阵复制 73
    7.2.2  使用全局内存进行矩阵转置 75
    第8 章  共享内存的合理使用 78
    8.1  例子:数组归约计算 78
    8.1.1  仅使用全局内存 79
    8.1.2  使用共享内存 82
    8.1.3  使用动态共享内存 84
    8.2  使用共享内存进行矩阵转置 85
    8.3  避免共享内存的bank冲突 86
    第9 章  原子函数的合理使用 90
    9.1  完全在GPU中进行归约 90
    9.2  原子函数 93
    9.3  例子:邻居列表的建立 95
    9.3.1  C++ 版本的开发 96
    9.3.2  利用原子操作的CUDA版本 98
    9.3.3  不用原子操作的CUDA版本 101
    第10章  线程束基本函数与协作组 104
    10.1  单指令-多线程执行模式 104
    10.2  线程束内的线程同步函数 106
    10.3  更多线程束内的基本函数 109
    10.3.1  介绍 109
    10.3.2  利用线程束洗牌函数进行归约计算 114
    10.4  协作组 116
    10.4.1  线程块级别的协作组 116
    10.4.2  利用协作组进行归约计算 118
    10.5 数组归约程序的进一步优化 119
    10.5.1  提高线程利用率 119
    10.5.2  避免反复分配与释放设备内存 122
    第11章  CUDA流 124
    11.1  CUDA 流概述 124
    11.2  在默认流中重叠主机和设备计算 125
    11.3  用非默认CUDA流重叠多个核函数的执行 128
    11.3.1  核函数执行配置中的流参数 128
    11.3.2  重叠多个核函数的例子 129
    11.4  用非默认CUDA流重叠核函数的执行与数据传递 131
    11.4.1  不可分页主机内存与异步的数据传输函数 131
    11.4.2  重叠核函数执行与数据传输的例子 133
    第12章  使用统一内存编程 136
    12.1  统一内存简介 136
    12.1.1  统一内存的基本概念 136
    12.1.2  使用统一内存对硬件的要求 137
    12.1.3  统一内存编程的优势 137
    12.2  统一内存的基本使用方法 137
    12.2.1  动态统一内存 138
    12.2.2  静态统一内存 139
    12.3  使用统一内存申请超量的内存 140
    12.3.1  第一个测试 140
    12.3.2  第二个测试 142
    12.3.3  第三个测试 143
    12.4  优化使用统一内存的程序 144
    第13章  分子动力学模拟的CUDA程序开发 147
    13.1  分子动力学模拟的基本算法和C++实现 147
    13.1.1  程序的整体结构 147
    13.1.2  分子动力学模拟的基本流程 148
    13.1.3  初始条件 149
    13.1.4  边界条件 150
    13.1.5  相互作用 152
    13.1.6  运动方程的数值积分 156
    13.1.7  程序中使用的单位制 157
    13.1.8  程序的编译与运行 158
    13.1.9  能量守恒的测试 159
    13.1.10  C++ 版本程序运行速度的测试 160
    13.2  CUDA 版本的分子动力学模拟程序开发 161
    13.2.1  仅加速求力和能量的部分 161
    13.2.2  加速全部计算 165
    第14章  CUDA标准库的使用 167
    14.1  CUDA 标准库简介 167
    14.2  Thrust 库 168
    14.2.1  简介 168
    14.2.2  数据结构 168
    14.2.3  算法 168
    14.2.4  例子:前缀和 169
    14.3  cuBLAS 库 171
    14.3.1  简介 171
    14.3.2  例子:矩阵乘法 172
    14.4  cuSolver 库 176
    14.4.1  简介 176
    14.4.2  例子:矩阵本征值 177
    14.5  cuRAND 库 181
    14.5.1  简介 181
    14.5.2  例子 182



    前言

    基于CPU(central processing unit,中央处理器)和GPU(graphics processing unit,图形处理器)的异构计算(heterogeneous computing)已逐步发展为高性能计算(high performance computing)领域的主流模式。很多超级计算机大量使用了GPU。CUDA(compute unified device architecture)作为GPU高性能计算的主要开发工具之一,已经在计算机、物理、化学、生物、材料等众多领域发挥了重要作用。掌握CUDA编程也就意味着开辟了一条通往高性能计算的新道路。

    本书通过大量实例循序渐进地介绍CUDA编程的语法知识、优化策略及程序开发实践。本书所有源代码都可以通过作者为本书创建的GitHub仓库(http:// github.com/brucefan1983/CUDA-Programming)获得。读者也可以针对该仓库提出问题(issues)与作者进行交流。渤海大学由琪同学的GitHub仓库http://github.com/ YouQixiaowu/CUDA-Programming-with-Python还给出了本书部分程序的py-CUDA版本。本书中的所有程序都在Linux平台通过测试,其中大部分程序也能在Windows平台通过测试。我们会在适当的地方指出哪些程序无法在(作者的)Windows平台通过测试。

    本书是一本较理想的学习CUDA编程的入门读物。在计算机方面,读者需要掌握初步的Linux或Windows命令行操作技能,并具有一定的C++语言编程基础。第13章的内容要求读者具有大学物理或普通物理的知识基础。第14章的部分内容要求读者熟悉大学本科理工科的线性代数知识。本书前12章需顺序阅读,后两章可选读,而且可以按任意次序阅读。最后要强调的是,本书不假定读者有并行编程的经验。

    本书不是一本CUDA编程手册,不追求面面俱到,但力求做到由浅入深、循序渐进。截至作者交稿之日,最新版本(10.2)的《CUDA C++ Programming Guide》和《CUDA C++ Best Practices Guide》加起来有400多页,再加上CUDA工具箱中各种应用程序库和编程开发工具的文档,总页数可能上万。在本书100多页的篇幅中想要做到面面俱到是不可能的。明确地说:

    ● 本书只涉及CUDA C++编程,不涉及其他异构编程语言,如OpenCL、OpenACC和CUDA Fortran。

    ● 关于CUDA C++编程,本书不涉及动态并行(dynamic parallelism)、CUDA Graph、CUDA与OpenGL和Direct3D的交互、纹理和表面内存的使用。

    ● 本书不涉及多GPU编程,只讨论单GPU编程,并且不涉及OpenMP和MPI。

    ● 在众多性能分析器(profiler)中,我们将仅偶尔使用nvprof,不使用其他可视化性能分析器。

    本书彩图请扫描右侧二维码观看。

    本书的出版受到国家自然科学基金的支持,项目编号为11974059,名称为《基于石墨烯及其他两维材料的柔性热电材料的多尺度模拟》。本书中相关程序的开发和测试使用了由Aalto Science-IT project和Finland’s IT Center for Science(CSC)提供的计算资源与技术支持。

    复旦大学的周麟祥教授于2011年在厦门大学开设的CUDA编程讲座让作者有幸较早地接触CUDA编程。厦门大学的博士后导师郑金成和王惠琼教授及芬兰Aalto大学的博士后导师Ari Harju博士和Tapio Ala-Nissila教授在作者学习与使用CUDA的过程中给予了很大的支持。在此对以上老师表示由衷的感谢!

    特别感谢苏州吉浦讯科技有限公司的技术团队。该团队的工程师们为本书的初稿指出了300多个问题,并为作者解答了很多有关CUDA编程的问题。如果没有该团队的帮助,本书一定有很多错误。厦门大学的徐克同学和渤海大学的由琪同学先后为本书制作了若干插图。中国科学技术大学的黄翔同学、潍坊学院高性能计算中心的李延龙同学及西安理工大学的范亚东同学帮助审阅了全部书稿。在此对以上同学一并表示感谢。

    本书从构思到完成大概花了一年半的时间。在这一年半的时间里,此书的写作占用了我很多本应该陪伴家人的时间。所以,我将此书献给我的妻子秦海霞、大女儿樊怀瑾和小女儿樊婉瑜,以及我的父亲樊明营与母亲张珍艳。



     

    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购