首页 > 其他分享 >AMD ROCm 平台简介

AMD ROCm 平台简介

时间:2024-12-21 16:36:39浏览次数:4  
标签:架构 简介 ROC AMD ROCm CUDA GPU

1. Overview

ROCm 的目标是建立可替代 CUDA 的生态,并在源码级别上对 CUDA 程序的支持。

图1

为了实现目标,ROCm 复制了 CUDA 的技术栈。对比如图2、图3(本文不考虑 OpenCL 支持)。

图2 CUDA 栈 图3 ROCm 栈 由于 ROCm 是开源平台,出于模块化以及对一些开放标准的支持,ROCm 的封装层次较 CUDA 会多一些。好在,这对一般开发者是不可见。

在介绍 ROCm 前,首先对一些概念进行说明。

  • ROC —— Radeon Open Computing,即 “Radeon 开放计算”。其中,Radeon 是 AMD GPU 产品的品牌名。
  • ROCm——ROC platforM 的简称,是基于一系列开源项目的 AMD GPU 计算生态。ROCm 之于 AMD GPU,基本上相当 于 CUDA 之于 NVIDIA GPU。除 ROCm 外,还有一系列 ROCx 的简称,如 ROCr —— ROC Runtime,ROCk —— ROC kernel driver, ROCt —— ROC Thunk 等。
  • HSA——Heterogeous system architecture,可以简单理解为硬件上的一层抽象。 AMD 等为支持 CPU+GPU 混合计算生态而成立了非赢利组织 HSA 基金,提供 runtime 和架构 API 标准。现成员包括 AMD、三星、高通、ARM、TI、Imagination、MTK等。
  • GCN——Graphics Core Next,是 AMD 11年推出的全新架构,以区别于之前基于基于 VLIW (超长指令字)的架构。由于现在所有 AMD GPU 都建于 GCN 架构,失去 ”next“ 的对象,因此,GCN 可以简单理解为 AMD GPU 架构。

了解 ROCm 最快的方式可能是和 CUDA 对比。表1给出了主要模块的对比。

CUDA ROCm 备注
CUDA API HIP API C++ 扩展语法
NVCC HCC 编译器
CUDA 函数库 ROC 库、HC 库
Thrust Parallel STL HCC 原生支持
Profiler ROCm Profiler
CUDA-GDB ROCm-GDB
nvidia-smi rocm-smi
DirectGPU RDMA ROCn RDMA peer2peer
TensorRT Tensile 张量计算库
CUDA-Docker ROCm-Docker

AMD ROCm 平台简介

标签:架构,简介,ROC,AMD,ROCm,CUDA,GPU
From: https://www.cnblogs.com/sys-123456/p/18620822

相关文章

  • 音视频入门基础:MPEG2-TS专题(20)——ES流简介
    《T-REC-H.222.0-202106-S!!PDF-E.pdf》第27页对ES进行了定义。ES流是PESpackets(PES包)中编码的视频、编码的音频或其他编码的比特流。一个ES流(elementarystream)在具有且只有一个stream_id的PESpackets序列中携带:在《音视频入门基础:MPEG2-TS专题(18)——PES流简介》中讲到......
  • Python 高级特性:描述器(Descriptor)简介
    Python高级特性:描述器(Descriptor)简介原创 defr bebettercoder 2024年12月01日20:00 广东1.什么是描述器描述器(Descriptor)是Python中一个强大而优雅的特性,它允许我们自定义对象属性的访问方式。简单来说,描述器就是一个实现了描述器协议的类,这个协议包含 __get__......
  • 【重要】collections库函数简介及简单用法示例
    【重要】collections库函数简介及简单用法示例collections提供了一些有用的集合类,如deque、Counter等,方便进行数据处理。根据以下列表,用表格形式,从序号、函数名、简介、简单用法示例几方面显示每个函数的信息。太长的用法示例以序号+函数名+“示例:”为题,分别移到表格下方,不要破......
  • 【重要】functools库函数简介及简单用法示例
    【重要】functools库函数简介及简单用法示例functools提供了一些用于函数操作的函数,如partial、lru_cache等,方便进行函数式编程。表格部分:序号函数名简介1partial创建一个新的可调用对象,固定原函数的部分参数2lru_cache缓存函数调用的结果,基于LRU(最近最少使用......
  • 【重要】itertools库函数简介及简单用法示例
    itertools 提供了一些用于操作迭代器的函数,如chain、islice等,方便进行迭代操作。以下是根据您提供的列表,以表格形式显示的itertools库函数的简介及简单用法示例:序号函数名简介简单用法示例1accumulate对输入迭代器中的元素进行累积操作,返回累积结果2chain将......
  • FFmpeg第一话:FFmpeg 简介与环境搭建
    FFmpeg探索之旅一、FFmpeg简介与环境搭建二、FFmpeg解码详解第一话:FFmpeg简介与环境搭建FFmpeg探索之旅一、前言二、FFmpeg是什么?三、简单介绍其历史背景四、为什么用C++学习FFmpeg?(一)高性能优势(二)底层控制能力(三)接口适配优良五、环境搭建(一)Windows平台下载......
  • 【重要】csv库函数简介及简单用法示例
    下面是关于Python中csv库函数的简介及简单用法示例的表格,包括序号、函数名、简介和简单用法示例:序号函数名简介简单用法示例1csv.reader创建一个读取CSV文件的对象2csv.writer创建一个写入CSV文件的对象3csv.DictReader创建一个读取CSV文件并将其行作为......
  • JMeter简介、基本组件、基本测试步骤
    一、JMeter简介定义JMeter是一款开源的性能测试工具,主要用于对软件应用程序进行负载测试、功能测试和性能测量。它是用Java语言编写的,因此可以在多种操作系统上运行,如Windows、Linux和MacOS等。用途性能测试方面:能够模拟大量用户并发访问系统,以此来评估系统在不同负载......
  • 【重要】re库函数简介及简单用法示例
    以下是根据您提供的列表,以表格形式整理的re库函数简介及简单用法示例:序号函数名/属性简介简单用法示例1ASCII使\w,\W,\b,\B,\d,\D,\s和\S只匹配ASCII字符,而不是Unicode字符re.compile(pattern,re.ASCII)2DEBUG显示调试信息,用于调试正则表达式......
  • 开方函数sqrt简介
     完全平方数的简介在数学的神秘世界里,有一组数如1、4、9、16、25等,它们宛如夜空中最为璀璨的星辰,散发着独特而迷人的光芒,这便是完全平方数。首先来剖析它们最为显著的特性,即能够精准地以某个整数的平方形式呈现。例如,1就是1本身的平方,即1×1的完美运算结果;4恰是2......