图形算法有哪些-图形算法

admin 19 0

核心洞察

1. ROCm 当前核心痛点:a. 兼容只能追赶,不可能超越,转译带来的性能损失难避免

b. 底层框架支持不足+算子库丰富度差距大

2. 生态圈主要用于训练+推理,提取/变形/加载/存储属于解决数据问题

3. CUDA 和 ROCm 核心区别:

a. 推出时间: CUDA 更早,积累更多, AMD 做为后发者起步晚+研发实力上有所差距

b. 软件生态: 在基础设施上,两者差不多,但丰富度(算子库+算子融合)+用户数是当前最大痛点

c. 框架迁移: 在训练推理过程中,当开发者需要做框架迁移, CUDA 这块支持显著优于 ROCm

d. 底层框架支持: ROCm 目前在底层框架支持上,只针对少数主流框架,CUDA 相对完整很多,且底层框架软件商会优先适配英伟达硬件

e. 开元跟闭源: ROCm 做为后发者使用开源生态抢占使用者, CUDA 则是全闭源

f. 编译器: ROCm HCC 通用性更强, NVCC 只针对英伟达硬件去做的,在使用上专家认为主要是用户习惯的差异, 其余差异不大

4. 训练和推理对生态圈的依赖度差异: 训练上,专家认为优先选择肯定是英伟达,推理端则可能选择其他厂商, AMD 这块做到全兼容 CUDA 会有一定优势a. 训练: 精度要求较高,包含前向记算+反向记算,反复验证修改参数b. 推理: 只需前向记算即可

5. CNN 到 Transformer 对 CUDA 壁垒影响: 专家认为架构迁移对 CUDA 壁垒影响有限

a. 硬件端: 核心基础都是卷积神经网络,但算子设计有所不同,对硬件端提出计算单元核新的要求,从这个角度利好英伟达这类硬件设计能力强的厂商

b. 软件生态端: 架构转变对 ROCm 等后进生态圈有利,差距上有所缩小,但专家认为实际上差距还是很大,架构迁移对 CUDA 壁垒影响有限

6. 从生态圈角度出发, 训练用英伟达, 推理用 AMD 是否可行: 专家认为是可行的,针对大部份情况下,转换成本不高,主要原因是 ROCm 完全兼容 CUDA,ROCm API 接口完全仿照 CUDA 做出来

7. ROCm 兼容 CUDA 难点: 转译带来性能损失+CUDA 算子库更新后需重新适配

a. 当英伟达硬件更新, 对应算子库更新, ROCm 需重新适配,适配过程中,ROCm 用户用不了相关功能b

. 在同等算力条件下,既使用 ROCm 转译后,上层还是 CUDA,下层换成ROCm 软件栈,这块操作系统的改变会带来性能上的受损,实测下来,ROCm 相对 CUDA 性能会差 10%左右

Q&A

Q:生态圈的建立流程?

过程中芯片厂商和软件提供商之间的关系如何?A:从 AI 生态圈来讲, AI 是由软件加硬件的系统组合而成, 所以谈生态圈要结合软件和硬件两者。硬件涉及到芯片供应商,国际上最著名的是英伟达。在硬件之上是 AI 的基础软件栈,涉及到硬件在系统层的驱动,还有 GPU 硬件或者 AI 芯片的运行时库。

再者是对用户暴露的 API接口,还有一些其他相关库,比如基础数据库、 AI 算法、 图像图形编解码等,这一系列构成了整个 AI 的软件栈或者称作生态圈, 这是针对底层的软件栈。 在这之上还有深度学习的编译框架。

深度学习框架包含了训练和推理两个方向和应用场景。训练框架更偏向于应用场景,类似于在操作系统之上的应用软件。训练框架更偏向于给做 AI应用的科研机构、 高校, 提供一个方便使用 AI 芯片、软件栈的深度学习框架, 更专注于做 AI模型或者 AI 的技术研究,而不是专注于技术软件栈或硬件方向。从下往上依次是硬件、 操作系统、驱动、运行时编程模型和外部工具、 学习框架,构成了整个 AI 的软件栈或生态。在此基础之上才有了在 CV 领域内的 CNN,以及现在流行的 Transformer 等 AI 模型和新技术的应用发展。

