0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GPU平台生态,英伟达CUDA和AMD ROCm对比分析

架构师技术联盟 ? 来源:架构师技术联盟 ? 2023-05-18 09:57 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

成熟且完善的平台生态是 GPU 厂商的护城河。相较于持续迭代的微架构带来的技术壁垒硬实力,成熟的软件生态形成的强大用户粘性将在长时间内塑造 GPU厂商的软实力。以英伟达 CUDA 为例的软硬件设计架构提供了硬件的直接访问接口,不必依赖图形 API 映射,降低 GPGPU 开发者编译难度,以此实现高粘性的开发者生态。目前主流的开发平台还包括 AMD ROCm 以及 OpenCL。

CUDA(Compute Unified Device Architectecture),是 NVIDIA 于 2006 年推出的通用并行计算架构,包含 CUDA 指令集架构(ISA)和 GPU 内部的并行计算引擎。该架构允许开发者使用高级编程语言(例如 C 语言)利用 GPU 硬件的并行计算能力并对计算任务进行分配和管理,CUDA 提供了一种比 CPU 更有效的解决大规模数据计算问题的方案,在深度学习训练和推理领域被广泛使用。

b8d6af22-f50a-11ed-90ce-dac502259ad0.png

CUDA 除了是并行计算架构外,还是 CPU 和 GPU 协调工作的通用语言。在CUDA 编程模型中,主要有 Host(主机)和 Device(设备)两个概念,Host 包含 CPU 和主机内存,Device 包含 GPU 和显存,两者之间通过 PCI Express 总线进行数据传输。在具体的 CUDA 实现中,程序通常划分为两部分,在主机上运行的 Host 代码和在设备上运行的 Device 代码。Host 代码负责程序整体的流程控制和数据交换,而 Device 代码则负责执行具体的计算任务。

一个完整的 CUDA程序是由一系列的设备端函数并行部分和主机端的串行处理部分共同组成的,主机和设备通过这种方式可以高效地协同工作,实现 GPU 的加速计算。

b907a262-f50a-11ed-90ce-dac502259ad0.png

CUDA 在 Host 运行的函数库包括了开发库(Libraries)、运行时(Runtime)和驱动(Driver)三大部分。其中,Libraries 提供了一些常见的数学和科学计算任务运算库,Runtime API 提供了便捷的应用开发接口和运行期组件,开发者可以通过调用 API 自动管理 GPU 资源,而 Driver API 提供了一系列 C 函数库,能更底层、更高效地控制 GPU 资源,但相应的开发者需要手动管理模块编译等复杂任务。

b9216454-f50a-11ed-90ce-dac502259ad0.png

CUDA 在 Device 上执行的函数为内核函数(Kernel)通常用于并行计算和数据处理。在 Kernel 中,并行部分由 K 个不同的 CUDA 线程并行执行 K 次,而有别于普通的 C/C++函数只有 1 次。每一个 CUDA 内核都以一个声明指定器开始,程序员通过使用内置变量__global__为每个线程提供一个唯一的全局 ID。一组线程被称为 CUDA 块(block)。CUDA 块被分组为一个网格(grid),一个内核以线程块的网格形式执行。每个 CUDA 块由一个流式多处理器(SM)执行,不能迁移到 GPU 中的其他 SM,一个 SM 可以运行多个并发的 CUDA 块,取决于CUDA 块所需的资源,每个内核在一个设备上执行,CUDA 支持在一个设备上同时运行多个内核。

b950e29c-f50a-11ed-90ce-dac502259ad0.png

b99494b0-f50a-11ed-90ce-dac502259ad0.png

丰富而成熟的软件生态是 CUDA 被广泛使用的关键原因。

(1)编程语言:CUDA 从最初的 1.0 版本仅支持 C 语言编程,到现在的 CUDA 12.0 支持 C、C++、Fortran、Python 等多种编程语言。此外,NVIDIA 还支持了如 PyCUDA、ltimesh Hybridizer、OpenACC 等众多第三方工具链,不断提升开发者的使用体验。

