NVIDIA CUDA是显卡加速平台,英伟是并行计算平台和编程模型。通过使用图形处理单元(GPU)的功能,可以显著提高计算性能。
Basic 简介
CUDA的开发考虑了几个设计目标:
为标准编程语言(如C)提供一小部分扩展,可以实现并行算法的直接实现。使用CUDA C/C ++,程序员可以专注于算法的并行化任务,而无需在实现上花费时间。
当应用程序同时使用CPU和GPU时,支持异构计算。应用的串行部分运行在CPU上,并行部分卸载到GPU上。通过这种方式,可以将CUDA增量应用到现有的应用程序中。CPU和GPU被视为独立的设备,有各自的内存空间。这种配置还允许在CPU和GPU上同时进行计算,而不会争用内存资源。
一个CUDA功能的GPU有上百个核心,可以一起运行上千个计算线程。这些内核共享资源,包括寄存器文件和共享内存。片上共享内存允许在这些内核上运行的并行任务共享数据,而无需通过系统内存总线发送数据。
施用方式
估计
对于现有项目,第一步是评估应用程序,以找到负责大部分执行时间的代码部分。有了这些知识,开发人员可以评估并行化的这些瓶颈,并开始研究GPU加速。
通过了解最终用户的需求和约束,并应用阿姆达尔定律和古斯塔夫森定律,开发人员可以通过加速应用程序中已确定的部分来确定性能提升的上限。
并行化
在识别热点并完成设定目标和期望的基本练习后,开发人员需要并行地处理代码。根据原代码,这可以简单到调用现有的GPU优化库,比如立方玻璃,傅立叶变换,或者推力,也可以简单到给并行编译器添加一些预处理器指令。
另一方面,一些应用程序的设计将需要一些重构来暴露它们固有的并行性。由于即使是CPU架构也需要暴露并行性来提高或仅仅维持顺序应用的性能,因此CUDA并行编程语言家族(CUDA C ++、CUDA Fortran等。)旨在使这种排比的表达尽可能简单。,并在支持CUDA的GPU上启用操作,这些操作旨在实现最大的并行吞吐量。
使最优化
在每一轮应用程序并行化之后,开发人员可以开始优化实现以提高性能。因为可以考虑许多可能的优化,所以充分理解应用程序的要求有助于使过程尽可能顺利。然而,与整个APOD一样,程序优化是一个迭代过程(识别优化机会,优化应用和测试,验证实现的加速并重复),这意味着程序员不必花费大量时间记住所有可能的优化策略,就可以看到良好的加速效果。相反,你可以在学习策略时循序渐进地应用它们。
优化可以应用于所有级别,从重叠数据传输到计算,再到微调浮点运算序列。可用的分析工具在指导这一过程中非常有用,因为它们可以帮助开发人员建议最佳方案来优化他们的工作,并为本指南的优化部分的相关部分提供参考。
部署
在完成应用程序的一个或多个组件的GPU加速后,可以将结果与最初的预期进行比较。回想一下,初始评估步骤允许开发人员确定通过加速给定热点所能实现的潜在加速的上限。
在解决其他热点提升整体速度之前,开发者应该考虑采用部分并行实现,并付诸实践。这一点很重要,原因有很多;比如让用户尽早从投资中获益(速度提升可能是局部的,但仍是有价值的),通过为开发者提供一套渐进而非革命性的变化,最大限度地降低开发者和用户的风险。申请。
软件组成
GPU加速库
CUDA-X库
索引框架(索引)
语言解决方案
OpenACC编译指令
NVIDIA CUDA C/C ++编译器(NVCC)
参考数据
CUDA C/C ++代码示例
CUDA文档
开发工具
NVTAGS
数字深度学习训练系统
Nsight集成开发环境
视觉分析器
CUDA-GDB命令行调试器
CUDA-MEMCHECK内存分析器
NVIDIA CUDA(英伟达CUDA驱动)相关下载
- 查看详情GEFORCE Game Ready 3080驱动简体2023-02-16
- 查看详情nvidia英伟达显卡驱动简体2023-01-24
- 查看详情NVIDIA Control Panel(显卡管理软件)简体2022-12-17
- 查看详情RTX2080ti显卡驱动简体2022-12-08
- 查看详情 GEFORCE Game Ready 3080驱动 简体 2023-02-16
- 查看详情 nvidia英伟达显卡驱动 简体 2023-01-24
- 查看详情 NVIDIA Control Panel(显卡管理软 英文 2022-12-17
- 查看详情 RTX2080ti显卡驱动 简体 2022-12-08
- 查看详情 高漫M6数位板驱动 简体 2023-02-27
- 查看详情 万能驱动助理 简体 2023-02-27
- 查看详情 F3arRa1n(卡贴机解锁软件) 简体 2023-02-27