《CUDA高性能并行计算》----3.5 本章小结

简介: 在本章中,我们使用CUDA依次创建了``dist_v1``与``dist_v2``的并行化版本``—dist_v1_cuda``与``dist_v2_cuda``。 ``dist_v2_cuda``为CUDA应用标准工作流程提供范例。下面是一些简明的内容回顾(CUDA应用包括的大致步骤):

本 节 书 摘 来 自 华 章 出 版 社 《CUDA高性能并行计算》 一 书 中 的 第3章,第3.5节, 作 者 CUDA for Engineers: An Introduction to High-Performance Parallel Computing[美] 杜安·斯托尔蒂(Duane Storti)梅特·尤尔托卢(Mete Yurtoglu) 著,苏统华 项文成 李松泽 姚宇鹏 孙博文 译 , 更 多 章 节 内 容 可 以 访 问 云 栖 社 区 “华 章 计 算 机” 公 众 号 查 看。

3.5 本章小结

在本章中,我们使用CUDA依次创建了dist_v1dist_v2的并行化版本—dist_v1_cudadist_v2_cuda

dist_v2_cuda为CUDA应用标准工作流程提供范例。下面是一些简明的内容回顾(CUDA应用包括的大致步骤):

创建主机端输入和输出的数组,为输入数据和结果提供存储空间。

在设备端上为类似的输入和输出数组声明指针并分配内存。

将输入数据从主机端复制到设备端对应的数组上。

启动一个核函数在设备端上进行计算并将结果写入设备端的输出数组。

将结果从设备端的数组复制到主机端对应的数组上。

释放为数组分配的内存。

恭喜你,你已经迈入了大规模并行计算的大门。现在你应该能够开始修改一些样例应用和CUDA样例来创建你自己的CUDA应用了。注意我们用“需知”(Need-to-know)的理念来尽量快速和简明地完成CUDA的入门部分。我们实现了标准的CUDA操作流程(其中包括在主机端和设备端分别存储一份数据以及显式的数据传输的函数调用),也实现了使用统一内存这一简便方法来让开发方法变得尽可能简单。

虽然我们快速实现了最初希望利用CUDA能力的目标,但是值得注意的是我们跳过了一些应该考虑的重要问题(错误处理、CUDA调试、计时以及性能分析等),当你开发较大的CUDA项目时。这些是你需要(至少是想要)知道的。这些主题将在附录D中讨论,读者现在已经掌握了阅读它们的背景知识。在这里,我们推荐读者去进行下面章节的学习,并在需要掌握关于错误处理、调试、计时或者性能分析的相关细节知识时,再去参阅附录D中一些实践技巧的内容。

相关文章
|
安全 数据库 数据安全/隐私保护
Sql-lab全解_sqllab,给后辈的一点建议
Sql-lab全解_sqllab,给后辈的一点建议
|
存储 SQL 关系型数据库
MySQL数据库——存储过程-循环(while、repeat、loop)
MySQL数据库——存储过程-循环(while、repeat、loop)
1848 0
|
机器学习/深度学习 传感器 算法
【BP时序预测】基于BP神经网络时间序列预测附MATLAB完整代码
【BP时序预测】基于BP神经网络时间序列预测附MATLAB完整代码
【BP时序预测】基于BP神经网络时间序列预测附MATLAB完整代码
|
XML JSON Dart
《深入浅出Dart》Dart的Isolate
Dart的Isolate Isolate 是 Dart 中进行并发编程的一种方式。由于 Dart 是单线程模型,因此在需要处理 CPU 密集型任务或需要执行长时间运行的操作时,可以使用 Isolate。以下列出了一些常见的 Isolate 应用场景: 创建 Isolate 在 Dart 中,所有的代码都运行在一个单线程中,这个线程被称为主 Isolate。如果你需要执行耗时的计算,你可以创建一个新的 Isolate,然后在这个新的 Isolate 中执行你的计算。
320 0
|
开发工具 文件存储 对象存储
阿里云图片上传返回地址有blob格式问题处理实录
阿里云OSS上传图片功能很多人可能对实现过,正常情况下会返回https开头的图片地址.
阿里云图片上传返回地址有blob格式问题处理实录
|
分布式数据库 Hbase
|
Java Spring 容器
浅谈Spring中bean的生命周期
目录前言正文 前言 这部分知识经常在面试中被问到 为此专门去深挖补充这部分知识点 正文 总的来说,想在面试中侃侃而谈 可以叙述一下这部分简易版: (先找到配置文件中的bean定义) 实例化阶段 (利用反射机制实例化) 设置属性阶段 设置属性之后,会运行很多aware的接口(aware前面对应的参数对应什么资源),主要作用是加载到spring的容器中 初始化阶段 初始化前:执行postProcessBeforeInitialization方法 initializingbean的afterprope
148 0
浅谈Spring中bean的生命周期
|
存储 搜索推荐 前端开发
IDEA中每天都在用的Project Structure,你了解多少?
IDEA中每天都在用的Project Structure,你了解多少?
1062 0
IDEA中每天都在用的Project Structure,你了解多少?
|
存储
理解字节序
计算机硬件有两种储存数据的方式:**大端字节序**(big endian)和**小端字节序**(little endian)
138 0