(2)库:NVIDIA 在 CUDA 平台上提供了名为 CUDA-X 的集合层,开发人员可以通过 CUDA-X 快速部署如 cuBLA、NPP、NCCL、cuDNN、TensorRT、OpenCV 等多领域常用库。

(3)其他:NVIDIA 还为 CUDA 开发人员提供了容器部署流程简化以及集群环境扩展应用程序的工具,让应用程序更易加速,使得CUDA 技术能够适用于更广泛的领域。

ROCm (Radeon Open Compute Platform )是 AMD 基于开源项目的 GPU计算生态系统,类似于 NVIDIA 的 CUDA。ROCm 支持多种编程语言、编译器、库和工具,以加速科学计算、人工智能机器学习等领域的应用。ROCm还支持多种加速器厂商和架构,提供了开放的可移植性和互操作性。

ROCm 支持HIP(类 CUDA)和 OpenCL 两种 GPU 编程模型,可实现 CUDA 到 ROCm 的迁移。最新的 ROCm 5.0 支持 AMD Infinity Hub 上的人工智能框架容器,包括TensorFlow 1.x、PyTorch 1.8、MXNet 等,同时改进了 ROCm 库和工具的性能和稳定性,包括 MIOpen、MIVisionX、rocBLAS、rocFFT、rocRAND 等。

b9cd4288-f50a-11ed-90ce-dac502259ad0.png

b9f20fc8-f50a-11ed-90ce-dac502259ad0.png

OpenCL(Open Compute Language),是面向异构系统通用并行编程、可以在多个平台和设备上运行的开放标准。OpenCL 支持多种编程语言和环境,并提供丰富的工具来帮助开发和调试,可以同时利用 CPU、GPU、DSP 等不同类型的加速器来执行任务,并支持数据传输和同步。

ba0f6302-f50a-11ed-90ce-dac502259ad0.png

ba2f7e30-f50a-11ed-90ce-dac502259ad0.png

此外,OpenCL 支持细粒度和粗粒度并行编程模型,可根据应用需求选择合适模型提高性能和效率。而 OpenCL可移植性有限,不同平台和设备的功能支持和性能表现存在一定差异,与 CUDA相比缺少广泛的社区支持和成熟的生态圈。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4980

    浏览量

    132120
  • 指令集
    +关注

    关注

    0

    文章

    228

    浏览量

    23909
  • 英伟达
    +关注

    关注

    22

    文章

    3973

    浏览量

    94382

原文标题:GPU平台生态,英伟达CUDA和AMD ROCm对比分析