从芯片厂商的角度来看,需要从底层一直往上做,可以做到深度学习框架,也可以只做到 AI软件栈这一层,给用户提供编程模型和 API 接口。从这个角度来看, AI 芯片厂商做的工作更多一些。 而深度学习框架则站在比较宏观和应用角度,所以他们所做的工作相对偏向于应用,与具体的硬件会有一定的差距。软件提供商范围相对宽泛,因为软件的定义很大,做基础软件栈还是做框架,还是做 AI 模型和应用,大家所处的角色不同,要开发和建立生态圈的流程也会有差别。

Q:横向对比 CUDA 和 ROCm,开发者开发过程包括提取、变形、加载、存储、训练、推理,目前生态圈在哪个环节差异最大?原因是?

A:提取,变形,再到存储加载,训练推理, 这是从 AI 偏上层的模型研发或应用开发的角度来讲。 AI 的三大要素包括算力、算法和数据。 提取、变形、加载、存储,更多的是解决数据问题, 即怎样获取海量的数据,并通过提取变形把数据转换成或脱离出所需要的信息,用于后续的模型训练。 这些过程不仅 AI 领域使用,包括五六年前的大数据领域,也涉及到提取、 变形、 加载、 存储等过程。到了 AI 领域才有了训练,有数据、 算法、 AI 模型、 AI 芯片强大的算力, 就可以实现一个解决特定领域的算法,在 AI 芯片上通过收集和提取的数据把模型训练出来,训练出来之后再去做后续的推理。推理相当于把模型训练出来之后,对这个模型做应用。CUDA 和 ROCm 大同小异, 从芯片供应商的角度来讲,都是为了给芯片使用者或者 AI 的开发者, 提供一个更方便使用 AI 芯片、 异构计算的计算机模型的软件栈,都是方便用户使用他的CPU 或 DSA,从这个角度来看,二者解决的需求相同。二者的区别在于 CUDA 推出的时间比较早,在 2006 年的时候, 英伟达已经开始推 CUDA,当时 CUDA 比较难用。经过了 10 多年的发展, 2015 年开始 AI 成为比较热门的发展方向。 再加上在图形图像和并行计算领域, 英伟达本身就已经是国际上最著名的公司,所以不管是高校还是企业,天然地就会选择 N 卡。 从这个角度来讲, 英伟达赶上了这一波风口浪潮,再加上CUDA 做并行计算的研发时间要早很多,就带来了这种无与伦比的优势。再者, 多年来英伟达在这个方向上持续进行研发投入、 高校和企业持续应用 CUDA,对其生态的发展都做出巨大贡献,导致目前无论是做训练还是做推理, CUDA 都是最优选择。

至于 ROCm, 在 2015 年 AI 浪潮兴起之后, AMD 才开始做并行计算、 AI 计算领域的软件生态,相对来说起步更晚一些。再加上 AMD 的研发实力也不如英伟达强劲,所以软件栈的丰富度和好用程度相比英伟达的 CUDA 来说要差很多。 并且 AMD 芯片本身的迭代速度和算力, 与英伟达的迭代速度和架构变化发展相比也有不小差距。 这一系列因素导致无论是 AMD 还是国内做GPU 的芯片厂商,想用 ROCm 开源软件栈兼容 CUDA 方案去做 AI 技术软件栈都很困难。

总体来说, 应该有的东西 ROCm 基本上都已经有了, 比如软件生态中的硬件、 AI 软件栈、 驱动、 运行时间模型、 加速库、 开发环境和工具包,不过相对来说使用人群较少,导致没有那么好用。国内做 Android 手机操作系统的厂商,尤其是像华为的鸿蒙 OS, 其实 2010 年 Android操作系统刚推出时也非常难用, 现在这么好用是因为在使用中不断发现问题,并持续进行优化, 类似于这样一个过程。ROCm 没有踩在合适的时间点,相对落后于 CUDA, 再加上 AMD 对 ROCm 卡的支持欠缺。所以目前使用 AMD 这套来进行 AI 模型的训练和推理并不是特别好的选择

此为报告精编节选,报告PDF原文:

《信息技术-久谦咨询:英伟达 vs AMD ROCm 生态圈差距研究-独立机构[]-20240120【14页】》

报告来源:【价值目录】

标签: 图形算法

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~