CUDA实践指南(十)

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,同步至 ClickHouse 1个月
数据传输服务 DTS,数据同步 1个月
简介:

存储器优化:
内存优化是性能最重要的领域。 目标是通过最大化带宽来最大限度地利用硬件。 使用尽可能多的快速内存和尽可能少的慢速访问内存可以更好地提供带宽。 本章讨论主机和设备上的各种内存以及如何最好地设置数据项以有效使用内存。
主机和设备之间的数据传输:
设备内存与GPU之间的峰值理论带宽要高得多(例如NVIDIA Tesla M2090为177.6 GB / s),而不是主机内存与设备内存之间的理论峰值(PCIe x16 Gen2为8 GB / s)。 因此,为了获得最佳的整体应用程序性能,尽量减少主机和设备之间的数据传输非常重要,即使这意味着在GPU上运行的内核与在主机CPU上运行内核相比不会显示任何加速。
高优先级:尽可能减少主机和设备之间的数据传输,即使这意味着在设备上运行某些内核时,与在主机CPU上运行内核相比,它们不会显示性能增益。
中间数据结构应该在设备存储器中创建,由设备操作,并在没有被主机映射或复制到主机内存的情况下销毁。
而且,由于与每次传输相关的开销,将许多小传输分配到一个更大的传输中比单独进行每次传输明显更好,即使这样做需要将不连续的存储区域打包到连续缓冲区中,然后在传输之后解包。
最后,使用页面锁定(或锁定)存储器时,主机和设备之间的带宽将更高。
固定内存(Pinned Memory):
页面锁定或固定内存传输可实现主机和设备之间的最高带宽。 例如,在PCIe x16 Gen2卡上,固定内存可达到大约6GB / s的传输速率。
固定内存是使用运行时API中的cudaHostAlloc()函数分配的。 bandwidthTest CUDA示例演示如何使用这些函数以及如何测量内存传输性能。
对于已经预先分配的系统内存区域,可以使用cudaHostRegister()来实时锁定内存,而无需分配单独的缓冲区并将数据复制到内存中。
固定的内存不应该被过度使用。 过度使用可能会降低整体系统性能,因为固定内存是一种稀缺资源,但多少事先难以预知。 此外,与大多数正常的系统内存分配相比,系统内存的固定是一项重量级操作,因此在进行所有优化时,测试应用程序及其运行的系统以获得最佳性能参数。
计算异步和重叠传输:
使用cudaMemcpy()在主机和设备之间传输数据会阻止传输; 也就是说,只有在数据传输完成后,控制权才会返回到主机线程。 cudaMemcpyAsync()函数是cudaMemcpy()的非阻塞变体,其中控件立即返回到主机线程。 与cudaMemcpy()相比,异步传输版本需要固定主机内存,并且它包含额外的参数,流ID。 流只是在设备上按顺序执行的一系列操作。 不同流中的操作可以交错并且在某些情况下可以重叠 - 可用于隐藏主机和设备之间数据传输的属性。
异步传输以两种不同的方式实现数据传输与计算的重叠。 在所有支持CUDA的设备上,可以将主机计算与异步数据传输和设备计算重叠。 例如,重叠计算和数据传输演示如何执行例程cpuFunction()中的主机计算,同时将数据传输到设备并使用该设备执行内核。

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
4月前
|
数据采集 人工智能 API
推荐一款Python开源的AI自动化工具:Browser Use
Browser Use 是一款基于 Python 的开源 AI 自动化工具,融合大型语言模型与浏览器自动化技术,支持网页导航、数据抓取、智能决策等操作,适用于测试、爬虫、信息提取等多种场景。
755 4
推荐一款Python开源的AI自动化工具:Browser Use
|
11月前
|
存储 人工智能 算法
深度解读面向大模型开发和应用的数据处理套件
本文深入解读了大数据与AI联合场景下的技术,重点探讨了大语言模型、多模态模型训练及应用数据处理。文章首先分析了算法、算力和数据在大模型训练中的重要性,强调数据采集、标注和质量控制的关键作用。接着介绍了PAI平台上的端到端数据处理套件,涵盖预训练、有监督微调和偏好对齐的数据处理流程,以及数据合成和蒸馏技术的应用。最后展望了未来在多模态处理、性能优化和行业解决方案方面的扩展方向。
|
存储 传感器 网络协议
异步传输:概念、特点与应用
【8月更文挑战第24天】
1155 0
|
监控 安全 网络安全
企业网络安全:构建高效的信息安全管理体系
企业网络安全:构建高效的信息安全管理体系
401 5
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
634 0
|
前端开发 关系型数据库 MySQL
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
349 2
|
存储 API 图形学
Unity精华☀️二、到底是什么原因导致“万向锁”?旋转翻车的终极解析!
Unity精华☀️二、到底是什么原因导致“万向锁”?旋转翻车的终极解析!
|
Linux
linux服务器硬件序列号获取命令
linux服务器硬件序列号命令获取,英伟达显卡序列号获取
889 0