《CUDA C编程权威指南》——导读

简介:


image

###前  言

欢迎来到用CUDA C进行异构并行编程的奇妙世界!

现代的异构系统正朝一个充满无限计算可能性的未来发展。异构计算正在不断被应用到新的计算领域—从科学到数据库,再到机器学习的方方面面。编程的未来将是异构并行编程的天下!

本书将引领你通过使用CUDA平台、CUDA工具包和CUDA C语言快速上手GPU(图形处理单元)计算。本书中设置的范例与练习也将带你快速了解CUDA的专业知识,助你早日达到专业水平!

目  录

[第1章 基于CUDA的异构并行计算
1.1 并行计算](https://yq.aliyun.com/articles/118145/)
1.1.1 串行编程和并行编程
1.1.2 并行性
1.1.3 计算机架构
1.2 异构计算
1.2.1 异构架构
1.2.2 异构计算范例
1.2.3 CUDA:一种异构计算平台
1.3 用GPU输出Hello World
1.4 使用CUDA C编程难吗
1.5 总结
1.6 习题
[第2章 CUDA编程模型
2.1 CUDA编程模型概述](https://yq.aliyun.com/articles/118205/)
2.1.1 CUDA编程结构
2.1.2 内存管理
2.1.3 线程管理
2.1.4 启动一个CUDA核函数
2.1.5 编写核函数
2.1.6 验证核函数
2.1.7 处理错误
2.1.8 编译和执行
2.2 给核函数计时
2.2.1 用CPU计时器计时
2.2.2 用nvprof工具计时
2.3 组织并行线程
2.3.1 使用块和线程建立矩阵索引
2.3.2 使用二维网格和二维块对矩阵求和
2.3.3 使用一维网格和一维块对矩阵求和
2.3.4 使用二维网格和一维块对矩阵求和
2.4 设备管理
2.4.1 使用运行时API查询GPU信息
2.4.2 确定最优GPU
2.4.3 使用nvidia-smi查询GPU信息
2.4.4 在运行时设置设备
2.5 总结
2.6 习题
[第3章 CUDA执行模型
3.1 CUDA执行模型概述](https://yq.aliyun.com/articles/118270/)
3.1.1 GPU架构概述
3.1.2 Fermi架构
3.1.3 Kepler架构
3.1.4 配置文件驱动优化
3.2 理解线程束执行的本质
3.2.1 线程束和线程块
3.2.2 线程束分化
3.2.3 资源分配
3.2.4 延迟隐藏
3.2.5 占用率
3.2.6 同步
3.2.7 可扩展性
3.3 并行性的表现
3.3.1 用nvprof检测活跃的线程束
3.3.2 用nvprof检测内存操作
3.3.3 增大并行性
3.4 避免分支分化
3.4.1 并行归约问题
3.4.2 并行归约中的分化
3.4.3 改善并行归约的分化
3.4.4 交错配对的归约
3.5 展开循环
3.5.1 展开的归约
3.5.2 展开线程的归约
3.5.3 完全展开的归约
3.5.4 模板函数的归约
3.6 动态并行
3.6.1 嵌套执行
3.6.2 在GPU上嵌套Hello World
3.6.3 嵌套归约
3.7 总结
3.8 习题

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
网络协议 前端开发 Java
SpringBoot 整合 WebSocket
WebSocket是基于TCP协议的一种网络协议,它实现了浏览器与服务器全双工通信,支持客户端和服务端之间相互发送信息。在有WebSocket之前,如果服务端数据发生了改变,客户端想知道的话,只能采用定时轮询的方式去服务端获取,这种方式很大程度上增大了服务器端的压力,有了WebSocket之后,如果服务端数据发生改变,可以立即通知客户端,客户端就不用轮询去换取,降低了服务器的压力。目前主流的浏览器都已经支持WebSocket协议了。
SpringBoot 整合 WebSocket
|
Unix 异构计算 Windows
带你读《基于CUDA的GPU并行程序开发指南》之一:CPU并行编程概述
本书旨在帮助读者了解与基于CUDA的并行编程技术有关的基本概念,并掌握实用c语言进行GPU高性能编程的相关技巧。本书第一部分通过CPU多线程编程解释了并行计算,使得没有太多并行计算基础的读者也能毫无阻碍地进入CUDA天地;第二部分重点介绍了基于CUDA的GPU大规模并行程序的开发与实现,并通过大量的性能分析帮助读者理解如何开发一个好的GPU并行程序以及GPU架构对程序性能的影响;本书的第三部分介绍了一些常用的CUDA库。
|
8月前
|
存储 人工智能 安全
一文了解:阿里云对象存储OSS是什么?
阿里云对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务,数据持久性达99.9999999999%,适用于互联网音视频、教育、AI/物联网、影视渲染及基因等行业。OSS提供标准、低频、归档等多种存储类型,支持按量付费与资源包两种计费模式,公网出流量收费,内网流量免费。
11432 7
|
机器学习/深度学习 监控 算法
目标检测算法的优缺点及适用场景
目标检测算法的优缺点及适用场景
998 0
|
JavaScript 前端开发 Java
SpringBoot配置文件 —— 超详细全方位教程
本文是一篇关于SpringBoot配置文件的超详细全方位教程,涵盖了配置文件的作用、SpringBoot中的配置文件格式、优先级、properties和yml配置文件的详解及语法、读取配置文件的方法、转义字符和单双引号的使用、配置对象、集合和Map,以及yml的优缺点。
1770 0
SpringBoot配置文件 —— 超详细全方位教程
|
机器学习/深度学习 监控 算法框架/工具
使用Python实现深度学习模型:人脸识别与人脸表情分析
【7月更文挑战第18天】 使用Python实现深度学习模型:人脸识别与人脸表情分析
648 2
|
监控 网络协议 Java
如何在Spring Boot中使用WebSocket
如何在Spring Boot中使用WebSocket
2624 0
|
Python
Python内置函数map、split、join讲解
Python内置函数map、split、join讲解
1608 0