文章出处:【微信号:架构师技术联盟,微信公众号:架构师技术联盟】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RV生态又一里程碑:英伟达官宣CUDA将兼容RISC-V架构!

    电子发烧友网报道(文/梁浩斌)英伟生态护城河CUDA,从最初支持x86、Power?CPU架构,到2019年宣布支持Arm?CPU,不断拓展在数据中心的应用生态。 在2019年至今的
    的头像 发表于 07-19 00:04 ?5513次阅读
    RV<b class='flag-5'>生态</b>又一里程碑:<b class='flag-5'>英伟</b>达官宣<b class='flag-5'>CUDA</b>将兼容RISC-V架构!

    国产GPU再下一城,群起突围英伟+AMD

    上市。 ? 根据Jon Peddie Research的数据,独立GPU市场英伟一家独大,近年来持续维持超80%的市场份额,而AMD公司则占据剩余近20%的市场份额。自人工智能市场爆
    的头像 发表于 07-07 08:59 ?6051次阅读
    国产<b class='flag-5'>GPU</b>再下一城,群起突围<b class='flag-5'>英伟</b><b class='flag-5'>达</b>+<b class='flag-5'>AMD</b>

    aicube的n卡gpu索引该如何添加?

    请问有人知道aicube怎样才能读取n卡的gpu索引呢,我已经安装了cuda和cudnn,在全局的py里添加了torch,能够调用gpu,当还是只能看到默认的gpu0,显示不了
    发表于 07-25 08:18

    英伟CUDA 已经开始移植到 RISC-V 架构上

    7 月 17 日,在第五届(2025)RISC-V 中国峰会主论坛上,英伟副总裁 Frans Sijstermanns 分享了题为《在英伟计算
    发表于 07-17 16:30 ?3650次阅读

    国内外电机结构 工艺对比分析

    纯分享帖,需要者可点击附件免费获取完整资料~~~*附件:国内外电机结构 工艺对比分析.pdf【免责声明】本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,删除内容!
    发表于 05-29 14:06

    主流汽车电子SoC芯片对比分析

    主流汽车电子SoC芯片对比分析 随着汽车智能化、电动化趋势加速,系统级芯片(SoC)已成为汽车电子核心硬件。本文从技术参数、市场定位、应用场景及国产化进程等维度,对主流汽车电子SoC芯片进行对比分析
    的头像 发表于 05-23 15:33 ?2171次阅读

    新思科技携手英伟加速芯片设计,提升芯片电子设计自动化效率

    宣布在英伟 Grace Blackwell 平台上实现高达 30 倍的预期性能提升,加速下一代半导体的电路仿真 ? 摘要: 在今年GTC主题演讲中,新思科技作为生态系统的一部分,展示
    发表于 03-19 17:59 ?307次阅读

    新思科技亮相英伟GTC 2025大会

    为了实现这一速度提升,新思科技在GTC全球AI大会上宣布,正在使用英伟 CUDA-X库优化其下一代半导体开发解决方案。公司还在扩大对英伟
    的头像 发表于 03-19 17:53 ?887次阅读

    荷兰与英伟AMD商讨共建人工智能设施

    荷兰政府正在积极寻求与全球领先的科技公司英伟AMD的合作,共同推动荷兰人工智能设施的建设与发展。 据荷兰政府官方网站的消息,荷兰经济事务大臣迪尔克·贝尔亚尔茨于近日对美国硅谷进行了访问,期间
    的头像 发表于 01-10 13:36 ?805次阅读

    英伟与谷歌携手加速量子计算设备设计

    英伟近日宣布,将与谷歌量子AI团队展开合作,共同推进量子计算软硬件工具的研发。双方将利用英伟CUDA-Q
    的头像 发表于 11-19 16:21 ?618次阅读

    英伟计划2025年推出基于Arm架构的消费级CPU,挑战英特尔和AMD

    ,这款CPU将融合英伟的CPU和GPU设计,专注于高端设备市场,并预计在2026年3月左右进一步扩大推广范围。这一举措标志着英伟试图打破
    的头像 发表于 11-05 15:29 ?1728次阅读

    软银升级人工智能计算平台,安装4000颗英伟Hopper GPU

    软银公司宣布,其正在扩展的日本顶级人工智能计算平台已安装了约4000颗英伟Hopper GPU。这一举措显著提升了平台的计算能力。据悉,该
    的头像 发表于 11-04 16:18 ?979次阅读

    【「算力芯片 | 高性能 CPU/GPU/NPU 微架构分析」阅读体验】--了解算力芯片GPU

    应用上具有独特优势和技术特点,英伟GPU上具有技术引领优势。这部分也是比较理论框架化些,通过阅读可以对GPU有些整体了解与熟悉。
    发表于 11-03 12:55

    Inflection AI转向英特尔Gaudi 3,放弃英伟GPU

    近日,人工智能技术公司Inflection AI宣布了一项重要决策,其最新的企业平台将放弃采用英伟(Nvidia)的GPU,转而选择英特尔的Gaudi 3加速器。
    的头像 发表于 10-10 17:21 ?825次阅读

    英伟Blackwell GPU量产加速,Q4营收冲刺百亿美元大关

    近日,全球领先的图形处理单元(GPU)及人工智能芯片制造商英伟传来重大利好消息。据摩根士丹利最新发布的行业分析报告指出,英伟
    的头像 发表于 09-26 15:58 ?700次阅读