0人評分過此書

加速MATLAB编程指南:CUDA实现

作者
出版日期
2018/06/01
閱讀格式
EPUB
書籍分類
學科分類
ISBN
9787302493174

本館館藏

借閱規則
當前可使用人數 30
借閱天數 14
線上看 0
借閱中 0
選擇分享方式

推薦本館採購書籍

您可以將喜歡的電子書推薦給圖書館,圖書館會參考讀者意見進行採購

讀者資料
圖書館
* 姓名
* 身分
系所
* E-mail
※ 我們會寄送一份副本至您填寫的Email中
電話
※ 電話格式為 區碼+電話號碼(ex. 0229235151)/ 手機格式為 0900111111
* 請輸入驗證碼
MATLAB是廣泛應用的算法開發語言之一。然而,MATLAB簡單易用的特性與算法複雜性的矛盾,造成了各個領域的MATLAB程序運行緩慢。本書總結了作者多年來在算法開發工作中關於MATLAB程序加速的實戰經驗,系統地介紹了利用GPU計算能力和CUDA編程語言實現加速MATLAB編程的方法。
  • 封面页
  • 书名页
  • 版权页
  • 作者简介
  • 内容简介
  • 序一 preface
  • 序二 preface
  • 前言 foreword
  • 目录
  • 第1章 绪论
    • 1.1 MATLAB程序的加速
    • 1.2 MATLAB程序加速的可能途径
      • 1.2.1 基于多核CPU的MATLAB程序加速
      • 1.2.2 基于大内存的MATLAB程序加速
      • 1.2.3 基于英伟达公司GPU的MATLAB程序加速
      • 1.2.4 基于AMD公司GPU的MATLAB程序加速
      • 1.2.5 基于Intel公司Xeon Phi的MATLAB程序加速
    • 1.3 MATLAB程序加速的度量
    • 1.4 基于GPU计算的MATLAB程序的编制
      • 1.4.1 并行计算工具箱简介
      • 1.4.2 CUDA库
      • 1.4.3 CUDA编程
  • 第2章 MATLAB程序的性能评估
    • 2.1 bench()函数
    • 2.2 tic()函数/toc()函数
    • 2.3 timeit()函数
    • 2.4 cputime()函数
    • 2.5 clock()函数和etime()函数
    • 2.6 gputimeit()函数
    • 2.7 MATLAB探查器
  • 第3章 基于多核处理器的MATLAB程序加速
    • 3.1 MATLAB矩阵及运算符
      • 3.1.1 MATLAB矩阵的创建
      • 3.1.2 矩阵的性质的检验
      • 3.1.3 MATLAB矩阵的操作
    • 3.2 MATLAB函数
      • 3.2.1 MATLAB函数的定义
      • 3.2.2 MATLAB函数的执行
    • 3.3 语句与代码
      • 3.3.1 分支结构
      • 3.3.2 循环结构
    • 3.4 MATLAB代码
    • 3.5 MATLAB并行设置
    • 3.6 基于并行for循环(parfor循环)的MATLAB程序加速
  • 第4章 基于大内存的MATLAB程序的加速
    • 4.1 内存条的选择与安装
    • 4.2 内存预分配
      • 4.2.1 已知数组大小
      • 4.2.2 未知数组大小
    • 4.3 MATLAB向量化简介
    • 4.4 MATLAB矩阵运算的向量化
      • 4.4.1 创建MATLAB矩阵的函数
      • 4.4.2 数据复制
      • 4.4.3 MATLAB的矩阵变换函数
      • 4.4.4 索引
      • 4.4.5 矩阵操作的向量化
      • 4.4.6 符合条件的元素总数
    • 4.5 MATLAB函数的向量化
      • 4.5.1 基于arrayfun()函数、bsxfun()函数、cellfun()函数、spfun()函数和structfun()函数的向量化
      • 4.5.2 基于pagefun()函数的向量化
    • 4.6 MATLAB语句的向量化
  • 第5章 基于并行计算工具箱的MATLAB加速
    • 5.1 GPU卡的选择与安装
      • 5.1.1 GPU卡的选择
      • 5.1.2 电源功率
      • 5.1.3 散热问题
    • 5.2 基于并行计算工具箱的GPU计算简介
    • 5.3 基于并行计算工具箱的矩阵运算
      • 5.3.1 在设备端(GPU端)直接创建MATLAB矩阵
      • 5.3.2 在设备端(GPU端)生成随机数矩阵
      • 5.3.3 设备端(GPU端)的稀疏矩阵
      • 5.3.4 设备端(GPU端)矩阵的数据类型
      • 5.3.5 设备端(GPU端)矩阵的检验
      • 5.3.6 设备端(GPU端)矩阵的操作
    • 5.4 基于并行计算工具箱的设备端(GPU端)函数
      • 5.4.1 设备端(GPU端)函数的定义
      • 5.4.2 设备端(GPU端)函数的执行
    • 5.5 基于设备端(GPU端)大内存的MATLAB程序的加速
    • 5.6 例子
      • 5.6.1 卷积神经网络前向传播的卷积层
      • 5.6.2 卷积神经网络前向传播的激活函数
      • 5.6.3 卷积神经网络前向传播的降采样层
      • 5.6.4 卷积神经网络后向传播的升采样层
      • 5.6.5 卷积神经网络后向传播的卷积层
      • 5.6.6 卷积神经网络后向传播中的梯度计算
  • 第6章 MATLAB与C/C++的接口
    • 6.1 MEX库API
      • 6.1.1 MEX相关的函数
      • 6.1.2 从MEX中调用MATLAB函数
      • 6.1.3 mexGet()函数
      • 6.1.4 MEX库API与输入输出相关的函数
      • 6.1.5 MEX库API与锁定相关的函数
    • 6.2 MATLAB的C/C++矩阵库API
      • 6.2.1 定义MEX函数的数据类型
      • 6.2.2 创建数组、分配内存和释放内存
      • 6.2.3 数据类型校验:数组的数据类型和性质
      • 6.2.4 数据存取:从数组读取和写入数据
      • 6.2.5 数据类型转换:将字符串数组和结构数组转换成对象数组
    • 6.3 MEX函数编译器
      • 6.3.1 MEX介绍
      • 6.3.2 编译MEX
      • 6.3.3 MEX文件的查错
  • 第7章 基于CUDA库的MATLAB加速
    • 7.1 基于CUDA库的MATLAB加速简介
    • 7.2 基于ArrayFire库的MATLAB加速简介
      • 7.2.1 ArrayFire简介
      • 7.2.2 ArrayFire数组
      • 7.2.3 ArrayFire函数
      • 7.2.4 CUDA的混合编程
      • 7.2.5 实例
    • 7.3 基于其他CUDA库的MATLAB加速简介
  • 第8章 GPU计算简介
    • 8.1 芯片技术的发展与摩尔定律
    • 8.2 每秒浮点运算次数
    • 8.3 GPU计算加速的度量
      • 8.3.1 GPU程序的加速比
      • 8.3.2 阿姆达尔定律和古斯塔夫森定律
      • 8.3.3 并行程序的并行状况
    • 8.4 并行计算部件
      • 8.4.1 张量处理器
      • 8.4.2 现场可编程门阵列
      • 8.4.3 类脑处理器
      • 8.4.4 视觉处理器
      • 8.4.5 物理处理器
      • 8.4.6 图形处理器
    • 8.5 英伟达公司GPU简介
      • 8.5.1 计算单元
      • 8.5.2 GPU内存
      • 8.5.3 计算能力
      • 8.5.4 GPU当前状态的检测
      • 8.5.5 GPU集群设置
      • 8.5.6 集群管理软件
  • 第9章 CUDA编程简介
    • 9.1 CUDA核
    • 9.2 CUDA线程与线程块
      • 9.2.1 CUDA线程
      • 9.2.2 CUDA线程块
    • 9.3 内存结构与管理
      • 9.3.1 全局内存
      • 9.3.2 共享内存
      • 9.3.3 锁页内存
      • 9.3.4 纹理内存和表面内存
    • 9.4 并行管理
      • 9.4.1 非同步并行执行
      • 9.4.2 流和事件
      • 9.4.3 同步调用
    • 9.5 CUDA流
      • 9.5.1 CUDA流的创建和结束
      • 9.5.2 默认CUDA流
      • 9.5.3 显式同步
      • 9.5.4 隐式同步
      • 9.5.5 重叠行为
      • 9.5.6 回调函数
      • 9.5.7 CUDA流的优先级
    • 9.6 CUDA事件
      • 9.6.1 CUDA事件的创建与清除
      • 9.6.2 CUDA事件的运行
    • 9.7 多设备系统
      • 9.7.1 多设备系统的初始化
      • 9.7.2 多设备系统的设备计数
      • 9.7.3 多设备系统的设备选择
      • 9.7.4 多设备系统的CUDA流和CUDA事件
      • 9.7.5 不通过统一虚拟地址的多设备系统的设备间的内存复制
      • 9.7.6 通过统一虚拟地址的多设备系统的设备间的内存复制
    • 9.8 动态并行
      • 9.8.1 动态并行简介
      • 9.8.2 动态并行的编程模型
      • 9.8.3 动态并行的环境配置
      • 9.8.4 动态并行的内存管理
      • 9.8.5 动态并行的嵌套深度
    • 9.9 统一虚拟地址空间
      • 9.9.1 统一虚拟地址空间简介
      • 9.9.2 统一内存编程的优点
      • 9.9.3 统一内存分配
      • 9.9.4 统一内存的连续性与并行性
      • 9.9.5 统一内存的检验
      • 9.9.6 统一内存的性能优化
    • 9.10 CUDA的编译
      • 9.10.1 CUDA编译工作流
    • 9.11 CUDA程序实例
      • 9.11.1 序列蒙特卡罗的类别分布随机数
      • 9.11.2 哈尔变换
  • 第10章 CUDA程序优化
    • 10.1 CUDA程序优化的策略
    • 10.2 指令级别的优化
      • 10.2.1 算术指令吞吐量最大化
      • 10.2.2 控制流指令
      • 10.2.3 同步指令
    • 10.3 线程和线程块级别的优化
      • 10.3.1 warp简介
      • 10.3.2 CUDA线程块的warp数量
      • 10.3.3 CUDA占用率
      • 10.3.4 线程warp对设备端(GPU端)内存读写
    • 10.4 CUDA核级别的优化
      • 10.4.1 优化CUDA核参数
      • 10.4.2 减少内存同步
      • 10.4.3 减少寄存器总量
      • 10.4.4 提高指令层次的并行度
    • 10.5 CUDA程序级别的优化
  • 第11章 基于CUDA的MATLAB加速
    • 11.1 基于CUDAKernel的MATLAB加速
    • 11.2 基于MEX函数的MATLAB加速
    • 11.3 多GPU编程
    • 11.4 例子
      • 11.4.1 基于MEX函数的多GPU矩阵相加
      • 11.4.2 基于MEX函数的多GPU的LSE函数
  • 第12章 总结
    • 12.1 加速MATLAB编程方法的比较
    • 12.2 进一步加速MATLAB
      • 12.2.1 多路多核处理器的MATLAB程序加速
      • 12.2.2 基于AMD公司GPU的MATLAB程序加速
      • 12.2.3 基于Intel公司Xeon Phi的MATLAB程序加速
  • 参考文献
  • 附录CD
  • 出版地 中國大陸
  • 語言 簡體中文

評分與評論

請登入後再留言與評分
幫助
您好,請問需要甚麼幫助呢?
使用指南

客服專線:0800-000-747

服務時間:週一至週五 AM 09:00~PM 06:00

loading