| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> CUDA之GPU生态系统 -> 正文阅读 |
|
[Python知识库]CUDA之GPU生态系统 |
易于编程和性能的巨大飞跃是 CUDA 平台被广泛采用的关键原因之一。CUDA 平台成功的第二大原因是拥有广泛而丰富的生态系统。 与任何新平台一样,CUDA 的成功取决于可用于 CUDA 生态系统的工具、库、应用程序和合作伙伴。任何新的计算平台都需要开发人员将应用程序移植到新平台。为此,开发人员需要最先进的工具和开发环境。 应用程序开始扩展后,在数据中心级别需要更多工具。NVIDIA 致力于为开发者和企业提供最先进的工具和生态系统服务。 NVIDIA 近期发布了最新的A100 架构和基于这种新架构的DGX A100系统。新的 A100 GPU 还配备了丰富的生态系统。 图 1 显示了更广泛的生态系统组件,这些组件在超过 15 年的时间里演变。在这篇文章中,我深入介绍了每个生态系统组件的介绍性细节。 编程语言和 APICUDA 1.0 开始时仅支持 C 编程语言,但多年来一直在发展。CUDA 现在允许使用多种高级编程语言对 GPU 进行编程,包括 C、C++、Fortran、Python 等。 NVIDIA 发布了 CUDA 工具包,它提供了使用 C/C++ 编程语言的开发环境。使用此工具包,您可以在 GPU 上开发、优化和部署应用程序。NVIDIA 还提供了一个 PGI 工具包来使用 Fortran 语言进行编程。 还有许多可用的第三方工具链: PyCUDA—从 Python 接口使用 CUDA API 操作。 Libraries库对于为任何编程环境中广泛使用的通用例程提供直接性能至关重要。它们针对目标计算架构进行了很好的优化,并且具有很高的软件质量。它们还节省了应用程序开发时间,并提供了开始使用 GPU 加速的最简单方法。 NVIDIA 在 CUDA 平台之上提供了一个称为CUDA-X的层,它是库、工具和技术的集合。GPU 加速的 CUDA 库支持跨多个领域的嵌入式加速,例如线性代数、图像和视频处理、深度学习和图形分析。对于开发自定义算法,可以使用与常用语言和数值包的可用集成,以及已发布的开发 API 操作。 NVIDIA CUDA 工具包附带了大量常用库。以下是一些广泛使用的库的列表: 数学库: cuBLAS、cuRAND、cuFFT、cuSPARSE、cuTENSOR、cuSOLVER 分析和调试工具任何编程架构的重要元素之一是用于编写、调试和优化程序的强大且高效的工具。CUDA 生态系统非常强大,NVIDIA 付出了巨大的努力来确保用户拥有快速、轻松、高效地编写所需的所有工具。 以下是 CUDA 分析和调试工具的预览: NVIDIA Nsight —这是一个低开销的分析、跟踪和调试工具。它提供了一个基于 GUI 的环境,可在各种 NVIDIA 平台上进行扩展,例如大型多 GPU x86 服务器、Quadro 工作站等。 ARM Forge 数据中心工具和集群管理NVIDIA GPU 为应用程序提供了巨大的加速,这些应用程序进一步扩展到大量 GPU。许多科学应用程序,如分子动力学和量子化学,以及人工智能应用程序需要一组 GPU 来将应用程序性能扩展到通过高速网络连接的数千个 GPU。现代数据中心是使用 NVIDIA GPU 和 Mellanox 高速互连构建的,以扩展应用程序以大规模扩展性能。 用户需要一个复杂的生态系统才能在数据中心轻松部署。企业需要工具来轻松管理和运行这些密集的数据中心。NVIDIA 与生态系统合作伙伴密切合作,为开发人员和 DevOps 提供适用于 AI 和 HPC 软件生命周期每一步的软件工具。 以下是 NVIDIA 为加强这一生态系统所做的一些努力: 容器注册 容器容器是轻松部署应用程序的现代方式。NVIDIA 提供来自NVIDIA NGC 的所有深度学习和 HPC 容器。这些容器由 NVIDIA 测试、维护和优化。NGC 还提供了一种托管第三方容器的方法。组织还可以选择拥有私有容器存储库。 调度和编排调度和编排是数据中心管理和运营的另一个重要方面。Kubernetes 是现代流行的容器编排系统,用于自动化应用程序部署、扩展和管理。NVIDIA GPU 上的 Kubernetes 扩展了具有 GPU 加速功能的行业标准容器编排平台。Kubernetes 为 NVIDIA GPU 资源调度提供了最先进的支持。 集群管理工具主要的标准集群管理工具都支持 NVIDIA GPU。一些示例包括 Bright Cluster、Ganglia、StackIQ 和 Altair PBS Works。 监控工具NVIDIA 还提供了一套名为DCGM的工具,用于管理和监控集群环境中的 GPU。NVIDIA 还公开了一个基于 API 的接口,以通过 NVML API 来监控 GPU。在这些工具的帮助下,数据中心运营团队可以持续执行主动健康监控、综合诊断、系统警报和治理策略,包括电源和时钟管理。这些工具既可以独立使用,也可以与任何行业标准工具套件集成使用。您还可以使用 NVML API 操作构建自己的工具。 CUDA 生态系统和 GPU 加速的应用程序2006年CUDA发布后,开发者已经在CUDA上移植了很多应用。 开始移植应用程序的第一批开发人员是科学界。该社区移植了许多标准应用程序以及自己开发的代码。具有固有并行性的应用程序,如图像和视频处理,是移植到 CUDA 的首批用例之一。 深度学习是大规模并行化有助于加速应用程序的另一个例子。当今几乎每个深度学习框架都使用 CUDA/GPU 计算来加速深度学习训练和推理。 NVIDIA 维护一个目录以列出所有 GPU 加速应用程序。此列表只是已通过 GPU 计算加速的应用程序的一个子集。许多应用程序是内部应用程序,并没有出现在此列表中。 无处不在的 GPUCUDA 的广泛采用要求每个需要 GPU 的开发人员开发 CUDA 代码和端口应用程序。许多年前,NVIDIA 决定在 NVIDIA 设计的每个 GPU 都将支持 CUDA 架构: 用于游戏和笔记本电脑的 GeForce GPU 概括NVIDIA 致力于为 CUDA 开发人员提供广泛而丰富的生态系统支持。一个庞大的工程师团队不断努力,以确保用户可以获得所有正确的工具。以下是 CUDA 开发人员可以利用的功能: 使用丰富的编程语言支持和调试器、分析器等开发环境工具开发 CUDA 代码。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 5:59:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |